作者 Anish Anturkar Navneet Srivastava Subrat Das Priya Tiruthani日期 2024年6月26日主题 亚马逊 DataZone
亚马逊 DataZone 新推出的自定义 AWS 服务蓝图功能,允许用户将现有的 AWS 身份与访问管理IAM角色与数据项目环境结合,帮助用户在现有资源中进行集成。这项功能使得用户可以更灵活地配置数据源和订阅目标,从而提高了数据治理能力。
上周,我们宣布了自定义 AWS 服务蓝图的正式发布。这是一项全新的功能,旨在帮助您定制亚马逊 DataZone 项目环境,使其可以使用现有的 AWS IAM 角色和 AWS 服务,进而将这些服务嵌入到您现有的流程中。本文将详细介绍这一新功能如何帮助您将现有的 AWS 资源进行联合,并使用自己的 IAM 角色配置数据源和订阅目标。
之前,亚马逊 DataZone 提供默认蓝图,用于创建数据湖、数据仓库和机器学习等用例所需的 AWS 资源。然而,您可能已经有了现有的 AWS 资源,如 亚马逊 Redshift 数据库、亚马逊简单存储服务 (S3) 桶、AWS Glue 数据目录表和 AWS Glue ETL 作业等。使用亚马逊 DataZone 的默认蓝图,您只能使用亚马逊 DataZone 创建的预配置 AWS 资源,因此客户需要一种方法来将这些现有的 AWS 服务资源与亚马逊 DataZone 集成,使用自定义的 IAM 角色,以便让亚马逊 DataZone 用户能够获得对这些 AWS 服务资源的联合访问权限,并利用亚马逊 DataZone 的发布和订阅功能共享和管理这些资源。
现在,借助自定义 AWS 服务蓝图,您可以使用现有资源,并使用预先配置的 IAM 角色。管理员可以自定义亚马逊 DataZone 的设置,使用现有 AWS 资源,使亚马逊 DataZone 门户用户能够拥有对这些 AWS 服务的联合访问权限,以便对数据进行目录管理、共享和订阅,从而在平台上建立数据治理。
与其他蓝图不同,自定义 AWS 服务蓝图不会为您提供任何资源。相反,您可以配置自己的 IAM 角色自定义角色,将现有的 AWS 资源与亚马逊 DataZone 集成。此外,您可以配置操作链接,提供对包括 S3 桶、AWS Glue ETL 作业等任何 AWS 资源的联合访问权限。
您还可以针对特定的 AWS 数据库配置自定义 AWS 服务蓝图,将其作为数据源和订阅目标,以增强对这些资源的治理。凭借这一新功能,管理员现在可以在亚马逊 DataZone 控制台上配置数据源和订阅目标,而不再需要在数据门户中进行这些操作。
自定义蓝图和环境只能由管理员设置,以管理对配置的 AWS 资源的访问权限。由于自定义环境在特定项目中创建,授予访问自定义资源的权限被授予项目所有者,项目所有者可以通过添加或删除成员来管理项目成员资格。这限制了门户用户在没有适当权限的情况下创建自定义环境的能力。
要开始使用,管理员需要在亚马逊 DataZone 控制台上启用自定义 AWS 服务蓝图功能。然后,管理员可以自定义配置,定义在联合访问配置的 AWS 服务时使用的项目和 IAM 角色。在完成自定义设置后,当数据生产者或消费者登录到亚马逊 DataZone 门户并且如果他们是这些定制项目的一部分,他们可以通过自己的 IAM 角色,联合访问任何配置的 AWS 服务,如亚马逊 S3 以上传或下载文件,或无缝访问现有的 AWS Glue ETL 作业,继续使用自己选择的定制工具与数据进行工作。通过这一功能,您可以将亚马逊 DataZone 纳入现有数据管道流程中,以目录管理、共享和治理数据。
接下来,我们将讨论自定义蓝图的常见用例,并逐步讲解如何设置。如果您是亚马逊 DataZone 的新手,请参阅入门指南。
许多客户管理的数据平台由 AWS 管理的服务组成,如 AWS Lake Formation、用于数据湖的 S3、用于 ETL 的 AWS Glue 等。在这些流程已经建立的情况下,您可能希望将自己的角色和资源带入亚马逊 DataZone,以继续现有的流程而不受干扰。在这种情况下,您可能不希望亚马逊 DataZone 创建新的资源,因为这会干扰数据管道中的现有流程,同时也会控制 AWS 资源的使用和成本。
在当前设置中,您可以创建与不同账户关联的亚马逊 DataZone 域。可能会有一个专用账户作为数据生产者来共享数据,还有其他一些消费者账户订阅目录中的发布资产。消费者账户已设置用于订阅项目环境中 AWS Glue ETL 作业的 IAM 权限。通过这样做,角色可以访问访问新订阅的数据,同时还拥有之前设置中来自其他 AWS 资源的数据访问权限。在使用自定义 AWS 服务蓝图配置 AWS Glue 作业 IAM 角色后,该角色的授权用户可以在 AWS Glue ETL 作业中使用订阅资产,并将这些数据扩展到下游活动中,存储在亚马逊 S3 和其他数据库中,以便使用 亚马逊 Athena SQL 编辑器或 亚马逊 QuickSight 进行查询和分析。
亚马逊 DataZone 门户的客户和用户通常需要在搜索和过滤完项目中的目录后下载文件。这个需求的出现是因为与特定用例相关的数据和分析有时涉及数百个文件。逐个下载这些文件将对亚马逊 DataZone 用户来说是一个繁琐且耗时的过程。为了解决这一需求,亚马逊 DataZone 门户可以利用自定义 AWS 服务蓝图提供的功能。这些自定义蓝图使您能够配置与特定亚马逊 DataZone 项目关联的 S3 桶文件夹的操作链接。
您可以在亚马逊 DataZone 门户中构建项目并订阅非结构化和结构化数据资产。对于结构化数据集,可以使用基于蓝图的环境,如数据湖Athena和数据仓库亚马逊 Redshift。对于非结构化数据资产,可以使用基于自定义蓝图的亚马逊 S3 环境,该环境提供了一个熟悉的亚马逊 S3 浏览器界面,允许访问特定的桶和文件夹,并使用由客户拥有并提供的 IAM 角色。此功能简化了查找和访问非结构化数据的过程,并允许您一次下载多个文件,从而更高效地构建和增强您的分析。
除了下载功能,用户通常还需要保留并附加元数据到文件的新版本上。例如,当您下载一个文件后,可以对文件进行数据修改、增强或分析,然后将更新版本再上传回亚马逊 DataZone 门户。在上传文件时,亚马逊 DataZone 用户可以利用相同的基于自定义蓝图的亚马逊 S3 环境操作链接来上传文件。
您可能有使用默认数据湖和数据仓库蓝图创建的现有亚马逊 DataZone 项目环境。由于其他 AWS 服务已在数据平台中设置,您可能希望扩展已配置的项目环境,以包含这些额外的服务,以便在数据生产者或消费者在工具之间切换时提供无缝体验。
现在您了解了此新功能的能力,接下来让我们看看管理员如何在亚马逊 DataZone 控制台上设置自定义角色和资源。
首先,您需要一个亚马逊 DataZone 域。如果您已有一个,可以跳过这一步。如果没有,请参考创建域中的说明进行设置。您还可以选择在多个账户中设置亚马逊 DataZone,进行账户关联。
您可以选择关联账户。有关说明,请参阅请求与其他 AWS 账户关联。在请求账户关联时,请确保使用最新的 AWS 资源访问管理器 (AWS RAM) DataZonePortalReadWrite 策略。如果您的账户已关联,请再次请求访问新策略。
要接受账户关联请求,请参考接受来自亚马逊 DataZone 域的账户关联请求并启用环境蓝图。接受账户关联后,您应该能看到屏幕上的相关内容。
通过这次发布,您可以设置关联账户所有者从他们的账户访问亚马逊 DataZone 数据门户。为此,他们需要在域账户中注册为用户。作为域管理员,您可以创建亚马逊 DataZone 用户档案,以便允许来自关联账户的用户和角色访问亚马逊 DataZone。请按照以下步骤完成操作:
在 用户管理 标签下,您应该看到新用户状态为 已分配。这意味着域所有者已分配关联账户用户访问亚马逊 DataZone。当身份开始从关联账户使用亚马逊 DataZone 时,此状态将更改为 活动。
到目前为止,您最多可以为每个关联账户添加六个身份用户或角色。
您可以根据需求在域账户或关联账户中启用自定义 AWS 服务蓝图。请按照以下步骤完成:
如果正在使用关联账户来创建此环境,请使用在前一步中由域所有者分配的相同的关联账户 IAM 身份。您的身份需要被明确分配到用户档案中,才能创建此环境。请按照以下步骤完成:
虽然您可以在项目中为多个环境使用相同的 IAM 角色,但建议不在不同项目的多个环境中使用相同的 IAM 角色。订阅授予是在项目构造上完成的,因此我们不允许在不同项目之间使用相同的环境角色。
创建 AWS 服务环境后,您可以配置任何针对您环境的AWS 管理控制台链接。亚马逊 DataZone 将假定您设置的自定义角色,以帮助将环境用户联合到配置的操作链接。请按照以下步骤完成:
您现在应看到为您的环境设置的控制台链接。
关联账户中的用户可以直接从其关联账户访问数据门户。请按照以下步骤完成:
在您的环境中,在 摘要 部分,选择 我的环境 链接。您应该查看到所有为您的环境配置的资源角色和操作链接。选择任何操作链接以导航到相应的控制台资源。选择自定义资源的任何操作链接为本文示例,选择 Amazon RDS。
您将被引导到相应的服务控制台。
通过这种设置,您现在已配置了自定义 AWS 服务蓝图,使用自己的角色来访问数据。此外,您还为配置的 AWS 资源设置了操作链接,以显示给亚马逊 DataZone 数据门户中的数据生产者和消费者。通过这些链接,您可以通过单击联合访问这些服务,同时在处理数据时带上项目上下文。
此外,管理员现在可以使用自定义 AWS 服务蓝图环境在亚马逊 DataZone 控制台上配置数据源和订阅目标。这需要配置数据库角色 ManagedAccessRole 到数据源和订阅目标,这在亚马逊 DataZone 门户内无法完成。
请按照以下步骤配置您的数据源:
选择 添加。
对于亚马逊 Redshift,请完成以下步骤:
如果您正在创建新的密码,请输入密码名称、用户名和密码。
选择要连接的集群或工作组。
请按照以下步骤添加您的订阅目标: