本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon 啟用 Lake Formation EMR
使用 Amazon EMR 6.15.0 及更高版本時,當您在存取 AWS Glue 資料型錄中資料的EC2叢集EMR上執行 Spark 任務時,您可 AWS Lake Formation 以使用在 Hudi、冰山或達美湖的表格上套用表、列、欄和儲存格層級許可。
在本節中,我們將介紹如何創建安全配置以及如何設置 Lake Formation 以與 Amazon 合作EMR。我們還將介紹如何使用您為 Lake Formation 建立的安全組態啟動叢集。
步驟 1:設定EMR叢集的執行階段角色
若要為EMR叢集使用執行階段角色,您必須建立安全性組態。透過安全組態,您可以在叢集中套用一致的安全、授權和身分驗證選項。
-
建立稱為
lf-runtime-roles-sec-cfg.json
的檔案,其中具有下列安全組態。{ "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
-
接下來,若要確保工作階段標籤可以授權 Lake Formation,請將
LakeFormationConfiguration/AuthorizedSessionTagValue
屬性設定為Amazon EMR
。 -
使用下列命令建立 Amazon EMR 安全組態。
aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json
或者,您可以使用 Amazon EMR 主控台
建立具有自訂設定的安全組態。
步驟 2:啟動 Amazon EMR 群集
現在,您可以使用您在上一個步驟中建立的安全性設定來啟動EMR叢集。如需有關安全組態的詳細資訊,請參閱 使用安全組態設定叢集安全性 和 Amazon EMR 步驟的執行階段角色。
步驟 3a:使用 Amazon 執行階段角色設定以 Lake Formation 為基礎的表格層級許可 EMR
如果您不需要在資料欄、資料列或儲存格層級進行精細存取控制,則可以使用 Glue Data Catalog 來設定資料表層級許可。若要啟用表格層級存取,請導覽至 AWS Lake Formation 主控台,然後從側邊欄的「管理」區段中選取「應用程式整合設定」選項。接著,請啟用以下選項並選擇儲存:
允許外部引擎使用完整資料表存取權限來存取 Amazon S3 位置中的資料
步驟 3b:使用 Amazon 執行階段角色設定 LLake Formation 欄、列或儲存格層級許可 EMR
若要使用 Lake Formation 套用資料表和資料欄層級許可,Lake Formation 的資料湖管理員必須將 Amazon EMR
設定為工作階段標籤組態的值 AuthorizedSessionTagValue
。Lake Formation 使用此工作階段標籤來授權呼叫者並提供對資料湖的存取權。您可以在 Lake Formation 主控台的外部資料篩選區段中設定此工作階段標籤。Replace (取代) 123456789012
使用您自己的 AWS 帳戶
身份證。
步驟 4:為 Amazon EMR 執行階段角色設定 AWS Glue 和 Lake Formation 補助
若要使用 Amazon 執行階段角色繼續設定以湖泊形成為基礎的存取控制,您必須為 Amazon EMR 執行階EMR段角色設定 AWS Glue 和 Lake Formation 授權。若要允許您的IAM執行階段角色與 Lake Formation 互動,請將存取權授予lakeformation:GetDataAccess
與glue:Get*
。
Lake Formation 許可控制對 AWS Glue 資料型錄資源、Amazon S3 位置以及這些位置基礎資料的存取。IAM權限控制對 Lake Formation 和 AWS Glue APIs 和資源的訪問。雖然您可能擁有 Lake Formation 權限來存取資料目錄 (SELECT) 中的資料表,但是如果您沒有 glue:Get*
API. IAM 如需有關 Lake Formation 存取控制的更多詳細資訊,請參閱 Lake Formation 存取控制概觀。
-
使用下列內容建立
emr-runtime-roles-lake-formation-policy.json
檔案。{ "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
-
建立相關IAM策略。
aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
-
若要將此原則指派給您的IAM執行階段角色,請遵循管理 AWS Lake Formation 權限中的步驟。
您現在可以使用執行期角色和 Lake Formation 來套用資料表和資料欄層級許可。您也可以使用來源身分識別來控制動作和監視作業 AWS CloudTrail。如需詳細的 end-to-end 範例,請參閱介紹 Amazon EMR 步驟的執行階段角色