

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# が IAM と AWS Database Migration Service 連携する方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して へのアクセスを管理する前に AWS DMS、使用できる IAM 機能を理解しておく必要があります AWS DMS。 AWS DMS およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、「IAM *ユーザーガイド*」の「IAM [AWS と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

**Topics**
+ [AWS DMS ID ベースのポリシー](#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 ID ベースのポリシー
<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>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

のポリシーアクションは、アクションの前にプレフィックス AWS DMS を使用します`dms:`。たとえば、 API オペレーションを使用して AWS DMS `CreateReplicationTask`レプリケーションタスクを作成するアクセス許可を付与するには、ポリシーに `dms:CreateReplicationTask`アクションを含めます。ポリシーステートメントには、 `Action`または `NotAction` element を含める必要があります。 は、このサービスで実行できるタスクを記述する独自のアクションのセット 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)」を参照してください。

### リソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (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}
```

ARN の形式の詳細については、[「Amazon リソースネーム (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` はレプリケーション タスクを開始し、ソースとターゲットの 2 つのデータベース エンドポイント リソースに接続するため、 ユーザーには、ソース エンドポイントを読み取るアクセス許可とターゲット エンドポイントに書き込むアクセス許可が必要です。複数リソースを単一ステートメントで指定するには、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>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`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>

リソースベースのポリシーは、指定されたプリンシパルが特定の AWS DMS リソースに対して実行できるアクションと条件を指定する JSON ポリシードキュメントです。 は、サポートされているターゲットエンドポイントに移行されたデータを暗号化するために作成する AWS KMS 暗号化キーのリソースベースのアクセス許可ポリシー AWS DMS をサポートします。サポートされているターゲットエンドポイントには Amazon Redshift や Amazon S3 があります。リソースベースのポリシーを使用することで、これらの暗号化キーを使用するためのアクセス許可を、各ターゲットエンドポイントの他のアカウントに付与できます。

クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティを[リソースベースのポリシーのプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)として指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる AWS アカウントにある場合は、プリンシパルエンティティにリソースへのアクセス許可も付与する必要があります。アクセス許可は、アイデンティティベースのポリシーをエンティティにアタッチすることで付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、ID ベースのポリシーをさらに付与する必要はありません。詳細については、『*IAM ユーザーガイド*』の「[IAM ロールとリソースベースのポリシーとの相違点](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)」を参照してください。

この AWS DMS サービスは、 AWS KMS 暗号化キーにアタッチされているキーポリシーと呼ばれるリソースベースの*ポリシー*の 1 つのタイプのみをサポートします。このポリシーでは、サポートされているターゲットエンドポイントで移行されたデータを暗号化できるプリンシパルエンティティ（アカウント、ユーザー、ロール、フェデレーティッドユーザー）を定義します。

サポートされているターゲットエンドポイント用に作成する暗号化キーにリソースベースのポリシーをアタッチする方法については、「[AWS KMS キーを作成して Amazon Redshift ターゲットデータを暗号化する](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys)」および「[Amazon S3 ターゲットオブジェクトを暗号化するための AWS KMS キーの作成](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`または 条件`aws:TagKeys`キーを使用してポリシーの条件[要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)にタグ情報を指定します。 は、条件キーで使用できる一連の標準タグ AWS DMS を定義し、独自のカスタムタグを定義することもできます。詳細については、「[タグを使用したアクセスへのコントロール](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 は、特定のソースエンドポイントまたはターゲットエンドポイントを使用するために作成する必要がある 2 種類のサービスロールをサポートしています。
+ 次のソースエンドポイントとターゲットエンドポイント (またはそのリソース) への 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 にアクセスするための前提条件としてサービスロールを作成する必要があります。
+ DMS AWS コンソール、、 AWS CLI DMS API AWS を使用するために必要なアクセス許可を持つロール – 作成する必要がある 2 つの 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>

データベース移行に DMS AWS コンソール、、 AWS CLI または AWS DMS API を使用する場合は、 AWS DMS の機能を使用する前に、 AWS アカウントに特定の IAM ロールを追加する必要があります。これらのロールのうち 2 つは `dms-vpc-role` と `dms-cloudwatch-logs-role` です。Amazon Redshift をターゲットデータベースとして使用する場合は、`dms-access-for-endpoint` AWS アカウントに IAM ロールも追加する必要があります。詳細については、「[で使用する 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)」を参照してください。