

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用現有的 IAM 角色來完成 Amazon DataZone 訂閱
<a name="use-your-own-role"></a>

在目前版本中，Amazon DataZone 支援您使用現有的 IAM 角色來存取資料。若要達成此目的，您可以在用來履行訂閱的 Amazon DataZone 環境中建立訂閱目標。若要為其中一個關聯 AWS 帳戶中的環境建立訂閱目標，您可以使用下列步驟：

**步驟 1：確保您的 Amazon DataZone 網域使用 RAM 政策的第 2 版或更高版本**

1. 導覽至 AWS RAM 主控台中的**由我共用：資源共用**頁面。

1. 由於 AWS RAM 資源共用存在於特定 AWS 區域中，請從主控台右上角的下拉式清單中選擇適當的 AWS 區域。

1. 選取與您的 Amazon DataZone 網域對應的資源共用，然後選擇**修改**。您可以使用網域的名稱或 ID 來識別 Amazon DataZone 網域的 RAM 共用，因為 RAM 共用是使用名稱：`DataZone-<domain-name>-<domain-id>`。

1. 選擇**下一步**以繼續下一個步驟，您可以在其中檢查 RAM 政策的版本並進行修改。

1. 請確定 RAM 政策的版本是第 2 版或更高版本。如果沒有，請使用下拉式清單選取第 2 版或更新版本。

1. 選擇**跳到步驟 4：檢閱和更新**。

1. 選擇**更新資源共用**。

**步驟 2：從關聯的帳戶建立訂閱目標**
+ 在目前版本中，Amazon DataZone 僅支援使用 APIs建立訂閱目標。以下是一些承載範例，您可以用來建立訂閱目標，以履行 Glue AWS 資料表和 Amazon Redshift 資料表或檢視的訂閱。如需詳細資訊，請參閱 [CreateSubscriptionTarget](https://docs.aws.amazon.com/datazone/latest/APIReference/API_CreateSubscriptionTarget.html)。

  Glue AWS 的訂閱目標範例

  ```
  {
          "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 許可。
此外，請確定做為授權主體提供的角色 (Glue AWS 的 IAM 角色和 Amazon Redshift 的資料庫角色） 已存在於環境帳戶中。對於 Amazon Redshift 訂閱目標，在連線到叢集時擔任的角色需要額外更新。此角色必須將 RedshiftDbRoles 標籤連接至角色。標籤的值可以是逗號分隔清單。值應該是建立訂閱目標時以授權委託人身分提供的資料庫角色。

**步驟 3：訂閱新資料表並完成新目標的訂閱**
+ 建立訂閱目標後，您可以訂閱新資料表，Amazon DataZone 會將其履行到上述目標。