Wie behebe ich Amazon S3 AccessDenied-Fehler in SageMaker AI-Trainingsjobs?
Mein Amazon SageMaker AI-Trainingsjob ist mit einem AccessDenied-Fehler fehlgeschlagen, obwohl ich die AmazonSageMakerFullAccess-Richtlinie an die Ausführungsrolle angehängt habe. Ich möchte dieses Problem beheben.
Kurzbeschreibung
Ein AccessDenied-Fehler kann möglicherweise auftreten, wenn die AWS-Richtlinie für Identity and Access Management (IAM) die folgenden Amazon Simple Storage Service (Amazon S3)-Aktionen nicht zulässt:
- s3:ListBucket
- s3:GetObject
- s3:PutObject
Der SageMaker AI-API-Aufruf bestimmt die erforderlichen Berechtigungen. Beispielsweise benötigt die CreateModel-API nur s3:getObject, aber die CreateTrainingJob-API erfordert s3:getObject, s3:putObject und s3:ListObject.
Lösung
Führe je nach Szenario die folgenden Maßnahmen aus, um einen AccessDenied-Fehler zu beheben.
Verschlüsselter Eingabe-Bucket
Wenn du Daten im S3-Bucket mit dem AWS Key Management Service (AWS KMS) verschlüsselt hast, überprüfe die Berechtigungen. Die IAM-Richtlinie, die an die Ausführungsrolle angehängt ist, muss die Aktionen kms:encrypt und kms:decrypt zulassen. Überprüfe, ob die AWS KMS-Schlüsselrichtlinie Zugriff auf die Ausführungsrolle gewährt.
Du kannst einen AWS KMS-Schlüssel für das Speichervolume für Machine Learning (ML) in der Ressourcenkonfiguration des Jobs verwenden. Wenn du einen AWS-KMS-Schlüssel verwendest, muss die IAM-Richtlinie die Aktion kms:CreateGrant zulassen. Weitere Informationen findest du unter Berechtigungen in AWS KMS.
Hinweis: Es ist eine bewährte Methode, das ML-Speichervolume zu verschlüsseln.
Wenn du das Python-SDK verwendest und eine Abstraktion der Klasse Estimator.EstimatorBase implementierst, übergebe die Ausgabeparameter _kms_key und volume_kms_key über die Schlüsselwortargumente kwargs. Führe diese Aktion unabhängig vom dokumentierten Vorhandensein der Parameter output_kms_key und volume_kms_key in der erbenden Klasse durch. Weitere Informationen findest du unter Estimatoren auf der Amazon SageMaker Python SDK-Website.
Grenzen der Berechtigungen
Wenn du Berechtigungsgrenzen für die Ausführungsrolle definieren, führt SageMaker nur die Aktionen aus, die sowohl nach der IAM-Richtlinie als auch nach den Berechtigungsgrenzen zulässig sind. Stelle sicher, dass die IAM-Richtlinie und die Berechtigungsgrenzen die erforderlichen Amazon S3-Aktionen zulassen.
Bucket-Richtlinien
Wenn der Eingabe-Bucket eine Bucket-Richtlinie verwendet, dann muss die Bucket-Richtlinie es der Ausführungsrolle ermöglichen, die erforderlichen Amazon S3-Aktionen auszuführen.
Im Folgenden wird ein Beispiel für eine Bucket-Richtlinie aufgeführt, die den Zugriff auf die SageMaker AI-Ausführungsrolle verweigert und einen AccessDenied-Fehler verursacht:
{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::Account-ID:role/SageMakerExecutionRole" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsdoc-example-bucket/*", "arn:aws:s3:::awsdoc-example-bucket" ] } ] }
Hinweis: Um den Zugriff auf die Ausführungsrolle zu ermöglichen, ersetze Verweigern durch Erlauben für den Wert „Effekt“.
AWS-übergreifender Kontozugriff
Wenn ein anderes AWS-Konto Amazon S3-Daten besitzt, überprüfe, ob beide Konten Zugriff auf den AWS-KMS-Schlüssel haben. Wenn du keinen AWS KMS-Schlüssel für den Trainingsjob angibst, verwendet SageMaker AI standardmäßig einen serverseitigen Amazon S3-Verschlüsselungsschlüssel. Ein anderes Konto kann keinen serverseitigen Standardverschlüsselungsschlüssel für Amazon S3 teilen oder verwenden.
Stelle sicher, dass die IAM-Richtlinie für die SageMaker-Ausführungsrolle und die S3-Bucket-Richtlinie über kontoübergreifende Berechtigungen verfügen.
Weitere Informationen findest du unter Wie kann ich ein Amazon SageMaker AI-Modell für ein anderes AWS-Konto bereitstellen?
Ähnliche Informationen
- Themen
- Machine Learning & AI
- Tags
- Amazon SageMaker
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren