亚马逊AWS官方博客

面向 Amazon Redshift 的跨账户数据共享

为了在当今快速变化的市场环境中取得成功,企业需要快速分析数据并采取有意义的行动。我们的许多客户都接受了这一概念,因此转型成为数据驱动型组织。

数据驱动型组织将数据视为资产,利用数据提高洞察力并制定更完善的决策。他们使用安全系统来收集、存储和处理数据,并与组织中的人员共享数据,从而充分发挥数据的作用。有些组织甚至将数据和分析作为服务提供给客户、合作伙伴和外部各方,以创造新的收入来源。

所有利益相关者都希望共享和使用与单一事实来源同等准确的数据。他们希望能够并发查询数据的实时视图,同时不会出现性能降低,并在需要时准确访问正确的信息。

Amazon Redshift 是第一款面向云构建的数据仓库组件,其已受到市场的普遍欢迎,成为许多客户数据架构的数据仓库组件。

Amazon Redshift 用户可以与 AWS 账户中的用户共享数据,但为了与其他 AWS 账户共享和协作处理数据,他们需要从一个系统中提取数据并将其加载到另一个系统中。

为了实现此目标,他们需要执行大量的手动工作来构建和维护不同的提取、转换与加载作业。随着数据共享规模的扩大以及越来越多的利益相关者需要数据,复杂性也随之增加。因此,持续执行保障数据安全所需的监控、合规性和安全最佳实践可能变得困难。

这种共享方式也无法提供完整和最新的数据视图,因为手动流程会导致延迟和数据不一致,从而产生过时的数据、低质量的业务结果以及缓慢的客户响应。

这就是我们为 Amazon Redshift 创建跨账户数据共享的原因所在。

Amazon Redshift 引入跨账户数据共享
这项新功能为您提供了一种简单而安全的方式,可以与跨 AWS 账户的任意数量利益相关者共享 Amazon Redshift 数据仓库中全新、完整且一致的数据。它可让您跨组织共享数据并与外部各方协作,同时满足合规性和安全要求。

Amazon Redshift 使用 IAM 集成、系统表和 AWS CloudTrail 提供全面的安全控制和审计功能。这可让客户控制和监控消费者之间的数据共享权限和使用情况,并在必要时立即撤消访问权限。

您可以在多个级别 (包括数据库、架构、表、视图、列和用户定义的函数) 共享数据,以提供针对需要访问 Amazon Redshift 数据的用户和企业量身定制的精细访问控制。

下面详细了解跨账户数据共享的工作原理。

跨两个账户共享数据

跨账户数据共享是两个步骤的过程。第一步是,生产者群集管理员创建数据共享,添加对象,以及授予对消费者账户的访问权限。第二步是,生产者账户管理员授权共享指定消费者的数据。您可以从 Amazon Redshift 控制台执行此操作。

首先,在 Amazon Redshift 控制台中,我创建一个 Amazon Redshift 集群,然后导入一些示例数据。当集群可用时,我导航到集群详细信息页面,从中选择数据共享选项卡,然后选择创建数据共享

 

创建数据共享页面上,我输入数据共享名称,然后选择数据库。在“公开访问”下,我选择启用,因为我希望将数据共享提供给可公开访问的集群。

然后,我从数据库中选择想要包含在数据共享中的对象。对于选择与他人共享的内容,我拥有精细控制权。为简单起见,我将共享所有表。但实际上,您可以选择一个或多个表、视图或用户定义的函数。

我需要做的最后一件事就是向数据共享添加一个 AWS 账户。我添加自己的第二个 AWS 账户 ID,然后选择创建数据共享

为了授权刚创建的数据使用者,我在控制台的数据共享部分中选择授权消费者状态将从等待授权更改为已授权。现在数据共享已设置完毕,我将切换到自己的辅助账户,向您展示如何在消费者 AWS 账户中使用数据共享。值得注意的是,我需要在辅助账户中使用同一个区域,因为跨账户数据共享不能跨区域运作。

与生产者类似,数据使用有着相应的流程。首先,您需要将数据共享与消费者账户中的一个或多个集群关联起来。您还可以将数据共享与整个消费者账户关联,以便消费者账户中的当前和未来集群均可以访问该共享。

我登录自己的辅助账户,然后转到控制台的数据共享部分。 我选择从其他账户选项卡,然后选择从生产者 AWS 账户共享的 news_blog_datashred。接下来,我选择关联以将数据共享与我账户中的集群关联。

在集群的详细信息页面上,我选择从数据共享创建数据库,然后输入新数据库的名称。

在查询编辑器中,我选择自己的数据库并对作为数据共享一部分提供的所有对象运行查询。

当我选择运行时,将从查询中返回数据。务必记住,这是数据的实时视图。生产者数据库中的任何更改都将反映在我的查询中。不需要复制或手动转移数据。

注意事项

以下是关于跨账户数据共享的几点有趣的事实:

安全性 – 授权和关联操作所需的所有权限均通过 AWS Identity and Access Management (IAM) 进行管理,因此您可以创建 IAM 策略来控制每个用户可以执行哪些操作。有关安全考虑事项,请参阅控制跨账户数据集的访问权限

加密 – 生产者和消费者群集必须在同一 AWS 区域中进行加密。

区域 – 跨账户数据共享功能现已在以下区域面向所有 Amazon Redshift RA3 节点类型推出:美国东部 (弗吉尼亚北部)、美国东部 (俄亥俄)、美国西部 (加利福尼亚北部)、美国西部 (俄勒冈)、亚太地区 (孟买)、亚太地区 (首尔)、亚太地区 (新加坡)、亚太地区 (悉尼)、亚太地区 (东京)、加拿大 (中部)、欧洲 (法兰克福)、欧洲 (爱尔兰)、欧洲 (伦敦)、欧洲 (巴黎)、欧洲 (斯德哥尔摩) 以及南美洲 (圣保罗)。

定价 – 跨账户数据共享可以跨位于同一区域的集群之间进行。共享数据没有成本。客户只需为参与共享的 Redshift 集群付费。

立即试用针对 Amazon Redshift 的跨账户数据共享。

这项新功能现已推出,何不现在就创建集群并进行跨账户数据共享? 有关如何开始使用的信息,请参阅跨 AWS 账户共享数据。不要忘记告诉我们您是如何取得进展的。

快乐共享!

– Martin