

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

# AWS Database Migration Service 如何使用 IAM
<a name="security_iam_service-with-iam"></a>

在您使用 IAM 管理對 的存取之前 AWS DMS，您應該了解哪些 IAM 功能可與 搭配使用 AWS DMS。若要全面了解 AWS DMS 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《[AWS IAM 使用者指南》中的與 IAM 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。 **

**Topics**
+ [AWS DMS 身分型政策](#security_iam_service-with-iam-id-based-policies)
+ [AWS DMS 資源型政策](#security_iam_service-with-iam-resource-based-policies)
+ [以 AWS DMS 標籤為基礎的授權](#security_iam_service-with-iam-tags)
+ [的 IAM 角色 AWS DMS](#security_iam_service-with-iam-roles)
+ [適用於 DMS Fleet Advisor 的身分識別和存取管理](#fa-security-iam)

## AWS DMS 身分型政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，還有在何種條件下允許或拒絕動作。 AWS DMS 支援特定的動作、資源及條件索引鍵。若要了解您在 JSON 政策中使用的所有元素，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 動作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

中的政策動作在動作之前 AWS DMS 使用下列字首：`dms:`。例如，若要授予某人使用 API 操作建立複寫任務的 AWS DMS `CreateReplicationTask`許可，請在其政策中包含 `dms:CreateReplicationTask`動作。政策陳述式必須包含 `Action`或 `NotAction`元素。 AWS DMS 會定義自己的一組動作，描述您可以使用此服務執行的任務。

若要在單一陳述式中指定多個  動作，請用逗號分隔，如下所示。

```
"Action": [
      "dms:action1",
      "dms:action2"
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，如需指定開頭是 `Describe` 文字的所有動作，請包含以下動作：

```
"Action": "dms:Describe*"
```



若要查看 AWS DMS 動作清單，請參閱《*IAM 使用者指南*》中的 [定義的動作 AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions)。

### Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

```
"Resource": "*"
```



AWS DMS 適用於下列資源：
+ 憑證
+ 端點
+ 事件訂閱
+ 複寫執行個體
+ 複寫子網路 (安全性) 群組
+ 複寫任務

 AWS DMS 需要的資源取決於您叫用的動作。您需要一個政策，該政策允許對 ARN 所指定的一或多個相關聯資源執行這些動作。

例如， AWS DMS 端點資源具有下列 ARN：

```
arn:${Partition}:dms:${Region}:${Account}:endpoint/${InstanceId}
```

如需 ARNs 格式的詳細資訊，請參閱 [Amazon Resource Name (ARNs AWS 和服務命名空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

例如，若要在陳述式中指定 `us-east-2` 區域的 `1A2B3C4D5E6F7G8H9I0J1K2L3M` 端點執行個體，請使用下列 ARN。

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/1A2B3C4D5E6F7G8H9I0J1K2L3M"
```

若要指定屬於特定帳戶的所有端點，請使用萬用字元 (\$1)。

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/*"
```

有些 AWS DMS 動作無法對特定資源執行，例如用於建立資源的動作。在這些情況下，您必須使用萬用字元 (\$1)。

```
"Resource": "*"
```

有些 AWS DMS API 動作涉及多個資源。例如，`StartReplicationTask` 會啟動複寫任務並連線至兩個資料庫端點資源 (來源和目標)，因此 IAM 使用者必須具有讀取來源端點並寫入目標端點的許可。若要在單一陳述式中指定多項資源，請使用逗號分隔 ARN。

```
"Resource": [
      "resource1",
      "resource2" ]
```

如需使用 政策控制 AWS DMS 資源存取的詳細資訊，請參閱 [使用資源名稱以控制存取](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.ResourceName)。若要查看 AWS DMS 資源類型及其 ARN 的清單，請參閱《IAM 使用者指南》**中的 [AWS Database Migration Service定義的資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies)。若要了解您可以使用哪些動作指定每個資源的 ARN，請參閱 [AWS Database Migration Service定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions)。

### 條件索引鍵
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Condition` 元素會根據定義的條件，指定陳述式的執行時機。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

AWS DMS 會定義自己的一組條件金鑰，也支援使用一些全域條件金鑰。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。



AWS DMS 定義一組標準標籤，您可以在其條件索引鍵中使用，並允許您定義自己的自訂標籤。如需詳細資訊，請參閱[使用標籤控制存取](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags)。

若要查看 AWS DMS 條件金鑰清單，請參閱《*IAM 使用者指南*》中的 [的條件金鑰 AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-policy-keys)。若要了解您可以針對何種動作及資源使用條件索引鍵，請參閱 [AWS Database Migration Service定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions)和 [AWS Database Migration Service定義的資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies)。

### 範例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



若要檢視 AWS DMS 身分型政策的範例，請參閱 [AWS Database Migration Service 身分型政策範例](security_iam_id-based-policy-examples.md)。

## AWS DMS 資源型政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

以資源為基礎的政策是 JSON 政策文件，指定指定委託人可以在指定 AWS DMS 資源上執行的動作，以及在何種條件下執行。 AWS DMS 支援您建立的 AWS KMS 加密金鑰以加密遷移至支援目標端點的資料的資源型許可政策。支援的目標端點包含 Amazon Redshift 和 Amazon S3。藉由使用資源型政策，您可以將使用這些加密金鑰的權限授予每個目標端點的其他帳戶。

若要啟用跨帳戶存取，您可以指定在其他帳戶內的所有帳戶或 IAM 實體，作為[資源型政策的委託人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。新增跨帳戶主體至資源型政策，只是建立信任關係的一半。當委託人和資源位於不同的 AWS 帳戶中時，您還必須授予委託人實體存取資源的許可。透過將身分型政策連接到實體來授予許可。不過，如果資源型政策會為相同帳戶中的委託人授予存取，這時就不需要額外的身分型政策。如需詳細資訊，請參閱*《IAM 使用者指南》*中的 [IAM 角色與資源型政策有何差異](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)。

 AWS DMS 此服務僅支援一種名為*金鑰政策的資源型政策類型*，該政策會連接到 AWS KMS 加密金鑰。此政策會定義哪些委託人實體 (帳戶、使用者、角色和聯合身分使用者) 可在支援的目標端點上加密移轉的資料。

若要了解如何將資源型政策附加至您為支援目標端點建立的加密金鑰，請參閱 [建立和使用 AWS KMS 金鑰來加密 Amazon Redshift 目標資料](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) 和 [建立 AWS KMS 金鑰來加密 Amazon S3 目標物件](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys)。

### 範例
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>



如需以 AWS DMS 資源為基礎的政策範例，請參閱 [的資源型政策範例 AWS KMS](security_iam_resource-based-policy-examples.md)。

## 以 AWS DMS 標籤為基礎的授權
<a name="security_iam_service-with-iam-tags"></a>

您可以將標籤連接至 AWS DMS 資源，或將請求中的標籤傳遞至 AWS DMS。若要根據標籤控制存取，您可以使用 `dms:ResourceTag/key-name`、 `aws:RequestTag/key-name`或 [條件索引鍵，在政策的條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供標籤資訊。 AWS DMS 定義一組標準標籤，您可以在其條件索引鍵中使用，也可讓您定義自己的自訂標籤。 `aws:TagKeys`如需詳細資訊，請參閱[使用標籤控制存取](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags)。

如需可依據標籤限制資源存取的範例身分型政策，請參閱 [根據標籤存取 AWS DMS 資源](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-resources-tags)。

## 的 IAM 角色 AWS DMS
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。

### 搭配 使用臨時登入資料 AWS DMS
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以搭配聯合使用暫時登入資料登入、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

AWS DMS 支援使用臨時登入資料。

### 服務連結角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)可讓 AWS 服務存取其他服務中的資源，以代表您完成 動作。服務連結角色會顯示在您的 IAM 帳戶中，並由該服務所擁有。IAM 管理員可以檢視，但不能編輯服務連結角色的許可。

如需建立或管理 AWS DMS 服務連結角色的詳細資訊，請參閱 [使用服務連結角色](using-service-linked-roles.md)。

### 服務角色
<a name="security_iam_service-with-iam-roles-service"></a>

此功能可讓服務代表您擔任[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。此角色可讓服務存取其他服務中的資源，以代表您完成動作。服務角色會出現在您的 IAM 帳戶中，且由該帳戶所擁有。這表示 IAM 管理員可以變更此角色的許可。不過，這樣可能會破壞此服務的功能。

AWS DMS 支援兩種類型的服務角色，您必須建立這些角色才能使用特定來源或目標端點：
+ 具有許可以允許 AWS DMS 存取下列來源和目標端點 （或其資源） 的角色：
  + Amazon DynamoDB 作為目標 – 如需詳細資訊，請參閱：[使用 DynamoDB 做為 目標的先決條件 AWS Database Migration Service](CHAP_Target.DynamoDB.md#CHAP_Target.DynamoDB.Prerequisites)。
  + OpenSearch 做為目標 – 如需詳細資訊，請參閱 [使用 Amazon OpenSearch Service 做為 目標的先決條件 AWS Database Migration Service](CHAP_Target.Elasticsearch.md#CHAP_Target.Elasticsearch.Prerequisites)。
  + Amazon Kinesis 作為目標 – 如需詳細資訊，請參閱：[使用 Kinesis 資料串流做為 目標的先決條件 AWS Database Migration Service](CHAP_Target.Kinesis.md#CHAP_Target.Kinesis.Prerequisites)。
  + Amazon Redshift 作為目標 – 您只需要建立指定的角色，以便建立自訂 KMS 加密金鑰來加密目標資料，或指定自訂 S3 儲存貯體來保存中繼任務儲存體。如需詳細資訊，請參閱 [建立和使用 AWS KMS 金鑰來加密 Amazon Redshift 目標資料](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) 或 [Amazon S3 儲存貯體設定](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets) 。
  + Amazon S3 作為來源或作為目標 – 如需詳細資訊，請參閱 [使用 Amazon S3 做為 來源時的先決條件 AWS DMS](CHAP_Source.S3.md#CHAP_Source.S3.Prerequisites) 或 [使用 Amazon S3 作為目標的事前準備](CHAP_Target.S3.md#CHAP_Target.S3.Prerequisites)。

  例如，若要從 S3 來源端點讀取資料，或是將資料推送至 S3 目標端點，您必須建立服務角色，以作為其中每個端點作業存取 S3 的先決條件。
+ 具有使用 AWS DMS 主控台、 AWS CLI 和 AWS DMS API 所需許可的角色 – 您需要建立的兩個 IAM 角色為 `dms-vpc-role`和 `dms-cloudwatch-logs-role`。如果您使用 Amazon Redshift 做為目標資料庫，也必須建立 IAM 角色並將其新增至`dms-access-for-endpoint` AWS 您的帳戶。如需詳細資訊，請參閱[建立要與 搭配使用的 IAM 角色 AWS DMS](security-iam.md#CHAP_Security.APIRole)。

### 在 中選擇 IAM 角色 AWS DMS
<a name="security_iam_service-with-iam-roles-choose"></a>

如果您使用 AWS DMS 主控台、 AWS CLI 或 AWS DMS API 進行資料庫遷移，您必須先將特定 IAM 角色新增至 AWS 您的帳戶，才能使用 AWS DMS 的功能。其中兩個角色是 `dms-vpc-role` 和 `dms-cloudwatch-logs-role`。如果您使用 Amazon Redshift 做為目標資料庫，您還必須將 IAM 角色`dms-access-for-endpoint`新增至 AWS 您的帳戶。如需詳細資訊，請參閱[建立要與 搭配使用的 IAM 角色 AWS DMS](security-iam.md#CHAP_Security.APIRole)。

## 適用於 DMS Fleet Advisor 的身分識別和存取管理
<a name="fa-security-iam"></a>

透過 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，還有在何種條件下允許或拒絕動作。DMS Fleet Advisor 支援特定動作、資源和條件金鑰。若要了解您在 JSON 政策中使用的所有元素，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

DMS Fleet Advisor 使用 IAM 角色存取 Amazon Simple Storage Service。[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。如需詳細資訊，請參閱[建立 IAM 資源](fa-resources.md#fa-resources-iam)。