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.
-
est votre Région AWSus-east-1
-
est votre Compte AWS identifiant111122223333
-
est votre rôle Amazon S3 Access GrantS3-ACCESS-GRANT-ROLE
{ "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.