本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon S3 访问权限授予与 Studio JupyterLab 笔记本连接起来
使用以下信息在 Studio JupyterLab 笔记本中授予 Amazon S3 访问权限。
设置 Amazon S3 访问权限管控后,向域或用户执行角色添加以下权限。
-
是您的 Amazon Web Services 区域us-east-1 -
是您的 Amazon Web Services 账户 ID111122223333 -
是您的 Amazon S3 访问权限管控角色S3-ACCESS-GRANT-ROLE
确保您的 Amazon S3 访问权限管控角色的信任策略允许 sts:SetContext 和 sts:AssumeRole 操作。以下是在更新角色信任策略时使用的策略的示例。
使用 Amazon S3 访问权限管控调用 Amazon S3
以下是 Python 脚本示例,说明了如何使用 Amazon S3 访问权限管控调用 Amazon S3。这假设您已经成功使用 SageMaker AI 设置了可信身份传播。
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/")
如果使用未启用 Amazon S3 访问权限管控的 Amazon S3 存储桶的路径,则调用将失败。
有关其他编程语言,请参阅使用 Amazon S3 访问权限管控管理访问权限以了解更多信息。