Wie kann ich einem Benutzer Amazon S3-Konsolenzugriff nur für einen bestimmten Bucket oder Ordner gewähren?

Lesedauer: 3 Minute
0

Ich möchte einem Benutzer Amazon Simple Storage Service(Amazon S3)-Konsolenzugriff auf einen Bucket oder Ordner (Präfix) gewähren. Ich möchte jedoch nicht, dass der Benutzer andere Buckets im Konto oder andere Ordner innerhalb des Buckets sieht.

Kurzbeschreibung

Ändern Sie die AWS Identity and Access Management (IAM)-Berechtigungen eines Benutzers, um den Amazon S3-Konsolenzugriff des Benutzers auf einen bestimmten Bucket oder Ordner (Präfix) zu beschränken:

1.    Entfernen Sie die Berechtigung für die Aktion s3:ListAllMyBuckets.

2.    Fügen Sie zu s3:ListBucket nur die Berechtigung für denjenigen Bucket oder Ordner hinzu, auf den der Benutzer zugreifen dürfen soll. Damit der Benutzer Objekte aus dem Bucket oder Ordner hochladen und herunterladen kann, müssen Sie zudem s3:PutObject und s3:GetObject einschließen.

Lösung

1.    Öffnen Sie die IAM-Konsole.

2.    Wählen Sie den IAM-Benutzer oder die IAM-Rolle aus, auf die Sie den Zugriff einschränken möchten.

3.    Erweitern Sie auf der Registerkarte Berechtigungen des IAM-Benutzers oder der IAM-Rolle die einzelnen Richtlinien, um das zugehörige JSON-Richtliniendokument anzuzeigen.

4.    Suchen Sie im JSON-Richtliniendokument nach der Richtlinie, die dem Benutzer die Berechtigung für die Aktion s3:ListAllMyBuckets oder für s3:*-Aktionen (alle S3-Aktionen) gewährt.

5.    Ändern Sie die Richtlinie, um die Berechtigung für die Aktion s3:listAllMyBuckets zu entfernen.

Hinweis: Wenn eine angehängte Benutzerrichtlinie den s3:*- oder vollen Administratorzugriff mit der Ressource „*“ gewährt, enthält die Richtlinie die ss3:ListAllMyBuckets-Berechtigungen. Entfernen Sie die Ressource „*“. Verwenden Sie anschließend eine der folgenden Beispielrichtlinien.

6.    Fügen Sie s3:ListBucket nur die Berechtigung für den Bucket oder Ordner hinzu, auf den der Benutzer von der Konsole aus zugreifen dürfen soll.

Die folgende Beispielrichtlinie gilt für den Zugriff auf einen S3-Bucket:

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

Die Richtlinie ermöglicht es dem Benutzer, die Aktionen s3:ListBucket, s3:PutObject und s3:GetObject nur auf DOC-EXAMPLE-BUCKET auszuführen.

Die folgende Beispielrichtlinie gewährt Zugriff auf einen Ordner. Die Richtlinie ermöglicht es dem Benutzer, die Aktionen s3:ListBucket, s3:ListBucketVersions, s3:PutObject, s3:GetObject und s3:GetObjectVersion nur an folder2 innerhalb von DOC-EXAMPLE-BUCKET auszuführen. Verwenden Sie s3:ListBucketVersions, s3:GetObjectVersion und s3:GetBucketVersioning nur, wenn der Bucket über eine Versionsverwaltung verfügt und Sie möchten, dass Benutzer Zugriff auf frühere Versionen von Objekten haben.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUsersToAccessFolder2Only",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/folder1/folder2/*"
      ]
    },
    {
      "Sid": "AllowListOfBucketOnlyOnPrefix",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketVersions"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ],
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "folder1/folder2/*"
          ]
        }
      }
    },
    {
      "Sid": "AllowListVersionOnObjectDetails",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ]
    }
  ]
}

7.    Stellen Sie dem Benutzer einen direkten Konsolenlink zum S3-Bucket oder -Ordner zur Verfügung.

Warnung: Nachdem Sie diese Berechtigungen geändert haben, erhält der Benutzer die Fehlermeldung „Zugriff verweigert“, wenn er auf die Amazon S3-Hauptkonsole zugreift. Der Benutzer muss einen direkten Konsolenlink verwenden, um auf den Bucket oder Ordner zuzugreifen. 

Der folgende Link ist ein Beispiel für einen direkten Konsolenlink zu einem S3-Bucket:

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/

Der folgende Link ist ein Beispiel für einen direkten Konsolenlink zu einem Ordner:

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/folder1/folder2/

Ähnliche Informationen

Beispiele für Benutzerrichtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten