Lake Formation 角色和IAM許可參考 - AWS Lake Formation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Lake Formation 角色和IAM許可參考

本節列出一些建議的 Lake Formation 角色及其建議的 AWS Identity and Access Management (IAM) 許可。如需有關 Lake Formation 許可的資訊,請參閱 Lake Formation 權限參考

AWS Lake Formation 角色

下表列出建議 AWS Lake Formation 的角色。

Lake Formation 角色
人物 描述
IAM 管理員 (超級使用者) (必要) 可以建立使用者和角色IAM的使用者。具有 AdministratorAccess AWS 受管政策。具有所有 Lake Formation 資源的所有許可。可以新增資料湖管理員。如果還未指定資料湖管理員,則無法授予 Lake Formation 許可。
Data lake 管理員 (必要) 可註冊 Amazon S3 位置、存取 Data Catalog、建立資料庫、建立和執行工作流程、將 Lake Formation 許可授予其他使用者,以及檢視 AWS CloudTrail 日誌的使用者。IAM 許可少於IAM管理員,但足以管理資料湖。無法新增其他資料湖管理員。
唯讀管理員 (選用) 使用者可以檢視主體、Data Catalog 資源、許可和 AWS CloudTrail 日誌,而不需要進行更新的許可。
資料工程師 (選用) 可建立資料庫、建立和執行爬蟲程式和工作流程,以及授予爬蟲程式和工作流程所建立之 Data Catalog 資料表的 Lake Formation 許可的使用者。建議您讓所有資料工程師建立資料庫。如需詳細資訊,請參閱建立資料庫
資料分析 (選用) 可以使用 對資料湖執行查詢的使用者,例如 Amazon Athena。僅具有足夠的許可來執行查詢。
工作流程角色 (必要) 代表使用者執行工作流程的角色。當您從藍圖建立工作流程時,您可以指定此角色。

AWS Lake Formation 的 受管政策

您可以使用 AWS 受管政策和內嵌政策 AWS Lake Formation ,授予使用 所需的 AWS Identity and Access Management (IAM) 許可。下列 AWS 受管政策適用於 Lake Formation。

AWS 受管政策:AWSLakeFormationDataAdmin

AWSLakeFormationDataAdmin 政策會授予 AWS Lake Formation 和 相關服務的管理存取權,例如 AWS Glue 來管理資料湖。

您可以AWSLakeFormationDataAdmin連接至使用者、群組和角色。

許可詳細資訊

  • CloudTrail – 允許主體檢視 AWS CloudTrail 日誌。這是檢閱資料湖設定中任何錯誤的必要條件。

  • Glue – 允許主體檢視、建立和更新 Data Catalog 中的中繼資料資料表和資料庫。這包括以 GetList、、CreateUpdateDelete和 開頭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 政策透過 Lake Formation 提供 AWS Glue 資源的跨帳戶存取權,並授予其他必要服務的讀取存取權,例如 AWS Organizations 和 AWS RAM。

您可以AWSLakeFormationCrossAccountManager連接至使用者、群組和角色。

許可詳細資訊

此政策包含以下許可。

  • Glue – 允許主體設定或刪除存取控制的 Data Catalog 資源政策。

  • 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 資源的完整存取權 AWS Management Console。如果您依照此政策中指定的資源命名慣例,使用者就能擁有完整的主控台功能。此政策通常連接到 AWS Glue 主控台的使用者。

此外,AWS Glue 和 Lake Formation 擔任服務角色AWSGlueServiceRole,以允許存取相關服務,包括 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (Amazon S3) 和 Amazon 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 Formation 透過將 Sid 元素新增至AWSLakeFormationCrossAccountManager政策陳述式來增強政策。 2024 年 3 月
Lake Formation 已更新AWSLakeFormationDataAdmin政策。 Lake Formation 透過將 Sid 元素新增至AWSLakeFormationDataAdmin政策陳述式並移除冗餘動作來增強政策。 2024 年 3 月
Lake Formation 已更新LakeFormationDataAccessServiceRolePolicy政策。 Lake Formation 透過將 Sid 元素新增至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 管理員不包括,因為該使用者擁有所有資源的所有許可。

Data lake 管理員許可

重要

在下列政策中,取代 <account-id> 具有有效的 AWS 帳戶號碼,並取代 <workflow_role> 具有執行工作流程之許可的角色名稱,如 中所定義工作流程角色許可

