本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为设置服务角色 AWS Clean Rooms
创建管理员用户
要使用 AWS Clean Rooms,您需要为自己创建一个管理员用户,并将该管理员用户添加到管理员组中。
要创建管理员用户,请选择以下选项之一。
选择一种方法来管理您的管理员 | 目的 | 方式 | 您也可以 |
---|---|---|---|
在 IAM Identity Center 中 (建议) |
使用短期凭证访问 AWS。 这符合安全最佳实操。有关最佳实践的信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。 |
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的入门。 | 通过在《AWS Command Line Interface 用户指南》 AWS IAM Identity Center中配置 AWS CLI 要使用的来配置编程访问权限。 |
在 IAM 中 (不推荐使用) |
使用长期凭证访问 AWS。 | 按照《IAM 用户指南》中的创建您的首个 IAM 管理员用户和组的说明操作。 | 按照《IAM 用户指南》中的管理 IAM 用户的访问密钥,配置编程式访问。 |
为协作成员创建 IAM 角色
成员是 AWS 指参与协作的客户。
为协作成员创建 IAM 角色
-
按照用户指南中的创建向 IAM 用户委派权限的角色过程进行AWS Identity and Access Management 操作。
-
在 “创建策略” 步骤中,在策略编辑器中选择 JSON 选项卡,然后根据授予协作成员的权限添加策略。
AWS Clean Rooms 根据常见用例提供以下托管策略:
如果要... 然后使用... 查看资源和元数据 AWS 托管策略:AWSCleanRoomsReadOnlyAccess 查询 AWS 托管策略:AWSCleanRoomsFullAccess 查询和接收结果 AWS 托管策略:AWSCleanRoomsFullAccess 管理协作资源但不要查询 AWS 托管策略:AWSCleanRoomsFullAccessNoQuerying 有关提供的不同托管策略的信息 AWS Clean Rooms,请参阅 AWS 的托管策略 AWS Clean Rooms
创建服务角色来读取数据
AWS Clean Rooms 使用服务角色读取数据。
有两种方法可以创建此服务角色:
如果... | 那么 |
---|---|
您拥有创建服务角色所必需的 IAM 权限 | 使用 AWS Clean Rooms 控制台创建服务角色。 |
你没有 或者 你想手动创建 IAM 角色 |
请执行以下操作之一:
|
创建服务角色来读取数据
注意
只有在您没有使用 AWS Clean Rooms 控制台创建服务角色的必要权限时,您或您的 IAM 管理员才应遵循此步骤。
-
按照AWS Identity and Access Management 用户指南中的使用自定义信任策略创建角色(控制台)过程进行操作。
-
根据使用自定义信任策略创建角色(控制台)过程使用以下自定义信任策略。
注意
如果您想确保该角色只能在特定的协作成员身份环境中使用,则可以进一步缩小信任策略的范围。有关更多信息,请参阅 防止跨服务混淆代理。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyForCleanRoomsService", "Effect": "Allow", "Principal": { "Service": "cleanrooms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
根据使用自定义信任策略创建角色(控制台)过程使用以下权限策略。
注意
以下示例策略支持读取 AWS Glue 元数据及其相应的 Amazon S3 数据所需的权限。但是,您可能需要修改此策略,具体取决于您设置 S3 数据的方式。例如,如果您为 S3 数据设置了自定义 KMS 密钥,则可能需要修改此策略,使其具有额外的 AWS KMS 权限。
您的 AWS Glue 资源和底层 Amazon S3 资源必须与 AWS Clean Rooms 协作 AWS 区域 相同。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "NecessaryGluePermissions", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:
aws-region
:accountId
:database
/database
", "arn:aws:glue:aws-region
:accountId
:table
/table
", "arn:aws:glue:aws-region
:accountId
:catalog
" ] }, { "Effect": "Allow", "Action": [ "glue:GetSchema", "glue:GetSchemaVersion" ], "Resource": [ "*" ] }, { "Sid": "NecessaryS3BucketPermissions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket
" ], "Condition":{ "StringEquals":{ "s3:ResourceAccount":[ "s3BucketOwnerAccountId
" ] } } }, { "Sid": "NecessaryS3ObjectPermissions", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3::bucket
/prefix
/*" ], "Condition":{ "StringEquals":{ "s3:ResourceAccount":[ "s3BucketOwnerAccountId
" ] } } } ] } -
用您自己的信息替换每个
占位符
。 -
继续按照使用自定义信任策略创建角色(控制台)过程创建角色。
创建服务角色以接收结果
注意
如果您是只能接收结果的成员(在控制台中,您的成员权限仅为接收结果),请按照以下步骤操作。
如果您是同时可以查询和接收结果的成员(在控制台中,您的成员权限是查询和接收结果),则可以跳过此过程。
对于只能接收结果的协作成员, AWS Clean Rooms 使用服务角色将协作中查询数据的结果写入指定的 Amazon S3 存储桶。
有两种方法可以创建此服务角色:
如果... | 那么 |
---|---|
您拥有创建服务角色所必需的 IAM 权限 | 使用 AWS Clean Rooms 控制台创建服务角色。 |
你没有 或者 你想手动创建 IAM 角色 |
请执行以下操作之一:
|
创建用于接收结果的服务角色
注意
只有在您没有使用 AWS Clean Rooms 控制台创建服务角色的必要权限时,您或您的 IAM 管理员才应遵循此步骤。
-
按照AWS Identity and Access Management 用户指南中的使用自定义信任策略创建角色(控制台)过程进行操作。
-
根据使用自定义信任策略创建角色(控制台)过程使用以下自定义信任策略。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIfExternalIdMatches", "Effect": "Allow", "Principal": { "Service": "cleanrooms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "sts:ExternalId": "arn:aws:*:
region
:*:dbuser:*/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa
*" } } }, { "Sid": "AllowIfSourceArnMatches", "Effect": "Allow", "Principal": { "Service": "cleanrooms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ForAnyValue:ArnEquals": { "aws:SourceArn": [ "arn:aws:cleanrooms:us-east-1:555555555555:membership/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa
" ] } } } ] } -
根据使用自定义信任策略创建角色(控制台)过程使用以下权限策略。
注意
以下示例策略支持读取 AWS Glue 元数据及其相应的 Amazon S3 数据所需的权限。但是,您可能需要修改此策略,具体取决于您设置 S3 数据的方式。
您的 AWS Glue 资源和底层 Amazon S3 资源必须与 AWS Clean Rooms 协作 AWS 区域 相同。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
bucket_name
" ], "Condition": { "StringEquals": { "aws:ResourceAccount":"accountId
" } } }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket_name/optional_key_prefix/*
" ], "Condition": { "StringEquals": { "aws:ResourceAccount":"accountId
" } } } ] } -
用您自己的信息替换每个
占位符
:-
region
- AWS 区域的名称。例如,us-east-1
。 -
a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa
- 可以查询的成员的成员身份 ID。可以在协作的详细信息选项卡上找到成员身份 ID。这样可以确保 AWS Clean Rooms 只有当该成员在此协作中运行分析时才担任该角色。 -
arn: aws: cleanrooms: us-east-1:555555555555: membership/a1b2c3d4-5678-
90ab-cdef-exampleaaaa — 可以查询的会员的单一会员 ARN。可以在协作的详细信息选项卡上找到成员身份 ARN。这样可以确保 AWS Clean Rooms 只有当该成员在此协作中运行分析时才担任该角色。 -
bucket_name
- S3 存储桶的 Amazon 资源名称 (ARN)。Amazon 资源名称 (ARN) 可在 Amazon S3 存储桶的属性选项卡上找到。 -
账户 ID
— AWS 账户 S3 存储桶所在的 ID。bucket_name/optional_key_prefix
- S3 中结果目标的 Amazon 资源名称 (ARN)。Amazon 资源名称 (ARN) 可在 Amazon S3 存储桶的属性选项卡上找到。
-
-
继续按照使用自定义信任策略创建角色(控制台)过程创建角色。