Erteilen von Berechtigungen für kontoübergreifenden Amazon S3-Speicher - Amazon SageMaker

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.

Erteilen von Berechtigungen für kontoübergreifenden Amazon S3-Speicher

Wenn Sie Ihre SageMaker Domain oder Ihr Benutzerprofil einrichten, damit Benutzer auf SageMaker Canvas zugreifen können, geben Sie einen Amazon S3 S3-Speicherort für Canvas-Artefakte an. Zu diesen Artefakten gehören gespeicherte Kopien Ihrer Eingabedatensätze, Modellartefakte, Vorhersagen und andere Anwendungsdaten. Sie können entweder den standardmäßig SageMaker erstellten Amazon S3 S3-Bucket verwenden oder den Speicherort anpassen und Ihren eigenen Bucket zum Speichern von Canvas-Anwendungsdaten angeben.

Sie können einen Amazon S3 S3-Bucket in einem anderen AWS Konto zum Speichern Ihrer Canvas-Daten angeben, aber zuerst müssen Sie kontoübergreifende Berechtigungen gewähren, damit Canvas auf den Bucket zugreifen kann.

In den folgenden Abschnitten wird beschrieben, wie Sie Canvas Berechtigungen für das Hoch- und Herunterladen von Objekten in einen Amazon-S3-Bucket in einem anderen Konto gewähren. Es gibt zusätzliche Berechtigungen für den Fall, dass Ihr Bucket mit AWS KMS verschlüsselt ist.

Voraussetzungen

Bevor Sie beginnen, sollten Sie die folgenden Anforderungen prüfen:

  • Kontoübergreifende Amazon S3 S3-Buckets (und alle zugehörigen AWS KMS Schlüssel) müssen sich in derselben AWS Region befinden wie die Canvas-Benutzerdomäne oder das Benutzerprofil.

  • Der endgültige Amazon S3 S3-Ordner URI für den Trainingsordner in Ihrem Canvas-Speicherort muss 128 Zeichen oder weniger lang sein. Das endgültige S3 URI besteht aus Ihrem s3://<your-bucket-name>/<folder-name>/ Bucket-Pfad und dem Pfad, den Canvas Ihrem Bucket hinzufügt:Canvas/<user-profile-name>/Training. Ein akzeptabler Pfad mit weniger als 128 Zeichen ist beispielsweise s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training.

Berechtigungen für kontoübergreifende Amazon-S3-Buckets

