注册第三方查询引擎 - AWS Lake Formation

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

注册第三方查询引擎

在第三方查询引擎使用应用程序集成 API 操作之前,您需要显式启用相应的权限,以便查询引擎能够代表您调用 API 操作。只需几个步骤即可完成此操作:

  1. 您需要指定需要权限的 AWS 账户和 IAM 会话标签,才能通过以下方式调用应用程序集成 API 操作 AWS Lake Formation 控制台、 AWS CLI 或 API/SDK。

  2. 当第三方查询引擎在您的账户中扮演执行角色时,查询引擎必须附加一个在 Lake Formation 中注册的代表第三方引擎的会话标签。Lake Formation 如果请求来自经批准的引擎,则使用此标签进行验证。有关会话标签的更多信息,请参阅《IAM 用户指南》中的会话标签

  3. 设置第三方查询引擎执行角色时,您必须拥有 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": "*" } }
  4. 针对查询引擎执行角色设置角色信任策略,以便该角色可以对将哪个会话标签键值对附加到该角色进行精细访问控制。在以下示例中,只允许该角色附加会话标签键 "LakeFormationAuthorizedCaller" 和会话标签值 "engine1",不允许附加其他会话标签键值对。

    { "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 操作的角色执行此操作。