用于注册位置的角色的要求
在注册 Amazon Simple Storage Service (Amazon S3) 位置时,您必须指定一个 AWS Identity and Access Management (IAM) 角色。AWS Lake Formation 在访问该位置中的数据时将代入该角色。
您可以使用以下角色类型之一来注册位置:
-
Lake Formation 服务相关角色。此角色授予对该位置的所需权限。使用此角色是注册位置的最简单方法。有关更多信息,请参阅 在 Lake Formation 中使用服务相关角色。
-
用户定义的角色。当您需要授予的权限多于服务相关角色提供的权限时,请使用用户定义的角色。
在以下情况下,您必须使用用户定义的角色:
-
在其他账户中注册位置时。
有关更多信息,请参阅在其他 AWS 账户中注册 Amazon S3 位置和跨 AWS 账户注册加密的 Amazon S3 位置。
-
如果您使用 AWS 托管 CMK (
aws/s3
) 对 Amazon S3 位置进行加密。有关更多信息,请参阅 注册加密的 Amazon S3 位置。
-
如果您计划使用 Amazon EMR。
如果您已使用服务相关角色注册了某个位置,并且想要开始使用 Amazon EMR 访问该位置,则必须取消注册该位置,然后使用用户定义的角色重新注册该位置。有关更多信息,请参阅 取消注册 Amazon S3 位置。
-
以下是用户定义的角色的要求:
-
创建新角色时,在 IAM 控制台的创建角色页面上,选择 AWS 服务,然后在选择一个使用案例下选择 Lake Formation。
如果使用其他路径创建角色,请确保该角色与
lakeformation.amazonaws.com
具有信任关系。有关更多信息,请参阅修改角色信任策略(控制台)。 -
该角色必须与以下实体建立信任关系:
-
glue.amazonaws.com
-
lakeformation.amazonaws.com
有关更多信息,请参阅修改角色信任策略(控制台)。
-
-
该角色必须具有授予 Amazon S3 对该位置的读/写权限的内联策略。以下是典型的策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket" ] } ] }
-
将以下信任策略添加到 IAM 角色,以便 Lake Formation 服务代入该角色并将临时凭证提供给集成的分析引擎。
要在 CloudTrail 日志中包含 IAM Identity Center 用户上下文,信任策略必须具有
sts:SetContext
操作的权限。"sts:SetContext"{ "Version": "2012-10-17", "Statement": [ { "Sid": "DataCatalogViewDefinerAssumeRole1", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
-
注册该位置的数据湖管理员必须具有对该角色的
iam:PassRole
权限。以下是授予此权限的内联策略。将
<account-id>
替换为有效的 AWS 账号,并将<role-name>
替换为该角色的名称。{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
<account-id>
:role/<role-name>
" ] } ] } -
要允许 Lake Formation 在 CloudWatch Logs 中添加日志并发布指标,请添加以下内联策略。
注意
写入 CloudWatch Logs 会产生费用。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Sid1", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:
<region>
:<account-id>
:log-group:/aws-lakeformation-acceleration/*", "arn:aws:logs:<region>
:<account-id>
:log-group:/aws-lakeformation-acceleration/*:log-stream:*" ] } ] }