更改数据湖的默认设置 - AWS Lake Formation

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

更改数据湖的默认设置

要保持向后兼容 AWS Glue AWS Lake Formation ,请使用以下初始安全设置:

  • 向组 IAMAllowedPrincipals 授予对所有现有 AWS Glue 数据目录资源的 Super 权限。

  • 为新的数据目录资源启用“仅使用 IAM 访问控制”设置。

这些设置实际上使对数据目录资源和 Amazon S3 位置的访问只能由 AWS Identity and Access Management (IAM) 策略控制。单个 Lake Formation 权限无效。

IAMAllowedPrincipals 组包括 IAM 策略允许访问数据目录资源的任何 IAM 用户和角色。Super 权限使主体能够对被授予该权限的数据库或表执行所有支持的 Lake Formation 操作。

要更改安全设置,以便对数据目录资源(数据库和表)的访问由 Lake Formation 权限管理,请执行以下操作:

  1. 更改新资源的默认安全设置。有关说明,请参阅更改默认权限模式或使用混合访问模式

  2. 更改现有数据目录资源的设置。有关说明,请参阅Upgrading AWS GlueAWS Lake Formation 模型的数据权限

使用 Lake Formation PutDataLakeSettings API 操作更改默认安全设置

您还可以使用 Lake Formation PutDataLakeSettingsAPI 操作更改默认安全设置。此操作将可选目录 ID 和DataLakeSettings结构作为参数。

要通过 Lake Formation 对新数据库和表实施元数据和基础数据访问控制,请按如下方式对 DataLakeSettings 结构进行编码。

注意

<AccountID>替换为有效的 AWS 账户 ID 和<Username>有效的 IAM 用户名。您可以将多个用户指定为数据湖管理员。

{ "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ], "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [] } }

您也可以按如下方式对该结构进行编码。省略 CreateDatabaseDefaultPermissionsCreateTableDefaultPermissions 参数等同于传递空列表。

{ "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ] } }

此操作实际上会撤销 IAMAllowedPrincipals 组对新数据库和表的所有 Lake Formation 权限。创建数据库时,您可以覆盖此设置。

要仅通过 IAM 对新数据库和表实施元数据和基础数据访问控制,请按如下方式对 DataLakeSettings 结构进行编码。

{ "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ], "CreateDatabaseDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ], "CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ] } }

这将向 IAMAllowedPrincipals 组授予对新数据库和表的 Super Lake Formation 权限。创建数据库时,您可以覆盖此设置。

注意

在前面的 DataLakeSettings 结构中,DataLakePrincipalIdentifier 的唯一允许值是 IAM_ALLOWED_PRINCIPALSPermissions 的唯一允许值是 ALL