Conecta Amazon S3 Access Grants con las JupyterLab libretas Studio - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conecta Amazon S3 Access Grants con las JupyterLab libretas Studio

Utilice la siguiente información para conceder subvenciones de acceso a Amazon S3 en las JupyterLab libretas Studio.

Después de configurar Amazon S3 Access Grants, añada los siguientes permisos a su dominio o función de ejecución de usuario.

  • us-east-1es su Región de AWS

  • 111122223333es tu Cuenta de AWS DNI

  • S3-ACCESS-GRANT-ROLEes su función de 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" } ] }

Asegúrese de que la política de confianza de su rol de Amazon S3 Access Grants permita las sts:AssumeRole acciones sts:SetContext y. El siguiente es un ejemplo de política para actualizar la política de confianza de su rol.

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

Utilice Amazon S3 Access Grants para llamar a Amazon S3

A continuación, se muestra un ejemplo de script de Python que muestra cómo se pueden utilizar Amazon S3 Access Grants para llamar a Amazon S3. Esto supone que ya ha configurado correctamente la propagación de identidades confiable con 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 utiliza una ruta a un bucket de Amazon S3 en el que la concesión de acceso a Amazon S3 no esté habilitada, la llamada fallará.

Para obtener más información sobre otros lenguajes de programación, consulte Administrar el acceso con Amazon S3 Access Grants.