本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 AWS Glue 资源转换为混合资源
按照以下步骤在混合访问模式下注册 Amazon S3 位置,并在不中断现有数据目录用户数据访问的情况下引导新的 Lake Formation 用户。
场景描述 - 数据位置未在 Lake Formation 中注册,用户对数据目录数据库和表的访问权限由适用于 Amazon S3 和 AWS Glue 操作的 IAM 权限策略决定。
默认情况下,IAMAllowedPrincipals
组拥有对数据库中所有表的 Super
权限。
为未在 Lake Formation 中注册的数据位置启用混合访问模式
注册 Amazon S3 位置,以启用混合访问模式。
- Console
-
-
以数据湖管理员身份登录 Lake Formation 控制台。
在导航窗格中,选择管理下的数据湖位置。
选择注册位置。
-
在注册位置窗口中,选择要在 Lake Formation 中注册的 Amazon S3 路径。
-
对于 IAM 角色,选择 AWSServiceRoleForLakeFormationDataAccess
服务相关角色(默认)或符合用于注册位置的角色的要求中要求的自定义 IAM 角色。
-
选择混合访问模式以应用精细的 Lake Formation 访问控制策略来选择主体以及指向注册位置的数据目录数据库和表。
选择 Lake Formation 以允许 Lake Formation 授权对注册位置的访问请求。
选择注册位置。
- AWS CLI
-
以下是使用:true/false 向 Lake Formation 注册数据位置的 HybridAccessEnabled示例。HybridAccessEnabled
参数的默认值为 false。将 Amazon S3 路径、角色名称和 AWS 账户 ID 替换为有效值。
aws lakeformation register-resource --cli-input-json file:file path
json:
{
"ResourceArn": "arn:aws:s3:::s3-path
",
"UseServiceLinkedRole": false,
"RoleArn": "arn:aws:iam::<123456789012>
:role/<role-name>
",
"HybridAccessEnabled": true
}
-
授予权限并选择主体以在混合访问模式下对资源使用 Lake Formation 权限
在混合访问模式下选择主体和资源之前,请确认在混合访问模式下向 IAMAllowedPrincipals
组授予了对在 Lake Formation 中注册的位置处的数据库和表的 Super
或 All
权限。
您不能向 IAMAllowedPrincipals
组授予对数据库中 All
tables
的权限。您需要从下拉菜单中分别选择每个表,并授予权限。此外,在数据库中创建新表时,可以在数据目录设置中选择使用 Use only IAM access control for new tables
in new databases
。当您在数据库中创建新表时,此选项会自动向 IAMAllowedPrincipals
组授予 Super
权限。
- Console
-
-
在 Lake Formation 控制台的数据目录下,选择数据库或表。
从列表中选择数据库或表,然后从操作菜单中选择授权。
选择要使用命名资源方法或 LF 标签授予其对数据库、表和列的权限的主体。
或者,选择数据湖权限,从列表中选择要向其授予权限的主体,然后选择授权。
有关授予数据权限的更多详细信息,请参阅授予对数据目录资源的权限。
如果您要向主体授予创建表的权限,则还需要向主体授予数据位置权限 (DATA_LOCATION_ACCESS
)。更新表不需要此权限。
有关更多信息,请参阅 授予数据位置权限。
-
当您使用命名资源方法授予权限时,授予数据权限页面的下半部分提供了用于选择主体和资源的选项。
选择让 Lake Formation 权限立即生效,为主体和资源启用 Lake Formation 权限。
选择授权。
当您在指向数据位置的表 A 上选择主体 A 时,如果数据位置是在混合模式下注册的,则为主体 A 提供对该表的位置的 Lake Formation 权限。
- AWS CLI
-
以下是在混合访问模式下选择主体和表的示例。将角色名、 AWS 账户 ID、数据库名称和表名替换为有效值。
aws lakeformation create-lake-formation-opt-in --cli-input-json file://file path
json:
{
"Principal": {
"DataLakePrincipalIdentifier": "arn:aws:iam::<123456789012>
:role/<hybrid-access-role>
"
},
"Resource": {
"Table": {
"CatalogId": "<123456789012>
",
"DatabaseName": "<hybrid_test>
",
"Name": "<hybrid_test_table>
"
}
}
}
-
如果您选择 LF 标签来授予权限,则可以在单独的步骤中选择主体来使用 Lake Formation 权限。您可以通过在左侧导航栏的权限下选择混合访问模式来执行此操作。
-
在混合访问模式页面的下半部分,选择添加将资源和主体添加到混合访问模式下。
-
在添加资源和主体页面上,选择在混合访问模式下注册的数据库和表。选择要选择在混合访问模式下使用 Lake Formation 权限的主体。
您可以选择数据库下的 All tables
以授予主体访问权限。