Im folgenden Abschnitt werden die grundlegenden Schritte zur Erteilung der erforderlichen Berechtigungen beschrieben, damit Canvas in einem anderen Konto auf Ihren Amazon-S3-Bucket zugreifen kann. Eine detailliertere Anleitung finden Sie unter Beispiel 2: Bucket-Besitzer, der kontoübergreifende Bucket-Berechtigungen gewährt, im Amazon S3-Benutzerhandbuch.

  1. Erstellen Sie einen Amazon-S3-Bucket, bucketA, in Konto A.

  2. Der Canvas-Benutzer existiert in einem anderen Konto namens Konto B. In den folgenden Schritten beziehen wir uns auf die IAM Rolle des Canvas-Benutzers wie roleB in Konto B.

    Erteilen Sie der IAM Rolle roleB in Konto B die Erlaubnis, Objekte bucketA in Konto A herunterzuladen (GetObjectPutObject) und hochzuladen (), indem Sie eine IAM Richtlinie anhängen.

    Um den Zugriff auf einen bestimmten Bucket-Ordner zu beschränken, definieren Sie den Ordnernamen im Ressourcenelement, z. B. arn:aws:s3:::<bucketA>/FolderName/*. Weitere Informationen finden Sie unter Wie kann ich mithilfe von IAM Richtlinien benutzerspezifischen Zugriff auf bestimmte Ordner gewähren?

    Anmerkung

    Aktionen auf Bucket-Ebene, wie z. B. GetBucketCors und GetBucketLocation, sollten für Ressourcen auf Bucket-Ebene hinzugefügt werden, nicht für Ordner.

    Die folgende IAM Beispielrichtlinie gewährt die erforderlichen Berechtigungen für den roleB Zugriff auf Objekte inbucketA:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucketA/FolderName/*", ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::bucketA", ] } ] }
  3. Konfigurieren Sie die Bucket-Richtlinie für bucketA in Konto A, um der IAM Rolle roleB in Konto B Berechtigungen zu erteilen.

    Anmerkung

    Administratoren müssen außerdem die Option Gesamten öffentlichen Zugriff blockieren im Bereich Berechtigungen für den Bucket deaktivieren.

    Es folgt ein Beispiel für eine Bucket-Policy für bucketA, um roleB die erforderlichen Berechtigungen zu erteilen:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucketA/FolderName/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:ListBucket", "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucketA" } ] }

Nachdem Sie die vorherigen Berechtigungen konfiguriert haben, kann Ihr Canvas-Benutzerprofil in Konto B nun den Amazon S3-Bucket in Konto A als Speicherort für Canvas-Artefakte verwenden.

Berechtigungen für kontoübergreifende Amazon S3 S3-Buckets, verschlüsselt mit AWS KMS

Das folgende Verfahren zeigt Ihnen, wie Sie die erforderlichen Berechtigungen erteilen, damit Canvas auf Ihren Amazon S3 S3-Bucket in einem anderen Konto zugreifen kann, das mit verschlüsselt ist AWS KMS. Die Schritte ähneln dem obigen Verfahren, jedoch mit zusätzlichen Berechtigungen. Weitere Informationen zur Gewährung von kontoübergreifendem KMS Schlüsselzugriff finden Sie unter Zulassen, dass Benutzer mit anderen Konten einen KMS Schlüssel verwenden können im AWS KMS Entwicklerhandbuch.

  1. Erstellen Sie einen Amazon S3 S3-Bucket und einen Amazon S3 KMS S3-Schlüssel s3KmsInAccountA in Konto A. bucketA

  2. Der Canvas-Benutzer ist in einem anderen Konto namens Konto B vorhanden. In den folgenden Schritten beziehen wir uns auf die IAM Rolle des Canvas-Benutzers wie roleB in Konto B.

    Erteilen Sie der IAM Rolle roleB in Konto B die Erlaubnis, Folgendes zu tun:

    • Herunterladen (GetObject) und Hochladen (PutObject) von Objekten auf und von bucketA in Konto A.

    • Greifen Sie auf den AWS KMS Schlüssel s3KmsInAccountA in Konto A zu.

    Die folgende IAM Beispielrichtlinie gewährt die erforderlichen Berechtigungen für den roleB Zugriff auf Objekte in bucketA und die Verwendung des KMS Schlüsselss3KmsInAccountA:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucketA/FolderName/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::bucketA" ] }, { "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlainText", "kms:Decrypt" ], "Effect": "Allow", "Resource": "arn:aws:kms:{region}:accountA:key/s3KmsInAccountA" } ] }
  3. Konfigurieren Sie die Bucket-Richtlinie für bucketA und die Schlüsselrichtlinie für s3KmsInAccountA in Konto A, um der IAM Rolle roleB in Konto B Berechtigungen zu erteilen.

    Im Folgenden finden Sie ein Beispiel für eine Bucket-Policy für bucketA, mit der die erforderlichen Berechtigungen für roleB erteilt werden:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucketA/FolderName/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucketA" } ] }

    Das folgende Beispiel ist eine wichtige Richtlinie, die Sie dem KMS Schlüssel s3KmsInAccountA in Konto A zuordnen, um roleB Zugriff zu gewähren. Weitere Informationen zum Erstellen und Anhängen einer wichtigen Richtlinienerklärung finden Sie unter Erstellen einer Schlüsselrichtlinie im AWS KMS Entwicklerhandbuch.

    { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountB:role/roleB" ] }, "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlainText", "kms:Decrypt" ], "Resource": "*" }

Nachdem Sie die vorherigen Berechtigungen konfiguriert haben, kann Ihr Canvas-Benutzerprofil in Konto B nun den verschlüsselten Amazon S3 S3-Bucket in Konto A als Speicherort für Canvas-Artefakte verwenden.