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

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 AI-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äßigen, von SageMaker KI erstellten Amazon S3 S3-Bucket verwenden oder Sie können 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.

  • Die endgültige Amazon-S3-URI für den Trainingsordner in Ihrem Canvas-Speicherort muss 128 Zeichen oder weniger lang sein. Die 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 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 Berechtigung zum Herunterladen (GetObject) und Hochladen (PutObject) von Objekten zu und von bucketA in Konto A, 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 IAM-Richtlinien verwenden, um benutzerspezifischen Zugriff auf bestimmte Ordner zu 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.

    Das folgende Beispiel für eine IAM-Richtlinie gewährt die erforderlichen Berechtigungen für roleB den Zugriff auf Objekte in: bucketA

    { "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 gewähren.

    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 über die Gewährung von kontenübergreifendem KMS-Schlüsselzugriff finden Sie im AWS KMS Entwicklerhandbuch unter Zulassen der Verwendung eines KMS-Schlüssels durch Benutzer in anderen Konten.

  1. Erstellen Sie einen Amazon S3 S3-Bucket und einen Amazon S3 S3-KMS-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 Beispiel-IAM-Richtlinie gewährt die erforderlichen Berechtigungen für roleB, um auf Objekte in bucketA zuzugreifen und den KMS-Schlüssel s3KmsInAccountA zu verwenden:

    { "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 gewähren.

    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 Schlüsselrichtlinie, die Sie an den KMS-Schlüssel s3KmsInAccountA in Konto A anhängen, 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.