Conecte as concessões de acesso do Amazon S3 com notebooks Studio JupyterLab - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conecte as concessões de acesso do Amazon S3 com notebooks Studio JupyterLab

Use as informações a seguir para conceder concessões de acesso ao Amazon S3 em notebooks Studio JupyterLab .

Depois que o recurso Concessão de Acesso do Amazon S3 for configurado, adicione as permissões a seguir ao seu domínio ou perfil de execução de usuário.

  • us-east-1 é sua Região da AWS.

  • 111122223333 é o ID da Conta da AWS .

  • S3-ACCESS-GRANT-ROLE é o perfil do recurso Concessão de Acesso do Amazon S3.

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

A política de confiança do perfil do recurso Concessão de Acesso do Amazon S3 dever permitir as ações sts:SetContext e sts:AssumeRole. Veja a seguir um exemplo de política para quando você atualiza sua política de confiança de perfil.

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

Usar o recurso Concessão de Acesso do Amazon S3 para chamar o Amazon S3

Veja a seguir um exemplo de script em Python que mostra como o recurso Concessão de Acesso do Amazon S3 pode ser usado para chamar o Amazon S3. Isso pressupõe que você já tenha configurado com êxito a propagação de identidade confiável com 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/")

Se você usar um caminho para um bucket do Amazon S3 onde o recurso Concessão de Acesso do Amazon S3 não esteja habilitado, a chamada falhará.

Para ter mais informações sobre outras linguagens de programação, consulte Gerenciar o acesso com a funcionalidade Concessão de Acesso do Amazon S3.