启用第三方查询引擎调用凭据自动售货机 API 操作的权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

启用第三方查询引擎调用凭据自动售货机 API 操作的权限

按照以下步骤允许第三方查询引擎通过Amazon Lake Formation控制台、Amazon CLI或 API/ 开发工具包。

Console

要注册帐户以进行外部数据筛选:

  1. 登录到Amazon Web Services Management Console,并在处打开 Lake Formation 控制台https://console.aws.amazon.com/lakeformation/.

  2. 在左侧导航窗格中,展开Permissions (权限),然后选择外部数据筛选.

  3. 在存储库的外部数据筛选页面中,选择选项允许外部引擎筛选注册的 Amazon S3 位置中的数据Lake Formation.

  4. 输入您为第三方引擎创建的会话标签。有关会话标签的信息,请参阅在 中传递会话标签AmazonSTS中的Amazon Identity and Access Management用户指南.

  5. 输入可以使用第三方引擎访问未过滤的元数据信息和当前账户中资源的数据访问凭据的用户的帐户 ID。

    您也可以使用Amazon用于配置跨账户访问的账户 ID 字段。

    
                    屏幕截图显示外部数据过滤控制台页为了Lake Formation. 该选项允许外部引擎筛选注册的 Amazon S3 位置中的数据Lake Formation已选择。适用于会话标签值,文本框为空,但字段下方显示了六个标签,其中值为 “engine 1、“引擎 2”、“引擎 3”、“会话 1”、“会话 2” 和 “会话 3”。最后一个字段显示Amazon Web Services 账户ID 字段。文本字段为空,但在此字段下方显示了三个带有帐户 ID 的标签。账户 ID 值将被编辑。
CLI

使用put-data-lake-settings用于设置以下参数的 CLI 命令。

使用此字段时有三个字段要配置Amazon CLI命令:

  • allow-external-data-filtering —(布尔值)表示第三方引擎可以访问当前账户中资源的未过滤的元数据信息和数据访问凭据。

  • external-data-filtering-allow-list— (array) 帐户 ID 列表,在使用第三方引擎时,可以访问未过滤的元数据信息和当前账户中资源的数据访问凭据。

  • authorized-sessions-tag-value-list— (array) 授权的会话标签值(字符串)的列表。如果 IAM 角色凭证与授权的键值对一起附加,则如果会话标签包含在列表中,则授予会话访问未过滤的元数据信息和已配置账户中资源的数据访问凭证的权限。授权的会话标签密钥定义为*LakeFormationAuthorizedCaller*.

例如:

aws lakeformation put-data-lake-settings --cli-input-json file://datalakesettings.json { "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::111111111111:user/lakeAdmin" } ], "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [], "TrustedResourceOwners": [], "AllowExternalDataFiltering": true, "ExternalDataFilteringAllowList": [ {"DataLakePrincipalIdentifier": "111111111111"} ], "AuthorizedSessionTagValueList": ["engine1"] } }
API/SDK

使用PutDataLakeSettingAPI 操作以设置以下参数。

使用此 API 操作时,有三个字段需要配置:

  • AllowExternalDataFiltering—(布尔值)指示第三方引擎是否可以访问当前账户中资源的未过滤的元数据信息和数据访问凭据。

  • ExternalDataFilteringAllowList— (array) 帐户 ID 列表,可以使用第三方引擎访问未过滤的元数据信息和当前账户中资源的数据访问凭据。

  • AuthorizedSectionsTagValueList— (array) 授权标签值(字符串)的列表。如果 IAM 角色凭证附加了授权的标签,则会话将被授予对未过滤的元数据信息和已配置账户中资源的数据访问凭证的访问权限。授权的会话标签密钥定义为*LakeFormationAuthorizedCaller*.

例如:

//Enable session tag on existing data lake settings public void sessionTagSetUpForExternalFiltering(AWSLakeFormationClient lakeformation) { GetDataLakeSettingsResult getDataLakeSettingsResult = lfClient.getDataLakeSettings(new GetDataLakeSettingsRequest()); DataLakeSettings dataLakeSettings = getDataLakeSettingsResult.getDataLakeSettings(); //set account level flag to allow external filtering dataLakeSettings.setAllowExternalDataFiltering(true); //set account that are allowed to call credential vending or Glue GetFilteredMetadata API List<DataLakePrincipal> allowlist = new ArrayList<>(); allowlist.add(new DataLakePrincipal().withDataLakePrincipalIdentifier("111111111111")); dataLakeSettings.setWhitelistedForExternalDataFiltering(allowlist); //set registered session tag values List<String> registeredTagValues = new ArrayList<>(); registeredTagValues.add("engine1"); dataLakeSettings.setAuthorizedSessionTagValueList(registeredTagValues); lakeformation.putDataLakeSettings(new PutDataLakeSettingsRequest().withDataLakeSettings(dataLakeSettings)); }