本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 AWS Lake Formation
下列各節提供首次設定 Lake Formation 的相關資訊。並非本節中的所有主題都需要開始使用 Lake Formation。您可以使用指示來設定 Lake Formation 許可模型,以管理 Amazon Simple Storage Service (Amazon S3) 中現有的 AWS Glue Data Catalog 物件和資料位置。
本節說明如何以兩種不同方式設定 Lake Formation 資源:
使用 AWS CloudFormation 範本
使用 Lake Formation 主控台
若要使用 AWS 主控台設定 Lake Formation,請前往 建立資料湖管理員。
使用 AWS CloudFormation 範本設定 Lake Formation 資源
注意
AWS CloudFormation 堆疊會執行上述步驟 1 到 6,步驟 2 和 5 除外。從 Lake Formation 主控台執行 變更預設許可模型或使用混合存取模式和 整合 IAM Identity Center手動。
以美國東部 (維吉尼亞北部) 區域中的IAM管理員身分,在 https://console.aws.amazon.com/cloudformation
登入 AWS CloudFormation 主控台。 選擇啟動堆疊
。 在建立堆疊畫面上選擇下一步。
輸入堆疊名稱。
對於 DatalakeAdminName和 DatalakeAdminPassword,輸入資料湖管理員使用者的使用者名稱和密碼。
對於 DatalakeUser1Name 和 DatalakeUser1Password ,輸入資料湖分析師使用者的使用者名稱和密碼。
針對 DataLakeBucketName,輸入要建立的新儲存貯體名稱。
選擇 Next (下一步)。
在下一頁,選擇下一個 。
檢閱最終頁面上的詳細資訊,然後選取我確認 AWS CloudFormation 可能會建立IAM資源。
選擇 Create (建立)。
堆疊建立最多可能需要兩分鐘。
清除資源
如果您想要清除 AWS CloudFormation 堆疊資源:
取消註冊堆疊建立並註冊為資料湖位置的 Amazon S3 儲存貯體。
刪除 AWS CloudFormation 堆疊。這將刪除堆疊建立的所有資源。
建立資料湖管理員
資料湖管理員一開始是唯一 AWS Identity and Access Management (IAM) 可授予資料位置和資料目錄資源 Lake Formation 許可給任何主體 (包括自己) 的使用者或角色。如需資料湖管理員功能的詳細資訊,請參閱 隱含 Lake Formation 權限。根據預設,Lake Formation 可讓您建立最多 30 個資料湖管理員。
您可以使用 Lake Formation 主控台或 Lake Formation PutDataLakeSettings
的操作來建立資料湖管理員API。
建立資料湖管理員需要下列許可。Administrator
使用者隱含這些許可。
-
lakeformation:PutDataLakeSettings
-
lakeformation:GetDataLakeSettings
如果您授予使用者AWSLakeFormationDataAdmin
政策,該使用者將無法建立其他 Lake Formation 管理員使用者。
建立資料湖管理員 (主控台)
-
如果要成為資料湖管理員的使用者尚未存在,請使用IAM主控台來建立它。否則,請選擇要擔任資料湖管理員的現有使用者。
注意
建議您不要選擇IAM管理使用者 (具有
AdministratorAccess
AWS 受管政策的使用者) 作為資料湖管理員。將下列 AWS 受管政策連接至使用者:
政策 強制性? 備註 AWSLakeFormationDataAdmin
強制性 基本資料湖管理員許可。此 AWS 受管政策包含 Lake Formation API操作的明確拒絕, PutDataLakeSetting
限制使用者建立新的資料湖管理員。AWSGlueConsoleFullAccess
,CloudWatchLogsReadOnlyAccess
選用 如果資料湖管理員將疑難排解 Lake Formation 藍圖建立的工作流程,請連接這些政策。這些政策可讓資料湖管理員檢視 中的疑難排解資訊 AWS Glue 主控台和 Amazon CloudWatch Logs 主控台。如需工作流程的相關資訊,請參閱 在 Lake Formation 中使用工作流程匯入資料。 AWSLakeFormationCrossAccountManager
選用 連接此政策,讓 Data Lake 管理員授予和撤銷 Data Catalog 資源的跨帳戶許可。如需詳細資訊,請參閱Lake Formation 中的跨帳戶資料共用。 AmazonAthenaFullAccess
選用 如果資料湖管理員將在 中執行查詢,請連接此政策 Amazon Athena。 -
連接下列內嵌政策,授予資料湖管理員建立 Lake Formation 服務連結角色的許可。政策的建議名稱為
LakeFormationSLR
。服務連結角色可讓資料湖管理員更輕鬆地向 Lake Formation 註冊 Amazon S3 位置。如需 Lake Formation 服務連結角色的詳細資訊,請參閱 使用 Lake Formation 的服務連結角色。
重要
在下列所有政策中,取代
<account-id>
具有有效的 AWS 帳戶號碼。{ "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" } ] } -
(選用) 將下列
PassRole
內嵌政策連接至使用者。此政策可讓資料湖管理員建立和執行工作流程。iam:PassRole
許可可讓工作流程擔任角色LakeFormationWorkflowRole
以建立爬蟲程式和任務,並將角色連接至建立的爬蟲程式和任務。政策的建議名稱為UserPassRole
。重要
Replace (取代)
<account-id>
具有有效的 AWS 帳戶號碼。{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
<account-id>
:role/LakeFormationWorkflowRole" ] } ] } -
(選用) 如果您的帳戶將授予或接收跨帳戶 Lake Formation 許可,請附加此額外的內嵌政策。此政策可讓資料湖管理員檢視和接受 AWS Resource Access Manager (AWS RAM) 資源共用邀請。此外,對於 AWS Organizations 管理帳戶中的資料湖管理員,政策包含允許跨帳戶授予組織的權限。如需詳細資訊,請參閱Lake Formation 中的跨帳戶資料共用。
政策的建議名稱為
RAMAccess
。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
-
在 開啟 AWS Lake Formation 主控台,https://console.aws.amazon.com/lakeformation/
並以您在 中建立的管理員使用者身分登入,建立具有管理存取權的使用者或以 AdministratorAccess
使用者 AWS 受管政策的使用者身分登入。 -
如果出現歡迎加入 Lake Formation 視窗,請選擇您在步驟 1 中建立或選取的IAM使用者,然後選擇開始使用 。
-
如果您沒有看到歡迎加入 Lake Formation 視窗,請執行下列步驟來設定 Lake Formation 管理員。
-
在導覽窗格中的管理員 下,選擇管理角色和任務 。在主控台頁面的資料湖管理員區段中,選擇新增 。
-
在新增管理員對話方塊中的存取類型下,選擇 Data lake 管理員 。
針對IAM使用者和角色 ,選擇您在步驟 1 中建立或選取的IAM使用者,然後選擇儲存 。
-
變更預設許可模型或使用混合存取模式
Lake Formation 一開始會啟用「僅使用IAM存取控制」設定,以與現有 AWS Glue Data Catalog 行為相容。此設定可讓您透過IAM政策和 Amazon S3 儲存貯體政策,管理對資料湖中資料及其中繼資料的存取。
為了簡化資料湖許可從 IAM和 Amazon S3 模型轉換至 Lake Formation 許可,我們建議您使用 Data Catalog 的混合存取模式。使用混合存取模式時,您會有一個增量路徑,可讓您為特定使用者集啟用 Lake Formation 許可,而不會中斷其他現有使用者或工作負載。
如需詳細資訊,請參閱混合存取模式。
停用預設設定,以在單一步驟中將資料表的所有現有使用者移至 Lake Formation。
重要
如果您有現有的 AWS Glue Data Catalog 資料庫和資料表,請勿遵循本節中的指示。或者,請遵循升級 AWS GlueAWS Lake Formation 模型的資料許可中的說明進行。
警告
如果您有在 Data Catalog 中建立資料庫和資料表的自動化,下列步驟可能會導致自動化和下游擷取、轉換和載入 (ETL) 任務失敗。只有在修改現有程序或將明確的 Lake Formation 許可授予必要的委託人之後,才能繼續執行。如需有關 Lake Formation 許可的資訊,請參閱 Lake Formation 權限參考。
若要變更預設 Data Catalog 設定
-
在 Lake Formation 主控台的 中繼續https://console.aws.amazon.com/lakeformation/
。確保您以您在 中建立的管理員使用者身分登入,建立具有管理存取權的使用者或以 AdministratorAccess
AWS 受管政策的使用者身分登入。 修改 Data Catalog 設定:
-
在導覽窗格中的管理 下,選擇 Data Catalog 設定 。
-
清除兩個核取方塊,然後選擇儲存 。
-
撤銷資料庫建立者的
IAMAllowedPrincipals
許可。-
在導覽窗格中的管理 下,選擇管理角色和任務 。
-
在管理角色和任務主控台頁面的資料庫建立者區段中,選取
IAMAllowedPrincipals
群組,然後選擇撤銷 。隨即出現撤銷許可對話方塊,顯示
IAMAllowedPrincipals
具有建立資料庫許可。 -
選擇撤銷 。
-
將許可指派給 Lake Formation 使用者
建立使用者以存取 中的資料湖 AWS Lake Formation。此使用者具有查詢資料湖的最低權限。
如需建立使用者或群組的詳細資訊,請參閱 IAM 使用者指南中的IAM身分。
將許可附加至非管理員使用者以存取 Lake Formation 資料
-
在 開啟IAM主控台,https://console.aws.amazon.com/iam
並以您在 中建立的管理員使用者身分登入,建立具有管理存取權的使用者或以 AdministratorAccess
AWS 受管政策的使用者身分登入。 -
選擇使用者或使用者群組 。
-
在清單中,選擇要內嵌政策的使用者或群組名稱。
選擇許可。
-
選擇 新增許可 ,然後選擇 直接連接政策 。
Athena
在篩選政策文字欄位中輸入 。在結果清單中,勾選 的核取方塊AmazonAthenaFullAccess
。 -
選擇建立政策按鈕。在建立政策頁面上,選擇 JSON 索引標籤。將下列程式碼複製並貼到政策編輯器中。
{ "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": "*" } ] }
-
選擇底部的下一步按鈕,直到您看到檢閱政策頁面為止。輸入政策的名稱,例如
DatalakeUserBasic
。選擇建立政策 ,然後關閉政策索引標籤或瀏覽器視窗。
為您的資料湖設定 Amazon S3 位置
若要使用 Lake Formation 來管理和保護資料湖中的資料,您必須先註冊 Amazon S3 位置。當您註冊位置時,會註冊該 Amazon S3 路徑和該路徑下的所有資料夾,這可讓 Lake Formation 強制執行儲存層級許可。當使用者從 Amazon Athena 等整合引擎請求資料時,Lake Formation 會提供資料存取,而不是使用使用者許可。
註冊位置時,您可以指定在該位置授予讀取/寫入許可IAM的角色。Lake Formation 在將臨時憑證提供給請求存取已註冊 Amazon S3 位置中資料的整合 AWS 服務時,會擔任該角色。您可以指定 Lake Formation 服務連結角色 (SLR) 或建立您自己的角色。
在下列情況下使用自訂角色:
-
您計劃在 Amazon CloudWatch Logs 中發佈指標。使用者定義的角色必須包含在 CloudWatch 日誌中新增日誌的政策,以及除了SLR許可之外發佈指標的政策。如需授予必要 CloudWatch 許可的內嵌政策範例,請參閱 用於註冊位置的角色需求。
-
Amazon S3 位置存在於不同的帳戶中。如需詳細資訊,請參閱 在另一個 AWS 帳戶中註冊 Amazon S3 位置。
-
Amazon S3 位置包含使用 加密的資料 AWS 受管金鑰。如需詳細資訊,請參閱 註冊加密的 Amazon S3 位置 和 跨 AWS 帳戶註冊加密的 Amazon S3 位置。
-
您計劃使用 Amazon 存取 Amazon S3 位置EMR。如需角色需求的詳細資訊,請參閱 Amazon EMR管理指南 中的 IAM Lake Formation 角色。
您選擇的角色必須具有必要的許可,如 中所述用於註冊位置的角色需求。如需如何註冊 Amazon S3 位置的指示,請參閱 將 Amazon S3 位置新增至您的資料湖。
(選用) 外部資料篩選設定
如果您打算使用第三方查詢引擎分析和處理資料湖中的資料,您必須選擇加入,以允許外部引擎存取 Lake Formation 管理的資料。如果您不選擇加入,外部引擎將無法存取在 Lake Formation 註冊的 Amazon S3 位置中的資料。
Lake Formation 支援資料欄層級許可,以限制對資料表中特定資料欄的存取。整合分析服務,例如 Amazon Athena、Amazon Redshift Spectrum 和 Amazon 從 EMR擷取未篩選的資料表中繼資料 AWS Glue Data Catalog。查詢回應中資料欄的實際篩選是整合服務的責任。第三方管理員有責任正確處理許可,以避免未經授權存取資料。
選擇加入以允許第三方引擎存取和篩選資料 (主控台)
-
在 Lake Formation 主控台的 中繼續https://console.aws.amazon.com/lakeformation/
。確保您以擁有 Lake Formation PutDataLakeSettings
API操作IAM許可的主體身分登入。您在 中建立的IAM管理員使用者註冊 AWS 帳戶具有此許可。 -
在導覽窗格中的管理 下,選擇應用程式整合設定 。
-
在應用程式整合設定頁面上,執行下列動作:
-
勾選允許外部引擎篩選向 Lake Formation 註冊的 Amazon S3 位置中的資料。
-
輸入為第三方引擎定義的工作階段標籤值。
-
對於AWS 帳戶 IDs,輸入允許IDs第三方引擎存取 Lake Formation 註冊位置的帳戶。在每個帳戶 ID 後按 Enter。
-
選擇 Save (儲存)。
-
若要允許外部引擎在沒有工作階段標籤驗證的情況下存取資料,請參閱 完整資料表存取的應用程式整合
(選用) 授予 Data Catalog 加密金鑰的存取權
如果 AWS Glue Data Catalog 已加密,請將 AWS KMS 金鑰的 AWS Identity and Access Management (IAM) 許可授予需要授予 Data Catalog 資料庫和資料表 Lake Formation 許可的任何主體。
如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》。
(選用) 建立工作流程IAM的角色
透過 AWS Lake Formation,您可以使用 AWS Glue 爬蟲程式執行的工作流程匯入資料。工作流程會定義資料來源和排程,以將資料匯入您的資料湖。您可以使用 Lake Formation 提供的藍圖 或 範本輕鬆定義工作流程。
建立工作流程時,您必須為其指派 AWS Identity and Access Management (IAM) 角色,授予 Lake Formation 擷取資料的必要許可。
下列程序假設熟悉 IAM。
為工作流程建立IAM角色
-
在 開啟IAM主控台,https://console.aws.amazon.com/iam
並以您在 中建立的管理員使用者身分登入建立具有管理存取權的使用者,或以 AdministratorAccess
AWS 受管政策的使用者身分登入。 -
在導覽窗格中,選擇角色 ,然後選擇建立角色 。
-
在建立角色頁面上,選擇AWS 服務 ,然後選擇 Glue 。選擇 Next (下一步)。
-
在新增許可頁面上,搜尋AWSGlueServiceRole受管政策,並選取清單中政策名稱旁的核取方塊。然後完成建立角色精靈,命名角色
LFWorkflowRole
。若要完成,請選擇建立角色 。 -
返回角色頁面,搜尋
LFflowRole
並選擇角色名稱。 -
在角色摘要頁面的許可索引標籤下,選擇建立內嵌政策 。在建立政策畫面上,導覽至JSON索引標籤,並新增下列內嵌政策。政策的建議名稱為
LakeFormationWorkflow
。重要
在下列政策中,取代
<account-id>
具有有效 AWS 帳戶 數字。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" }, { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": [ "arn:aws:iam::
<account-id>
:role/LakeFormationWorkflowRole" ] } ] }以下是此政策中許可的簡短描述:
-
lakeformation:GetDataAccess
可讓工作流程建立的任務寫入目標位置。 -
lakeformation:GrantPermissions
可讓工作流程授予目標資料表的SELECT
許可。 -
iam:PassRole
可讓 服務擔任角色LakeFormationWorkflowRole
,以建立爬蟲程式和任務 (工作流程執行個體),並將角色連接至建立的爬蟲程式和任務。
-
-
確認角色
LakeFormationWorkflowRole
已連接兩個政策。 -
如果您要擷取資料湖位置以外的資料,請新增內嵌政策,以授予讀取來源資料的許可。