本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在第三方查詢引擎可以使用應用程式整合 API 操作之前,您需要明確啟用查詢引擎代表您呼叫 API 操作的許可。這在幾個步驟中完成:
-
您需要指定需要透過 AWS Lake Formation主控台、 AWS CLI 或 API/SDK 呼叫應用程式整合 API 操作許可 AWS 的帳戶和 IAM 工作階段標籤。
-
當第三方查詢引擎在您的帳戶中擔任執行角色時,查詢引擎必須連接向代表第三方引擎的 Lake Formation 註冊的工作階段標籤。 Lake Formation使用此標籤來驗證請求是否來自核准的引擎。如需工作階段標籤的詳細資訊,請參閱《IAM 使用者指南》中的工作階段標籤。
-
設定第三方查詢引擎執行角色時,您必須在 IAM 政策中擁有下列最低許可集:
{ "Version": "2012-10-17", "Statement": {"Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" } }
-
在查詢引擎執行角色上設定角色信任政策,以對可連接到此角色的工作階段標籤金鑰值對進行精細存取控制。在下列範例中,此角色只允許
"engine1"
連接工作階段標籤金鑰"LakeFormationAuthorizedCaller"
和工作階段標籤值,不允許其他工作階段標籤金鑰值對。{ "Sid": "AllowPassSessionTags", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/query-execution-role" }, "Action": "sts:TagSession", "Condition": { "StringLike": { "aws:RequestTag/
LakeFormationAuthorizedCaller
":"engine1"
} } }
當 LakeFormationAuthorizedCaller
呼叫 STS:AssumeRole API 操作來擷取要使用的查詢引擎登入資料時,工作階段標籤必須包含在 AssumeRole 請求中。傳回的臨時登入資料可用來提出Lake Formation應用程式整合 API 請求。
Lake Formation 應用程式整合 API 操作需要呼叫主體做為 IAM 角色。IAM 角色必須包含具有已向 註冊之預先定義值的工作階段標籤Lake Formation。此標籤允許 Lake Formation 驗證用於呼叫應用程式整合 API 操作的角色是否允許這樣做。