Sitzungsrichtlinie für einen Amazon S3 S3-Bucket erstellen - AWS Transfer Family

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Sitzungsrichtlinie für einen Amazon S3 S3-Bucket erstellen

Eine Sitzungsrichtlinie ist eine AWS Identity and Access Management (IAM) -Richtlinie, die Benutzer auf bestimmte Bereiche eines Amazon S3 S3-Buckets beschränkt. Dies geschieht durch Evaluierung des Zugriffs in Echtzeit.

Anmerkung

Sitzungsrichtlinien werden nur mit Amazon S3 verwendet. Für Amazon EFS verwenden Sie POSIX-Dateiberechtigungen, um den Zugriff einzuschränken.

Sie können eine Sitzungsrichtlinie verwenden, wenn Sie einer Benutzergruppe denselben Zugriff auf einen bestimmten Teil Ihres Amazon S3 S3-Buckets gewähren müssen. Eine Gruppe von Benutzern soll beispielsweise nur auf das home-Verzeichnis zugreifen können. Diese Benutzergruppe teilt sich dieselbe IAM-Rolle.

Anmerkung

Die maximale Länge einer Sitzungsrichtlinie beträgt 2048 Zeichen. Weitere Informationen finden Sie unter dem Anforderungsparameter Policy für die CreateUser Aktion in der API-Referenz.

Verwenden Sie die folgenden Richtlinienvariablen in Ihrer IAM-Richtlinie, um eine Sitzungsrichtlinie zu erstellen:

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

Wichtig

Sie können die oben genannten Variablen nicht in verwalteten Richtlinien verwenden. Sie können sie auch nicht als Richtlinienvariablen in einer IAM-Rollendefinition verwenden. Sie erstellen diese Variablen in einer IAM-Richtlinie und geben sie direkt bei der Einrichtung Ihres Benutzers an. Außerdem können Sie die ${aws:Username} Variable in dieser Sitzungsrichtlinie nicht verwenden. Diese Variable bezieht sich auf einen IAM-Benutzernamen und nicht auf den von AWS Transfer Family erforderlichen Benutzernamen.

Der folgende Code zeigt ein Beispiel für eine Sitzungsrichtlinie.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
Anmerkung

Im obigen Richtlinienbeispiel wird davon ausgegangen, dass die Basisverzeichnisse der Benutzer so eingestellt sind, dass sie einen abschließenden Schrägstrich enthalten, um anzuzeigen, dass es sich um ein Verzeichnis handelt. Wenn Sie dagegen das eines Benutzers HomeDirectory ohne den abschließenden Schrägstrich angeben, sollten Sie es in Ihre Richtlinie aufnehmen.

Beachten Sie in der vorherigen Beispielrichtlinie die Verwendung der transfer:HomeFolder transfer:HomeDirectory Richtlinienparametertransfer:HomeBucket, und. Diese Parameter werden für den festgelegtHomeDirectory, der für den Benutzer konfiguriert ist, wie unter HomeDirectoryund beschriebenImplementierung Ihrer API-Gateway-Methode. Diese Parameter haben die folgenden Definitionen:

  • Der transfer:HomeBucket Parameter wird durch die erste Komponente von ersetztHomeDirectory.

  • Der transfer:HomeFolder Parameter wird durch die verbleibenden Teile des HomeDirectory Parameters ersetzt.

  • Für den transfer:HomeDirectory Parameter wurde der führende Schrägstrich (/) entfernt, sodass er als Teil eines S3-Amazon-Ressourcennamens (ARN) in einer Resource Anweisung verwendet werden kann.

Anmerkung

Wenn Sie logische Verzeichnisse verwenden, also die Verzeichnisse des homeDirectoryType Benutzers, werden LOGICAL diese Richtlinienparameter (HomeBucketHomeDirectory, undHomeFolder) nicht unterstützt.

Nehmen wir beispielsweise an, dass der HomeDirectory Parameter, der für den Transfer Family Family-Benutzer konfiguriert ist, lautet/home/bob/amazon/stuff/.

  • transfer:HomeBucketist auf eingestellt/home.

  • transfer:HomeFolderist auf gesetzt/bob/amazon/stuff/.

  • transfer:HomeDirectorywirdhome/bob/amazon/stuff/.

Die erste "Sid" ermöglicht es dem Benutzer, alle Verzeichnisse aufzulisten, beginnend mit/home/bob/amazon/stuff/.

Die zweite "Sid" schränkt den get Zugriff des Benutzers put auf denselben Pfad ein,/home/bob/amazon/stuff/.

Wenn die oben genannte Richtlinie gilt, kann ein Benutzer, wenn er sich anmeldet, nur auf Objekte in seinem Home-Verzeichnis zugreifen. AWS Transfer Family Ersetzt diese Variablen beim Verbindungsaufbau durch die entsprechenden Werte für den Benutzer. Dies erleichtert die Verwendung von Richtliniendokumenten für mehrere Benutzer. Dieser Ansatz reduziert den Aufwand für die IAM-Rollen- und Richtlinienverwaltung für die Verwaltung des Zugriffs Ihrer Benutzer auf Ihren Amazon S3 S3-Bucket.

Sie können auch eine Sitzungsrichtlinie verwenden, um den Zugriff für jeden Ihrer Benutzer an Ihre Geschäftsanforderungen anzupassen. Weitere Informationen finden Sie unter Berechtigungen für AssumeRole, AssumeRoleWith SAML und AssumeRoleWithWebIdentity im IAM-Benutzerhandbuch.

Anmerkung

AWS Transfer Family speichert den Richtlinien-JSON anstelle des Amazon-Ressourcennamens (ARN) der Richtlinie. Wenn Sie also die Richtlinie in der IAM-Konsole ändern, müssen Sie zur AWS Transfer Family Konsole zurückkehren und Ihre Benutzer über die neuesten Richtlinieninhalte informieren. Sie können den Benutzer auf der Registerkarte Richtlinieninformationen im Abschnitt Benutzerkonfiguration aktualisieren.

Wenn Sie den verwenden AWS CLI, können Sie den folgenden Befehl verwenden, um die Richtlinie zu aktualisieren.

aws transfer update-user --server-id server --user-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"