使用现有 IAM 角色来履行 Amazon DataZone 订阅 - Amazon DataZone

使用现有 IAM 角色来履行 Amazon DataZone 订阅

在当前版本中,Amazon DataZone 支持您使用现有的 IAM 角色来访问数据。为此,您可以在用于履行订阅的 Amazon DataZone 环境中创建订阅目标。要在某个关联的 AWS 账户中为环境创建订阅目标,可以使用以下步骤:

步骤 1:确保 Amazon DataZone 域使用的是版本 2 或更高版本的 RAM 策略
  1. 在 AWS RAM 控制台中导航到由我共享: 资源共享页面。

  2. 由于 AWS RAM 资源共享存在于特定 AWS 区域,因此,请从控制台右上角的下拉列表中选择相应的 AWS 区域。

  3. 选择与您的 Amazon DataZone 域对应的资源共享,然后选择修改。可以使用 Amazon DataZone 域的名称或 ID 来为该域标识 RAM 共享,因为该 RAM 共享是使用名称 DataZone-<domain-name>-<domain-id> 创建的。

  4. 选择下一步以继续执行下一步骤,以便检查 RAM 策略的版本并进行修改。

  5. 确保 RAM 策略的版本为版本 2 或更高版本。如果不是这样,请使用下拉列表选择版本 2 或更高版本。

  6. 选择跳至步骤 4: 审核和更新

  7. 选择更新资源共享

步骤 2:从关联账户创建订阅目标
  • 在当前版本中,Amazon DataZone 仅支持使用 API 创建订阅目标。以下是一些有效载荷示例,它们可用来创建订阅目标以履行 AWS Glue 表和 Amazon Redshift 表或视图的订阅。有关更多信息,请参阅 CreateSubscriptionTarget

    AWS Glue 的订阅目标示例

    { "domainIdentifier": "<DOMAIN_ID>", "environmentIdentifier": "<ENVIRONMENT_ID>", "name": "<SUBSCRIPTION_TARGET_NAME>", "type": "GlueSubscriptionTargetType", "authorizedPrincipals" : ["IAM_ROLE_ARN"], "subscriptionTargetConfig" : [{"content": "{\"databaseName\": \"<DATABASE_NAME>\"}", "formName": "GlueSubscriptionTargetConfigForm"}], "manageAccessRole": "<GLUE_DATA_ACCESS_ROLE_IN_ASSOCIATED_ACCOUNT_ARN>", "applicableAssetTypes" : ["GlueTableAssetType"], "provider": "Amazon DataZone" }

    Amazon Redshift 的订阅目标示例:

    { "domainIdentifier": "<DOMAIN_ID>", "environmentIdentifier": "<ENVIRONMENT_ID>", "name": "<SUBSCRIPTION_TARGET_NAME>", "type": "RedshiftSubscriptionTargetType", "authorizedPrincipals" : ["REDSHIFT_DATABASE_ROLE_NAME"], "subscriptionTargetConfig" : [{"content": "{\"databaseName\": \"<DATABASE_NAME>\", \"secretManagerArn\": \"<SECRET_MANAGER_ARN>\",\"clusterIdentifier\": \"<CLUSTER_IDENTIFIER>\"}", "formName": "RedshiftSubscriptionTargetConfigForm"}], "manageAccessRole": "<REDSHIFT_DATA_ACCESS_ROLE_IN_ASSOCIATED_ACCOUNT_ARN>", "applicableAssetTypes" : ["RedshiftViewAssetType", "RedshiftTableAssetType"], "provider": "Amazon DataZone" }
    重要
    • 您在上述 API 调用中使用的 environmentIdentifier 应存在于您从中发出 API 调用的同一关联账户中。否则,API 调用将失败。

    • 您在“authorizedPrincipals”中使用的 IAM 角色 ARN 是一个角色,在将订阅的资产添加到订阅目标后,Amazon DataZone 将向该角色授予访问权限。这些授权主体必须与在其中创建订阅目标的环境属于同一账户。

    • 提供者字段的值必须为“Amazon DataZone”,这样 Amazon DataZone 才能完成订阅履行。

    • subscriptionTargetConfig 中提供的数据库名称应已存在于用于创建目标的账户中。Amazon DataZone 将不会创建此数据库。此外,请确保管理访问角色具有此数据库的 CREATE TABLE 权限。

    • 此外,请确保作为授权主体提供的角色(AWS Glue 的 IAM 角色和 Amazon Redshift 的数据库角色)已存在于环境账户中。对于 Amazon Redshift 订阅目标,在连接到集群时需要对所代入的角色进行额外更新。此角色必须附加了 RedshiftDbRoles 标签。此标签的值可以是逗号分隔的列表。该值应是创建订阅目标时作为授权主体提供的数据库角色。

步骤 3:订阅新表并履行新目标的订阅
  • 创建订阅目标后,您可以订阅新表,Amazon DataZone 将履行上述目标的订阅。