控制跨账户数据共享的访问(预览版) - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

控制跨账户数据共享的访问(预览版)

以下是控制跨账户数据共享访问的注意事项。

管理不同状态下的数据共享

使用跨账户数据共享,需要您执行操作的数据共享具有不同状态。您的数据共享可以具有活动状态、需要操作或非活动状态。

下面介绍了每个数据共享状态及其需要的操作:

  • 创建器集群管理员创建数据共享时,生产者集群上的数据共享状态为待处理授权。创建器集群管理员可以授权数据使用者访问数据共享。使用者集群管理员没有任何操作。

  • 当创建器集群管理员为数据共享授权时,创建器集群上的数据共享状态为已授权。创建器集群管理员没有任何操作。当数据共享的数据使用者至少存在一个关联时,数据共享状态会从已授权变为活动状态

    使用者集群上的数据共享状态随后变为可用(需要在 Amazon Redshift 控制台上执行操作)。使用者集群管理员可以将数据共享与数据使用者相关联,或拒绝数据共享。使用者集群管理员还可以使用 Amazon CLI 命令 describeDatashareforConsumer 查看数据共享的状态。或者,管理员可以使用 CLI 命令 describeDatashare 并提供数据共享 Amazon Resource Name (ARN) 以查看数据共享的状态。

  • 当使用者集群管理员将数据共享与数据使用者相关联时,创建器集群上的数据共享状态将变为活动状态。当数据共享的数据使用者至少存在一个关联时,数据共享状态会从已授权变为活动状态。创建器集群管理员无需执行任何操作。

    使用者集群上的数据共享状态变为活动状态。使用者集群管理员不需要执行任何操作。

  • 当使用者集群管理员从数据共享中删除使用者关联时,数据共享状态将变为活动状态已授权。当数据共享至少与另一个数据使用者存在一个关联时,状态变为活动状态。当任何使用者与创建器集群上的数据共享没有任何关联时,状态变为已授权。创建器集群管理员没有任何操作。

    如果所有关联均被删除,使用者集群上的数据共享状态变为需要操作。当数据共享可供使用者使用时,使用者集群管理员可以将数据共享与数据使用者重新关联。

  • 当使用者集群管理员拒绝数据共享时,创建器集群上的数据共享状态变为需要操作,使用者集群上的数据共享状态变为已拒绝。创建器集群管理员可以重新授权数据共享。使用者集群管理员没有任何操作。

  • 当创建器集群管理员从数据共享中删除授权时,创建器集群上的数据共享的状态将变为需要操作。如果需要,创建器集群管理员可以选择重新授权数据共享。使用者集群管理员不需要执行任何操作。

使用 IAM 策略管理对数据共享 API 操作的访问

要控制对数据共享 API 操作的访问,请使用基于 IAM 操作的策略来控制对数据共享 API 操作的访问。有关如何管理 IAM 策略的信息,请参阅 IAM 用户指南中的管理 IAM 策略

特别是,假设创建器集群管理员需要使用 AuthorizeDataShare 调用来授权 Amazon 账户外的数据共享出口。在这种情况下,您可以设置基于 IAM 操作的策略来授予此权限。使用 DeauthorizeDataShare 调用以撤消出口。

使用基于 IAM 操作的策略时,您还可以在策略中指定 IAM 资源,例如通过 DataShareARN。下面显示了 DataShareARN 的格式和示例。

arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare

您可以通过在 IAM 策略中指定数据更新名称来限制对特定数据共享的 AuthorizeDataShare 访问权限。

{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }

您还可以将 IAM 策略限制为特定创建器集群拥有的所有数据共享。若要执行此操作,请将策略中的 datashare-name 值替换为通配符或星号。您将保留集群的 namespace-guid 值。

arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*

以下是防止实体调用特定创建器集群拥有的数据共享上的 AuthorizeDataShare 的 IAM 策略。

{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }

DataShareARN 会根据数据共享名称和拥有的集群命名空间全局唯一 ID (GUID) 来限制访问。它通过将名称指定为星号来完成此操作。

管理集群加密

要跨 Amazon 账户共享数据,必须对创建器和使用者集群进行加密。

在 Amazon Redshift 中,您可以为集群启用数据库加密,以保护静态数据。为集群启用加密时,会对集群及其快照的数据块和系统元数据进行加密。您可以在启动集群时启用加密,也可以修改未加密的集群以使用 Amazon Key Management Service (Amazon KMS) 加密。有关 Amazon Redshift 数据库加密的更多信息,请参阅 Amazon Redshift 集群管理指南中的 Amazon Redshift 数据库加密