Connect Amazon S3 Access Grants aux JupyterLab blocs-notes Studio - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connect Amazon S3 Access Grants aux JupyterLab blocs-notes Studio

Utilisez les informations suivantes pour accorder des autorisations d'accès Amazon S3 dans les JupyterLab blocs-notes Studio.

Une fois Amazon S3 Access Grants configuré, ajoutez les autorisations suivantes à votre domaine ou à votre rôle d'exécution utilisateur.

  • us-east-1est votre Région AWS

  • 111122223333est votre Compte AWS identifiant

  • S3-ACCESS-GRANT-ROLEest votre rôle Amazon S3 Access Grant

{ "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" } ] }

Assurez-vous que la politique de confiance de votre rôle Amazon S3 Access Grants autorise les sts:AssumeRole actions sts:SetContext et. Voici un exemple de politique à appliquer lorsque vous mettez à jour votre politique de confiance dans les rôles.

{ "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" } } } ] }

Utilisez les subventions d'accès Amazon S3 pour appeler Amazon S3

Voici un exemple de script Python qui montre comment utiliser Amazon S3 Access Grants pour appeler Amazon S3. Cela suppose que vous avez déjà configuré avec succès la propagation d'identité sécurisée avec l' SageMaker IA.

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/")

Si vous utilisez un chemin vers un compartiment Amazon S3 dans lequel l'autorisation d'accès Amazon S3 n'est pas activée, l'appel échouera.

Pour les autres langages de programmation, consultez Gérer l'accès avec Amazon S3 Access Grants pour plus d'informations.