Direkt zum Inhalt

Wie kann ich einem Benutzer in einem anderen AWS-Konto den Zugriff gewähren, um Objekte in meinen Amazon S3-Bucket hochzuladen?

Lesedauer: 2 Minute
0

Ich möchte einem Benutzer von AWS Identity and Access Management (IAM) in einem anderen Konto Zugriff auf meinen Amazon Simple Storage Service (Amazon S3)-Bucket gewähren. Außerdem möchte ich kontoübergreifenden Zugriff gewähren, damit der Benutzer Objekte in meinen Amazon-S3-Bucket hochladen kann.

Lösung

Gehe wie folgt vor, um einem IAM-Benutzer von Konto A aus Zugriff zum Hochladen von Objekten in einen S3-Bucket in Konto B zu gewähren:

  1. Hänge von Konto A aus eine Richtlinie an den IAM-Benutzer an. Die Richtlinie muss es dem Benutzer ermöglichen, die Aktionen s3:PutObject und s3:PutObjectAcl auszuführen:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
          ],
          "Resource": [
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
          ]
        }
      ]
    }

    Hinweis: Bevor du eine Objekt-Zugriffssteuerungsliste (ACL) für den Upload angibst, musst du über die s3:PutObjectAcl-Berechtigung verfügen. Andernfalls erhältst du den Fehler Access Denied, wenn du ein Objekt mit einer ACL hochlädst, z. B. mit der bucket-owner-full control-ACL.

  2. Rufe von Konto A den Amazon-Ressourcennamen (ARN) des IAM-Benutzers ab.

  3. Hänge von Konto B aus eine Bucket-Richtlinie an, die dem IAM-Benutzer in Konto A die Berechtigung erteilt, die Aktionen s3:PutObject und s3:PutObjectAcl auszuführen:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "DelegateS3Access",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::999999999999:user/UploadData"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
          ],
          "Resource": [
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
            "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
          ]
        }
      ]
    }

    Wichtig: Gib für den Wert Principal unbedingt den ARN des IAM-Benutzers in Konto A ein.

Der IAM-Benutzer kann jetzt Objekte auf Amazon S3 hochladen.

Ähnliche Informationen

Beispiel 2: Bucket-Besitzer gewährt kontoübergreifende Bucket-Berechtigungen