设置 Amazon Redshift 数据共享权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置 Amazon Redshift 数据共享权限

本主题介绍接受数据共享邀请、创建联合数据库和授予权限所需执行的步骤。您可以使用 Lake Formation 控制台或 Amazon Command Line Interface (Amazon CLI)。本主题中的示例显示了同一个账户中的制作者集群、数据目录和数据使用者。

要了解有关 Lake Formation 跨账户功能的更多信息,请参阅Lake Formation 中的跨账户数据共享

设置数据共享权限
  1. 查看数据共享邀请并接受。

    Console
    1. 通过 https://console.aws.amazon.com/lakeformation/ 以数据湖管理员的身份登录 Lake Formation 控制台。导航到数据共享页面。

    2. 查看您有权访问的数据共享。状态列表示您当前参与数据共享的状态。待处理状态表示您已被添加到数据共享,但尚未接受或已拒绝邀请。

    3. 要回复数据共享邀请,请选择数据共享名称并选择查看邀请。接受或拒绝数据共享中,查看邀请详细信息。选择接受接受邀请,或选择拒绝拒绝邀请。如果您拒绝邀请,则无法访问数据共享。

    Amazon CLI

    以下示例显示如何查看、接受和注册邀请。将 Amazon Web Services 账户 身份证替换为有效的 Amazon Web Services 账户 身份证。将 data-share-arn 替换为引用数据共享的实际 Amazon 资源名称 (ARN)。

    1. 查看待处理的邀请。

      aws redshift describe-data-shares \ --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
    2. 接受数据共享。

      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
    3. 在 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'
  2. 创建数据库。

    接受数据共享邀请后,您需要创建一个指向与数据共享关联的 Amazon Redshift 数据库的数据库。您必须是数据湖管理员才能创建数据库。

    Console
    1. 邀请窗格中选择数据共享,然后选择设置数据库详细信息

    2. 设置数据库详细信息中,输入数据共享的唯一名称和标识符。您可以使用此标识符在元数据层次结构 (dbname.schema.Table) 内部映射数据共享。

    3. 选择下一步,向其他用户授予对共享数据库和表的权限。

    Amazon CLI

    使用以下示例代码创建指向使用与 Lake Formation 共享的 Amazon Redshift 数据库的数据库。 Amazon 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" } } }'
  3. 授予权限

    创建数据库后,您可以向账户中的用户或外部 Amazon Web Services 账户 和组织授予权限。您将无法对映射到 Amazon Redshift 数据共享的联合数据库授予写入数据权限(插入、删除)和元数据权限(更改、删除、创建)。有关授予权限的更多信息,请参阅管理 Lake Formation 权限

    注意

    作为数据湖管理员,您只能查看联合数据库中的表。要执行任何其他操作,您需要授予自己对这些表的更多权限。

    Console
    1. 授予权限屏幕上,选择要向其授予权限的用户。

    2. 选择授权

    Amazon CLI

    在 Amazon 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" ] }