本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon Redshift 数据共享权限
本主题介绍接受数据共享邀请、创建联合数据库和授予权限所需执行的步骤。您可以使用 Lake Formation 控制台或 AWS Command Line Interface (AWS CLI)。本主题中的示例显示了同一个账户中的制作者集群、数据目录和数据使用者。
要了解有关 Lake Formation 跨账户功能的更多信息,请参阅Lake Formation 中的跨账户数据共享。
设置数据共享权限
查看数据共享邀请并接受。
- Console
-
-
通过 https://console.aws.amazon.com/lakeformation/ 以数据湖管理员的身份登录 Lake Formation 控制台。导航到数据共享页面。
-
查看您有权访问的数据共享。状态列表示您当前参与数据共享的状态。待处理状态表示您已被添加到数据共享,但尚未接受或已拒绝邀请。
-
要回复数据共享邀请,请选择数据共享名称并选择查看邀请。在接受或拒绝数据共享中,查看邀请详细信息。选择接受接受邀请,或选择拒绝拒绝邀请。如果您拒绝邀请,则无法访问数据共享。
- AWS CLI
-
以下示例显示如何查看、接受和注册邀请。将 AWS 账户 身份证替换为有效的 AWS 账户 身份证。将 data-share-arn
替换为引用数据共享的实际 Amazon 资源名称 (ARN)。
-
查看待处理的邀请。
aws redshift describe-data-shares \
--data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
-
接受数据共享。
aws redshift associate-data-share-consumer \
--data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
--consumer-arn 'arn:aws:glue:us-east-1:111122223333:catalog
-
在 Lake Formation 账户中注册数据共享。使用 RegisterResourceAPI 操作在 Lake Formation 中注册数据共享。 DataShareArn
是的输入参数ResourceArn
。
aws lakeformation register-resource \
--resource-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds'
-
创建数据库。
接受数据共享邀请后,您需要创建一个指向与数据共享关联的 Amazon Redshift 数据库的数据库。您必须是数据湖管理员才能创建数据库。
- Console
-
-
从邀请窗格中选择数据共享,然后选择设置数据库详细信息。
-
在设置数据库详细信息中,输入数据共享的唯一名称和标识符。您可以使用此标识符在元数据层次结构 (dbname.schema.Table) 内部映射数据共享。
-
选择下一步,向其他用户授予对共享数据库和表的权限。
- AWS CLI
-
使用以下示例代码创建指向使用与 Lake Formation 共享的 Amazon Redshift 数据库的数据库。 AWS CLI
aws glue create-database --cli-input-json \
'{
"CatalogId": "111122223333",
"DatabaseInput": {
"Name": "tahoedb",
"FederatedDatabase": {
"Identifier": "arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds",
"ConnectionName": "aws:redshift"
}
}
}'
-
授予权限
创建数据库后,您可以向账户中的用户或外部 AWS 账户 和组织授予权限。您将无法对映射到 Amazon Redshift 数据共享的联合数据库授予写入数据权限(插入、删除)和元数据权限(更改、删除、创建)。有关授予权限的更多信息,请参阅管理 Lake Formation 权限。
作为数据湖管理员,您只能查看联合数据库中的表。要执行任何其他操作,您需要授予自己对这些表的更多权限。
- Console
-
-
在授予权限屏幕上,选择要向其授予权限的用户。
-
选择授权。
- AWS CLI
-
在 AWS CLI中使用以下示例通过以下方式授予数据库和表权限:
aws lakeformation grant-permissions --input-cli-json file://input.json
{
"Principal": {
"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
},
"Resource": {
"Database": {
"CatalogId": "111122223333",
"Name": "tahoedb"
}
},
"Permissions": [
"DESCRIBE"
],
"PermissionsWithGrantOption": [
]
}
aws lakeformation grant-permissions --input-cli-json file://input.json
{
"Principal": {
"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
},
"Resource": {
"Table": {
"CatalogId": "111122223333",
"DatabaseName": "tahoedb",
"Name": "public.customer"
}
},
"Permissions": [
"SELECT"
],
"PermissionsWithGrantOption": [
"SELECT"
]
}