政策類型 政策
AWS 受管政策
  • AWSLakeFormationDataAdmin

  • LakeFormationDataAccessServiceRolePolicy (服務連結角色政策)

  • AWSGlueConsoleFullAccess (選用)

  • CloudWatchLogsReadOnlyAccess (選用)

  • AWSLakeFormationCrossAccountManager (選用)

  • AmazonAthenaFullAccess (選用)

如需選用 AWS 受管政策的相關資訊,請參閱 建立資料湖管理員

內嵌政策 (用於建立 Lake Formation 服務連結角色)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" } ] }
(選用) 內嵌政策 (工作流程角色的通道政策)。只有在資料湖管理員建立並執行工作流程時,才需要這樣做。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
(選用) 內嵌政策 (如果您的帳戶授予或接收跨帳戶 Lake Formation 許可)。此政策用於接受或拒絕 AWS RAM 資源共用邀請,以及啟用將跨帳戶許可授予組織。 ram:EnableSharingWithAwsOrganization 僅適用於管理帳戶中的資料湖管理員 AWS Organizations 。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }

唯讀管理員許可

Policy type (政策類型) 政策
內嵌政策 (基本)
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "lakeformation:GetEffectivePermissionsForPath", "lakeformation:ListPermissions", "lakeformation:ListDataCellsFilter", "lakeformation:GetDataCellsFilter", "lakeformation:SearchDatabasesByLFTags", "lakeformation:SearchTablesByLFTags", "lakeformation:GetLFTag", "lakeformation:ListLFTags", "lakeformation:GetResourceLFTags", "lakeformation:ListLakeFormationOptins", "cloudtrail:DescribeTrails", "cloudtrail:LookupEvents", "glue:GetDatabase", "glue:GetDatabases", "glue:GetConnections", "glue:SearchTables", "glue:GetTable", "glue:GetTableVersions", "glue:GetPartitions", "glue:GetTables", "glue:GetWorkflow", "glue:ListWorkflows", "glue:BatchGetWorkflows", "glue:GetWorkflowRuns", "glue:GetWorkflow", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "iam:ListUsers", "iam:ListRoles", "iam:GetRole", "iam:GetRolePolicy" ], "Resource":"*" }, { "Effect":"Deny", "Action":[ "lakeformation:PutDataLakeSettings" ], "Resource":"*" } ] }

資料工程師許可

重要

在下列政策中,取代 <account-id> 具有有效的 AWS 帳戶號碼,並取代 <workflow_role> 工作流程角色的名稱。

政策類型 政策
AWS 受管政策 AWSGlueConsoleFullAccess
內嵌政策 (基本)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "lakeformation:BatchGrantPermissions", "lakeformation:BatchRevokePermissions", "lakeformation:ListPermissions", "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags", "lakeformation:GetWorkUnits", "lakeformation:GetWorkUnitResults", "lakeformation:StartQueryPlanning", "lakeformation:GetQueryState", "lakeformation:GetQueryStatistics" ], "Resource": "*" } ] }
內嵌政策 (適用於受管資料表上的操作,包括交易中的操作)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }
內嵌政策 (適用於使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法的中繼資料存取控制)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
內嵌政策 (工作流程角色的通道政策)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }

資料分析師許可

政策類型 政策
AWS 受管政策 AmazonAthenaFullAccess
內嵌政策 (基本)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
(選用) 內嵌政策 (適用於受管資料表上的操作,包括交易中的操作)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }

工作流程角色許可

此角色具有執行工作流程所需的許可。您在建立工作流程時指定具有這些許可的角色。

重要

在下列政策中,取代 <region> 具有有效的 AWS 區域識別符 (例如 us-east-1),<account-id> 具有有效的 AWS 帳戶號碼 <workflow_role> 工作流程角色的名稱,以及 <your-s3-cloudtrail-bucket> 日誌的 Amazon S3 路徑 AWS CloudTrail 。

政策類型 政策
AWS 受管政策 AWSGlueServiceRole
內嵌政策 (資料存取)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Lakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" } ] }
內嵌政策 (工作流程角色的通道政策)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<workflow_role>" ] } ] }
內嵌政策 (用於在資料湖外擷取資料,例如 AWS CloudTrail 日誌)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }