本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更改数据湖的默认安全设置
保持向后兼容性Amazon Glue、Amazon Lake Formation具有以下初始安全设置:
-
这些区域有:
Super已向该组授予权限IAMAllowedPrincipals在所有现有的Amazon Glue数据目录资源。 -
已为新的数据目录资源启用 “仅使用 IAM 访问控制” 设置。
这些设置实际上导致对数据目录资源和 Amazon S3 位置的访问仅由以下人员控制Amazon Identity and Access Management(IAM) 策略。单个Lake Formation 权限无效。
这些区域有:IAMAllowedPrincipals组包括您的 IAM 策略允许访问您的数据目录资源的任何 IAM 用户和角色。这些区域有:Super权限使主体能够对授予权限的数据库或表执行所有受支持的 Lake Formation 操作。
要更改安全设置,以便通过 Lake Formation 权限管理对数据目录资源(数据库和表)的访问,请执行以下操作:
-
更改新资源的默认安全设置。有关说明,请参阅 更改默认权限模型。
-
更改现有数据目录资源的设置。有关说明,请参阅 升级Amazon Glue的数据权限Amazon Lake Formation模型。
使用Lake Formation 更改默认安全设置PutDataLakeSettingsAPI 操作
也可以使用Lake Formation 更改默认安全设置PutDataLakeSettings操作(Python:put_data_lake_settings). 此操作将可选的目录 ID 和DataLake设置结构.
要强制执行 Lake Formation 对新数据库和表的元数据和基础数据访问控制,请将DataLakeSettings结构如下。
Replace<AccountID>使用有效的Amazon账户 ID 和<Username>具有有效的 IAM 用户名。您可以指定多个用户作为数据湖管理员。
{ "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ], "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [] } }
您也可以按如下方式对结构进行编码。忽略CreateDatabaseDefaultPermissions要么CreateTableDefaultPermissions参数等效于传递空列表。
{ "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ] } }
此操作会有效地撤Lake Formation 来自IAMAllowedPrincipals对新数据库和表进行分组。在创建数据库时,您可以覆盖此设置。
要仅通过 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" ] } ] } }
这授予SuperLake Formation 许可IAMAllowedPrincipals对新数据库和表进行分组。在创建数据库时,您可以覆盖此设置。
在以上的DataLakeSettingsstructure,唯一允许的值DataLakePrincipalIdentifier是IAM_ALLOWED_PRINCIPALS,并且是唯一允许的值Permissions是ALL.