用于注册位置的角色的要求 - AWS Lake Formation

用于注册位置的角色的要求

在注册 Amazon Simple Storage Service (Amazon S3) 位置时,您必须指定一个 AWS Identity and Access Management (IAM) 角色。AWS Lake Formation 在访问该位置中的数据时将代入该角色。

您可以使用以下角色类型之一来注册位置:

  • Lake Formation 服务相关角色。此角色授予对该位置的所需权限。使用此角色是注册位置的最简单方法。有关更多信息,请参阅 在 Lake Formation 中使用服务相关角色

  • 用户定义的角色。当您需要授予的权限多于服务相关角色提供的权限时,请使用用户定义的角色。

    在以下情况下,您必须使用用户定义的角色:

以下是用户定义的角色的要求:

  • 创建新角色时,在 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:*" ] } ] }