Amazon S3 Access Grants mit JupyterLab Studio-Notebooks Connect - 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.

Amazon S3 Access Grants mit JupyterLab Studio-Notebooks Connect

Verwenden Sie die folgenden Informationen, um Amazon S3-Zugriffsberechtigungen in JupyterLab Studio-Notizbüchern zu gewähren.

Nachdem Amazon S3 Access Grants eingerichtet ist, fügen Sie Ihrer Domain- oder Benutzerausführungsrolle die folgenden Berechtigungen hinzu.

  • us-east-1ist Ihr AWS-Region

  • 111122223333ist dein AWS-Konto Ausweis

  • S3-ACCESS-GRANT-ROLEist Ihre Amazon S3 Access Grant-Rolle

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDataAccessAPI", "Effect": "Allow", "Action": [ "s3:GetDataAccess" ], "Resource": [ "arn:aws:s3:us-east-1:111122223333:access-grants/default" ] }, { "Sid": "RequiredForTIP", "Effect": "Allow", "Action": "sts:SetContext", "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE" } ] }

Stellen Sie sicher, dass die Vertrauensrichtlinie Ihrer Amazon S3 Access Grants-Rolle die sts:AssumeRole Aktionen sts:SetContext und zulässt. Im Folgenden finden Sie ein Beispiel für die Aktualisierung Ihrer Vertrauensrichtlinie für Rollen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "access-grants.s3.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default" } } } ] }

Verwenden Sie Amazon S3 Access Grants, um Amazon S3 aufzurufen

Im Folgenden finden Sie ein Python-Skript, das zeigt, wie Amazon S3 Access Grants verwendet werden kann, um Amazon S3 aufzurufen. Dies setzt voraus, dass Sie die Verbreitung vertrauenswürdiger Identitäten mit SageMaker KI bereits erfolgreich eingerichtet haben.

import boto3 from botocore.config import Config def get_access_grant_credentials(account_id: str, target: str, permission: str = 'READ'): s3control = boto3.client('s3control') response = s3control.get_data_access( AccountId=account_id, Target=target, Permission=permission ) return response['Credentials'] def create_s3_client_from_credentials(credentials) -> boto3.client: return boto3.client( 's3', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'] ) # Create client credentials = get_access_grant_credentials('111122223333', "s3://tip-enabled-bucket/tip-enabled-path/") s3 = create_s3_client_from_credentials(credentials) s3.list_objects(Bucket="tip-enabled-bucket", Prefix="tip-enabled-path/")

Wenn Sie einen Pfad zu einem Amazon S3 S3-Bucket verwenden, für den Amazon S3 S3-Zugriffserteilung nicht aktiviert ist, schlägt der Aufruf fehl.

Weitere Informationen zu anderen Programmiersprachen finden Sie unter Zugriff mit Amazon S3 Access Grants verwalten.