本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Lake Formation 角色和IAM权限参考
本节列出了一些建议的 Lake Formation 角色及其建议的 AWS Identity and Access Management (IAM) 权限。有关 Lake Formation 权限的信息,请参阅 Lake Formation 权限参考。
AWS Lake Formation 人物角色
下表列出了建议 AWS Lake Formation 的角色。
角色 | 描述 |
---|---|
IAM管理员(超级用户) | (必填)可以创建IAM用户和角色的用户。有AdministratorAccess AWS 托管策略。具有对所有 Lake Formation 资源的所有权限。可以添加数据湖管理员。如果未同时指定数据湖管理员,则无法授予 Lake Formation 权限。 |
数据湖管理员 | (必填)可以注册 Amazon S3 地点、访问数据目录、创建数据库、创建和运行工作流程、向其他用户授予 Lake Formation 权限以及查看 AWS CloudTrail 日志的用户。IAM权限比IAM管理员少,但足以管理数据湖。无法添加其他数据湖管理员。 |
只读管理员 | (可选)可以查看主体、数据目录资源、权限和 AWS CloudTrail 日志但无权进行更新的用户。 |
数据工程师 | (可选)可以创建数据库、创建和运行爬网程序和工作流,以及授予对爬网程序和工作流创建的数据目录表的 Lake Formation 权限的用户。我们建议您将所有数据工程师设置为数据库创建者。有关更多信息,请参阅 创建数据库。 |
数据分析人员 | (可选)可以使用 Amazon Athena等对数据湖运行查询的用户。只有足够的权限来运行查询。 |
工作流角色 | (必需)代表用户运行工作流的角色。您可以在从蓝图创建工作流时指定此角色。 |
AWS Lake Formation 的托管策略
您可以使用 AWS 托管策略和内联策略授 AWS Lake Formation 予使用所需的 AWS Identity and Access Management (IAM) 权限。以下 AWS 托管策略适用于 Lake Formation。
AWS 托管策略:AWSLakeFormationDataAdmin
AWSLakeFormationDataAdmin
您可以将 AWSLakeFormationDataAdmin
附加到您的用户、组和角色。
权限详细信息
CloudTrail
— 允许委托人查看 AWS CloudTrail 日志。这是检查数据湖设置中的任何错误所必需的权限。-
Glue
- 允许主体查看、创建和更新数据目录中的元数据表和数据库。这包括以Get
、、、List
Create
Update
Delete
、和开头的API操作Search
。这是管理数据湖表的元数据所必需的权限。 IAM
— 允许委托人检索有关IAM用户、角色和附加到角色的策略的信息。这是数据管理员查看和列出IAM用户和角色以授予 Lake Formation 权限所必需的。Lake Formation
- 向数据湖管理员授予管理数据湖所需的 Lake Formation 权限。S3
- 允许主体检索有关 Amazon S3 存储桶及其位置的信息,以便为数据湖设置数据位置。
"Statement": [ { "Sid": "AWSLakeFormationDataAdminAllow", "Effect": "Allow", "Action": [ "lakeformation:*", "cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetConnections", "glue:SearchTables", "glue:GetTable", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTableVersions", "glue:GetPartitions", "glue:GetTables", "glue:ListWorkflows", "glue:BatchGetWorkflows", "glue:DeleteWorkflow", "glue:GetWorkflowRuns", "glue:StartWorkflowRun", "glue:GetWorkflow", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "iam:ListUsers", "iam:ListRoles", "iam:GetRole", "iam:GetRolePolicy" ], "Resource": "*" }, { "Sid": "AWSLakeFormationDataAdminDeny", "Effect": "Deny", "Action": [ "lakeformation:PutDataLakeSettings" ], "Resource": "*" } ] }
注意
AWSLakeFormationDataAdmin
策略不会向数据湖管理员授予所有必需的权限。需要额外的权限才能创建和运行工作流并向服务相关角色 AWSServiceRoleForLakeFormationDataAccess
注册位置。有关更多信息,请参阅创建数据湖管理员 和在 Lake Formation 中使用服务相关角色。
AWS 托管策略:AWSLakeFormationCrossAccountManager
AWSLakeFormationCrossAccountManager
您可以将 AWSLakeFormationCrossAccountManager
附加到您的用户、组和角色。
权限详细信息
该策略包含以下权限。
Glue
- 允许主体设置或删除用于访问控制的数据目录资源策略。Organizations
- 允许主体检索组织的账户和组织单位 (OU) 信息。ram:CreateResourceShare
- 允许主体创建资源共享。ram:UpdateResourceShare
- 允许主体修改指定资源共享的某些属性。-
ram:DeleteResourceShare
- 允许主体删除指定的资源共享。 ram:AssociateResourceShare
- 允许主体将指定的主体列表和资源列表添加到资源共享。ram:DisassociateResourceShare
- 允许主体将指定的主体或资源从参与指定资源共享中移除。ram:GetResourceShares
– 允许主体检索有关您拥有的或与您共享的资源共享的详细信息。ram:RequestedResourceType
- 允许主体检索资源类型(数据库、表或目录)。AssociateResourceSharePermission
— 允许委托人添加或替换资源共享中包含的资源类型的 AWS RAM 权限。您只能将一个权限与资源共享中包含的每种资源类型相关联。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowCreateResourceShare", "Effect": "Allow", "Action": [ "ram:CreateResourceShare" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "ram:RequestedResourceType": [ "glue:Table", "glue:Database", "glue:Catalog" ] } } }, { "Sid": "AllowManageResourceShare", "Effect": "Allow", "Action": [ "ram:UpdateResourceShare", "ram:DeleteResourceShare", "ram:AssociateResourceShare", "ram:DisassociateResourceShare", "ram:GetResourceShares" ], "Resource": "*", "Condition": { "StringLike": { "ram:ResourceShareName": [ "LakeFormation*" ] } } }, { "Sid": "AllowManageResourceSharePermissions", "Effect": "Allow", "Action": [ "ram:AssociateResourceSharePermission" ], "Resource": "*", "Condition": { "StringLike": { "ram:PermissionArn": [ "arn:aws:ram::aws:permission/AWSRAMLFEnabled*" ] } } }, { "Sid": "AllowXAcctManagerPermissions", "Effect": "Allow", "Action": [ "glue:PutResourcePolicy", "glue:DeleteResourcePolicy", "organizations:DescribeOrganization", "organizations:DescribeAccount", "ram:Get*", "ram:List*" ], "Resource": "*" }, { "Sid": "AllowOrganizationsPermissions", "Effect": "Allow", "Action": [ "organizations:ListRoots", "organizations:ListAccountsForParent", "organizations:ListOrganizationalUnitsForParent" ], "Resource": "*" } ] }
AWS 托管策略:AWSGlueConsoleFullAccess
AWSGlueConsoleFullAccess
此外,AWS Glue Lake Formation 担任服务角色,AWSGlueServiceRole
允许访问相关服务,包括亚马逊弹性计算云(亚马逊EC2)、亚马逊简单存储服务(Amazon S3)和亚马逊。 CloudWatch
AWS managed policy:LakeFormationDataAccessServiceRolePolicy
此策略附加到名为的服务相关角色ServiceRoleForLakeFormationDataAccess
,该角色允许服务根据您的请求对资源执行操作。您不能将此政策附加到您的IAM身份。
该政策允许 Lake Formation 集成 AWS 服务(例如 Amazon Athena 或 Amazon Redshift)使用服务相关角色来发现 Amazon S3 资源。
有关更多信息,请参阅在 Lake Formation 中使用服务相关角色。
权限详细信息
此策略包含以下权限。
-
s3:ListAllMyBuckets
— 返回请求的经过身份验证的发送者拥有的所有存储桶的列表。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessServiceRolePolicy", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "arn:aws:s3:::*" ] } ] }
Lake Formation 更新 AWS 了托管政策
查看自该服务开始追踪 Lake Formation AWS 托管政策变更以来这些更新的详细信息。
更改 | 描述 | 日期 |
---|---|---|
Lake Formation 更新了 AWSLakeFormationCrossAccountManager 策略。 |
Lake Formati AWSLakeFormationCrossAccountManager |
2024年3月 |
Lake Formation 更新了 AWSLakeFormationDataAdmin 策略。 |
Lake Formation 在AWSLakeFormationDataAdmin |
2024年3月 |
Lake Formation 更新了 LakeFormationDataAccessServiceRolePolicy 策略。 |
Lake Formation在LakeFormationDataAccessServiceRolePolicy |
2024年2月 |
Lake Formation 更新了 AWSLakeFormationCrossAccountManager 策略。 |
Lake Formation 增加了在混合访问模式下启用跨账户数据共享的新权限,从而增强了该AWSLakeFormationCrossAccountManager |
2023 年 10 月 |
Lake Formation 更新了 AWSLakeFormationCrossAccountManager 策略。 |
Lake Formation 增强了AWSLakeFormationCrossAccountManager |
2022 年 5 月 6 日 |
Lake Formation 开启了跟踪更改。 | Lake Formation开始跟踪其 AWS 托管政策的变更。 | 2022 年 5 月 6 日 |
角色建议的权限
以下是针对每个角色建议的权限。不包括IAM管理员,因为该用户拥有所有资源的所有权限。
数据湖管理员权限
重要
在以下策略中,替换 <account-id>
使用有效的 AWS 账号,然后替换 <workflow_role>
使用有权运行工作流程的角色的名称,如中所定义工作流角色权限。
策略类型 | Policy |
---|---|
AWS 托管策略 |
有关可选 AWS 托管策略的信息,请参阅创建数据湖管理员。 |
内联策略(用于创建 Lake Formation 服务相关角色) |
|
(可选)内联策略(工作流角色的 passrole 策略)。仅当数据湖管理员创建并运行工作流时,才需要此策略。 |
|
(可选)内联策略(如果您的账户要授予或接收跨账户 Lake Formation 权限)。此政策用于接受或拒绝 AWS RAM 资源共享邀请,以及允许向组织授予跨账户权限。 ram:EnableSharingWithAwsOrganization 只有 AWS Organizations
管理账户中的数据湖管理员才需要填写。 |
|
只读管理员权限
策略类型 | Policy |
---|---|
内联策略(基本) |
|
数据工程师权限
重要
在以下策略中,替换 <account-id>
使用有效的 AWS 账号,然后替换 <workflow_role>
使用工作流程角色的名称。
策略类型 | Policy |
---|---|
AWS 托管策略 | AWSGlueConsoleFullAccess |
内联策略(基本) |
|
内联策略(用于对受管控表的操作,包括事务中的操作) |
|
内联策略(用于使用基于 Lake Formation 标签的访问控制 (LF-TBAC) 方法进行元数据访问控制) |
|
内联策略(工作流角色的 passrole 策略) |
|
数据分析师权限
策略类型 | Policy |
---|---|
AWS 托管策略 | AmazonAthenaFullAccess |
内联策略(基本) |
|
(可选)内联策略(用于对受管控表的操作,包括事务中的操作) |
|
工作流角色权限
该角色具有运行工作流所需的权限。创建工作流时,您可以指定具有这些权限的角色。
重要
在以下策略中,替换 <region>
使用有效的 AWS 区域标识符(例如us-east-1
),<account-id>
使用有效的 AWS 账号,<workflow_role>
使用工作流程角色的名称,以及 <your-s3-cloudtrail-bucket>
使用指向您的 AWS CloudTrail 日志的 Amazon S3 路径。
策略类型 | Policy |
---|---|
AWS 托管策略 | AWSGlueServiceRole |
内联策略(数据访问) |
|
内联策略(工作流角色的 passrole 策略) |
|
内联策略(用于在数据湖之外提取数据, AWS CloudTrail 例如日志) |
|