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 beispielsweises3://<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.
-
Erstellen Sie einen Amazon-S3-Bucket,
bucketA
, in Konto A. -
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, ObjektebucketA
in Konto A herunterzuladen (GetObject
PutObject
) 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
undGetBucketLocation
, 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", ] } ] }
-
Konfigurieren Sie die Bucket-Richtlinie für
bucketA
in Konto A, um der IAM RolleroleB
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
, umroleB
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.
-
Erstellen Sie einen Amazon S3 S3-Bucket und einen Amazon S3 KMS S3-Schlüssel
s3KmsInAccountA
in Konto A.bucketA
-
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 vonbucketA
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 inbucketA
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" } ] }
-
Konfigurieren Sie die Bucket-Richtlinie für
bucketA
und die Schlüsselrichtlinie fürs3KmsInAccountA
in Konto A, um der IAM RolleroleB
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ürroleB
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, umroleB
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.