

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

# のセキュリティ AWS Database Migration Service
<a name="CHAP_Security"></a>

のクラウドセキュリティが最優先事項 AWS です。お客様は AWS 、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャを活用できます。

セキュリティは、 AWS お客様とお客様の間の責任共有です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)では、これをクラウドのセキュリティおよびクラウド内のセキュリティとして説明しています。
+ **クラウドのセキュリティ** – クラウドで AWS AWS サービスを実行するインフラストラクチャを保護する AWS 責任があります。 AWS また、 では、安全に使用できるサービスも提供しています。[「AWS 」 コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)の一環として、サードパーティーの監査が定期的にセキュリティの有効性をテストおよび検証しています。が適用されるコンプライアンスプログラムの詳細については AWS DMS、[AWS 「コンプライアンスプログラムによる対象範囲内のサービス](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。
+ **クラウドのセキュリティ** – お客様の責任は、使用する AWS サービスによって決まります。また、お客様は、お客様のデータの機密性、組織の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

このドキュメントは、 を使用する際の責任共有モデルの適用方法を理解するのに役立ちます AWS DMS。以下のトピックでは、セキュリティとコンプライアンスの目的を達成する AWS DMS ように を設定する方法を示します。また、 AWS DMS リソースのモニタリングや保護に役立つ他の AWS サービスの使用方法についても説明します。

 AWS DMS リソースとデータベース (DBs) へのアクセスを管理できます。アクセスの管理に使用する方法は、以下を実行する必要があるレプリケーションタスクによって異なります AWS DMS。
+  AWS Identity and Access Management (IAM) ポリシーを使用して、 AWS DMS リソースの管理を誰に許可するかを決定するアクセス許可を割り当てます。IAM ユーザーとしてサインインする場合は、適切なアクセス許可 AWS DMS が必要です。たとえば、IAM を使用して、DB インスタンスのおよびクラスターの作成、記述、変更、削除と、リソースのタグ付け、セキュリティグループの変更をどのユーザーに許可するかを決定できます。IAM とその での使用の詳細については AWS DMS、「」を参照してください[の ID とアクセスの管理 AWS Database Migration Service](security-iam.md)。
+ AWS DMS は、Transport Layer Security (TLS) とのエンドポイント接続に Secure Sockets Layer (SSL) を使用します。での SSL/TLS の使用の詳細については AWS DMS、「」を参照してください[での SSL の使用 AWS Database Migration Service](CHAP_Security.SSL.md)。
+ AWS DMS は AWS Key Management Service (AWS KMS) 暗号化キーを使用して、レプリケーションインスタンスで使用されるストレージとそのエンドポイント接続情報を暗号化します。 AWS DMS また、 は AWS KMS 暗号化キーを使用して、Amazon S3 および Amazon Redshift ターゲットエンドポイントの保管中のターゲットデータを保護します。詳細については、「[暗号化キーの設定と AWS KMS アクセス許可の指定](#CHAP_Security.EncryptionKey)」を参照してください。
+ AWS DMS は、可能な限り最大のネットワークアクセスコントロールを実現するために、常に Amazon VPC サービスに基づいて Virtual Private Cloud (VPC) にレプリケーションインスタンスを作成します。DB インスタンスとインスタンス クラスターには、レプリケーション インスタンスと同じ VPC を使用するか、このレベルのアクセス コントロールに一致させるために追加の VPC を使用します。使用するそれぞれの Amazon VPC は、すべてのポートですべてのトラフィックについて VPC からの送信 (egress) がルールで許可されているセキュリティグループに関連付ける必要があります。このアプローチでは、ソースおよびターゲットデータベースエンドポイントで適切な受信が有効になっている限り、レプリケーション インスタンスからそれらのエンドポイントへの通信が許可されます。

  で使用できるネットワーク設定の詳細については AWS DMS、「」を参照してください[レプリケーション インスタンスのためのネットワークのセットアップ](CHAP_ReplicationInstance.VPC.md)。VPC での DB インスタンスまたはインスタンス クラスターの作成については、[AWS ドキュメント](https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v)で Amazon データベースのセキュリティとクラスター管理のドキュメントをご参照ください。 AWS DMS でサポートされるネットワーク設定の詳細については、「[レプリケーション インスタンスのためのネットワークのセットアップ](CHAP_ReplicationInstance.VPC.md)」をご参照ください。
+ データベース移行ログを表示する場合、使用している IAM ロールの適切な Amazon CloudWatch Logs アクセス許可が必要になります。 AWS DMSのログ作成の詳細については、「[Amazon CloudWatch を使用したレプリケーション モニタリングタスク](CHAP_Monitoring.md#CHAP_Monitoring.CloudWatch)」をご参照ください。

**Topics**
+ [でのデータ保護 AWS Database Migration Service](CHAP_Security.DataProtection.md)
+ [の ID とアクセスの管理 AWS Database Migration Service](security-iam.md)
+ [のコンプライアンス検証 AWS Database Migration Service](dms-compliance.md)
+ [の耐障害性 AWS Database Migration Service](disaster-recovery-resiliency.md)
+ [のインフラストラクチャセキュリティ AWS Database Migration Service](infrastructure-security.md)
+ [リソース名とタグを使用したファイングレインアクセスコントロール](CHAP_Security.FineGrainedAccess.md)
+ [AWS DMS 同種移行の暗号化](#CHAP_Security.Migrations)
+ [暗号化キーの設定と AWS KMS アクセス許可の指定](#CHAP_Security.EncryptionKey)
+ [のネットワークセキュリティ AWS Database Migration Service](#CHAP_Security.Network)
+ [での SSL の使用 AWS Database Migration Service](CHAP_Security.SSL.md)
+ [データベースのパスワードの変更](#CHAP_Security.ChangingDBPassword)
+ [での Kerberos 認証の使用 AWS Database Migration Service](CHAP_Security.Kerberos.md)

# でのデータ保護 AWS Database Migration Service
<a name="CHAP_Security.DataProtection"></a>

## データ暗号化
<a name="CHAP_Security.DataProtection.DataEncryption"></a>

サポートされている AWS DMS ターゲットエンドポイントのデータリソースの暗号化を有効にできます。 は、 AWS DMS AWS DMS とそのすべてのソースエンドポイントとターゲットエンドポイントとの間の接続 AWS DMS も暗号化します。さらに、この暗号化を有効にするために AWS DMS とそのサポートされているターゲットエンドポイントが使用するキーを管理できます。

**Topics**
+ [保管中の暗号化](#CHAP_Security.DataProtection.DataEncryption.EncryptionAtRest)
+ [転送中の暗号化](#CHAP_Security.DataProtection.DataEncryption.EncryptionInTransit)
+ [キー管理](#CHAP_Security.DataProtection.DataEncryption.KeyManagement)

### 保管中の暗号化
<a name="CHAP_Security.DataProtection.DataEncryption.EncryptionAtRest"></a>

AWS DMS は、サポートされている AWS DMS ターゲットエンドポイントにコピーされる前にレプリケートされたデータを Amazon S3 にプッシュするために使用するサーバー側の暗号化モードを指定できるようにすることで、保管時の暗号化をサポートします。この暗号化モードは、エンドポイントの追加の接続属性 `encryptionMode` を設定することで指定できます。`encryptionMode` この設定で KMS キー暗号化モードが指定されている場合は、次のターゲットエンドポイントの AWS DMS ターゲットデータを暗号化するためにカスタム AWS KMS キーを作成することもできます。
+ Amazon Redshift - `encryptionMode` の設定詳細については、「[のターゲットとして Amazon Redshift を使用する場合のエンドポイント設定 AWS DMS](CHAP_Target.Redshift.md#CHAP_Target.Redshift.ConnectionAttrib)」をご参照ください。カスタム AWS KMS 暗号化キーの作成の詳細については、「」を参照してください[AWS KMS キーを作成して Amazon Redshift ターゲットデータを暗号化する](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys)。
+ Amazon S3 - `encryptionMode` の設定詳細については、「[のターゲットとして Amazon S3 を使用する場合のエンドポイント設定 AWS DMS](CHAP_Target.S3.md#CHAP_Target.S3.Configuring)」をご参照ください。カスタム AWS KMS 暗号化キーの作成の詳細については、「」を参照してください[Amazon S3 ターゲットオブジェクトを暗号化するための AWS KMS キーの作成](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys)。

### 転送中の暗号化
<a name="CHAP_Security.DataProtection.DataEncryption.EncryptionInTransit"></a>

AWS DMS は、レプリケートするデータがソースエンドポイントからターゲットエンドポイントに安全に移動するようにすることで、転送中の暗号化をサポートします。この措置には、レプリケーションパイプラインを経由してデータが移動するときに、レプリケーションタスクが中間ストレージ用に使用するレプリケーション インスタンスの S3 バケットの暗号化も含まれます。ソースエンドポイントとターゲットエンドポイントへのタスク接続を暗号化するには、Secure Socket Layer (SSL) または Transport Layer Security (TLS) AWS DMS を使用します。は、両方のエンドポイントへの接続を暗号化することで、ソースエンドポイントからレプリケーションタスク、およびタスクからターゲットエンドポイントの両方に移動する際に、データの安全性 AWS DMS を確保します。での SSL/TLS の使用の詳細については AWS DMS、「」を参照してください。 [での SSL の使用 AWS Database Migration Service](CHAP_Security.SSL.md)

AWS DMS は、中間レプリケーションストレージと接続情報の両方を暗号化するためのデフォルトキーとカスタムキーの両方をサポートします。これらのキーは、 AWS KMSを使用して管理します。詳細については、「[暗号化キーの設定と AWS KMS アクセス許可の指定](CHAP_Security.md#CHAP_Security.EncryptionKey)」を参照してください。

### キー管理
<a name="CHAP_Security.DataProtection.DataEncryption.KeyManagement"></a>

AWS DMS は、特定のターゲットエンドポイントのレプリケーションストレージ、接続情報、ターゲットデータストレージを暗号化するためのデフォルトキーまたはカスタムキーをサポートします。これらのキーは、 を使用して管理します AWS KMS。詳細については、「[暗号化キーの設定と AWS KMS アクセス許可の指定](CHAP_Security.md#CHAP_Security.EncryptionKey)」を参照してください。

## ネットワーク間のトラフィックのプライバシー
<a name="CHAP_Security.DataProtection.InternetworkTraffic"></a>

接続には、オンプレミスで実行されているか、クラウド内の AWS サービスの一部として実行されているかにかかわらず、同じ AWS リージョン内の AWS DMS とソースエンドポイントとターゲットエンドポイント間の保護が提供されます。(少なくとも 1 つのエンドポイント、ソースまたはターゲットは、クラウド内の AWS サービスの一部として実行する必要があります）。この保護は、VPC がすべて同じ AWS リージョンにある場合、これらのコンポーネントが同じ仮想プライベートクラウド (VPC) を共有しているか VPCs 、別々の VPCs に存在するかにかかわらず適用されます。でサポートされているネットワーク設定の詳細については AWS DMS、「」を参照してください[レプリケーション インスタンスのためのネットワークのセットアップ](CHAP_ReplicationInstance.VPC.md)。これらのネットワーク設定を使用する場合のセキュリティに関する考慮事項については、「[のネットワークセキュリティ AWS Database Migration Service](CHAP_Security.md#CHAP_Security.Network)」をご参照ください。

## DMS Fleet Advisor でのデータ保護
<a name="fa-security-data-protection"></a>

DMS Fleet Advisor は、データベースのメタデータを収集して分析し、移行ターゲットの適切なサイズを決定します。DMS Fleet Advisor はテーブル内のデータにアクセスしたり、データを転送したりすることはありません。また、DMS Fleet Advisor はデータベース機能の使用状況は追跡せず、使用統計にもアクセスしません。

DMS Fleet Advisor がデータベースを利用するために使用するデータベースユーザーを作成する際に、データベースへのアクセスを制御します。このようなユーザーに必要なアクセス許可を付与します。DMS Fleet Advisor を使用するには、データベースユーザーに読み取り権限を付与します。DMS Fleet Advisor はデータベースを変更しないため、書き込み権限は必要ありません。詳細については、「[AWS DMS Fleet Advisor のデータベースユーザーの作成](fa-database-users.md)」を参照してください。

データベースでデータ暗号化を使用できます。 は、DMS Fleet Advisor 内およびそのデータコレクター内の接続 AWS DMS も暗号化します。

DMS データコレクターは、データ保護アプリケーションプログラミングインターフェイス (DPAPI) を使用して、お客様の環境とデータベースの認証情報を暗号化、保護、保存します。DMS Fleet Advisor は、このような暗号化されたデータを、DMS データコレクターが動作するサーバー上のファイルに保存します。DMS Fleet Advisor は、このようなサーバーからデータを転送することはありません。DPAPI の詳細については、「[方法: データ保護の使用](https://learn.microsoft.com/en-us/dotnet/standard/security/how-to-use-data-protection)」を参照してください。

DMS データコレクターをインストールすると、このアプリケーションがメトリクスを収集するために実行するすべてのクエリを確認できます。DMS データコレクターをオフラインモードで実行して、収集したデータをサーバー上で確認できます。収集したデータを Amazon S3 バケットで確認することもできます。詳細については、「[DMS データコレクターの仕組み](fa-collecting.md#fa-data-collectors-how-it-works)」を参照してください。

# でのサービス改善のためのデータの使用をオプトアウトする AWS Database Migration Service
<a name="CHAP_Security.dataserviceimprovement"></a>

 AWS Organizations オプトアウトポリシー AWS DMS を使用して、データの開発と改善に使用されるデータをオプトアウトできます。 AWS DMS が現在そのようなデータを収集していない場合でも、オプトアウトすることができます。詳細については、「*AWS Organizations ユーザーガイド*」の「[AI サービスのオプトアウトポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html)」を参照してください。

現在、 AWS Database Migration Service (AWS DMS) はユーザーに代わって処理するデータを収集しません。DMS および他の AWS サービスの機能を開発および改善するために、DMS は将来そのようなデータを収集することがあります。DMS がデータを収集するように設定される場合、このドキュメントページは更新されます。ただし、いつでもオプトアウトすることができます。

**注記**  
オプトアウトポリシーを使用するには、 AWS アカウントが AWS Organizations によって一元管理されている必要があります。 AWS アカウントの組織を作成していない場合は、[AWS 「 Organizations ユーザーガイド」の「Organizations を使用した組織の管理](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html)*AWS *」を参照してください。

オプトアウトには次のような効果があります。
+ AWS DMS は、オプトアウト前にサービス改善の目的で収集および保存したデータ (存在する場合) を削除します。
+ オプトアウトすると、 はサービス改善の目的でこのデータを収集または保存 AWS DMS しなくなります。

# でのクロスリージョン推論 AWS Database Migration Service
<a name="CHAP_Security.DataProtection.CrossRegionInference"></a>

 特定の AWS Database Migration Service 機能では、クロスリージョン AI 推論を使用して、推論リクエストを処理する最適な を地域 AWS リージョン 内で自動的に選択します。このアプローチは、利用可能なコンピューティングリソースとモデルの可用性を最大化し、高品質のカスタマーエクスペリエンスを提供するように設計されています。クロスリージョン推論を使用すると、以下が可能になります。
+ 最新の AI 機能へのアクセス
+ 高需要期間中のスループットと耐障害性の向上

 クロスリージョン AI 推論リクエストは、プライマリ と同じ地域の一部 AWS リージョン である 内に保持されます AWS リージョン。たとえば、 AWS リージョン 米国のプライマリから行われたリクエストは、米国の AWS リージョン 内に保持されます。データはプライマリにのみ保存されます AWS リージョン。すべてのデータは Amazon の安全なネットワーク経由で暗号化されて送信されます。

**注記**  
Amazon CloudWatch ログと AWS CloudTrail ログは、AI 推論が発生する AWS リージョン を指定しません。

## DMS Schema Conversion でのクロスリージョン推論
<a name="CHAP_Security.DataProtection.CrossRegionInference.SchemaConversion"></a>

 DMS Schema Conversion で生成 AI 機能を使用すると、匿名化されたコードフラグメントと関連するスキーマメタデータが、AI 処理のために同じ地域 AWS リージョン 内の他の に送信される場合があります。本稼働データはプライマリ AWS リージョン に残り、アクセスまたは送信されることはありません。

**重要**  
 DMS Schema Conversion で生成 AI 機能を使用すると、クロスリージョン推論は常に有効になります。スキーマ変換処理をプライマリに常駐させるには AWS リージョン、無効な生成 AI 機能でスキーマ変換を使用します。

 DMS Schema Conversion の生成 AI 機能は、現在、限られた数のリージョンで利用できます。次の表 AWS リージョン は、プライマリに応じてリクエストがルーティングされる先の表です AWS リージョン。


| プライマリ AWS リージョン | 推論 AWS リージョン | 
| --- | --- | 
| アジアパシフィック (東京) (ap-northeast-1) |  アジアパシフィック (東京) (ap-northeast-1) アジアパシフィック (大阪) (ap-northeast-3)  | 
| アジアパシフィック (大阪) (ap-northeast-3) |  アジアパシフィック (東京) (ap-northeast-1) アジアパシフィック (大阪) (ap-northeast-3)  | 
| アジアパシフィック (シドニー) (ap-southeast-2) |  アジアパシフィック (シドニー) (ap-southeast-2) アジアパシフィック (メルボルン) (ap-southeast-4)  | 
| カナダ (中部) (ca-central-1) |  カナダ (中部) (ca-central-1) 米国東部 (バージニア北部) (us-east-1) 米国東部 (オハイオ) (us-east-2) 米国西部 (オレゴン) (us-west-2)  | 
| ヨーロッパ (フランクフルト) (eu-central-1) |  ヨーロッパ (フランクフルト) (eu-central-1) 欧州 (ストックホルム) (eu-north-1) 欧州 (ミラノ) (eu-south-1) 欧州 (スペイン) (eu-south-2) 欧州 (アイルランド) (eu-west-1) 欧州 (パリ) (eu-west-3)  | 
| 欧州 (ストックホルム) (eu-north-1) |  ヨーロッパ (フランクフルト) (eu-central-1) 欧州 (ストックホルム) (eu-north-1) 欧州 (ミラノ) (eu-south-1) 欧州 (スペイン) (eu-south-2) 欧州 (アイルランド) (eu-west-1) 欧州 (パリ) (eu-west-3)  | 
| 欧州 (アイルランド) (eu-west-1) |  ヨーロッパ (フランクフルト) (eu-central-1) 欧州 (ストックホルム) (eu-north-1) 欧州 (ミラノ) (eu-south-1) 欧州 (スペイン) (eu-south-2) 欧州 (アイルランド) (eu-west-1) 欧州 (パリ) (eu-west-3)  | 
| ヨーロッパ (ロンドン) (eu-west-2) |  ヨーロッパ (フランクフルト) (eu-central-1) 欧州 (ストックホルム) (eu-north-1) 欧州 (ミラノ) (eu-south-1) 欧州 (スペイン) (eu-south-2) 欧州 (アイルランド) (eu-west-1) ヨーロッパ (ロンドン) (eu-west-2) 欧州 (パリ) (eu-west-3)  | 
| 欧州 (パリ) (eu-west-3) |  ヨーロッパ (フランクフルト) (eu-central-1) 欧州 (ストックホルム) (eu-north-1) 欧州 (ミラノ) (eu-south-1) 欧州 (スペイン) (eu-south-2) 欧州 (アイルランド) (eu-west-1) 欧州 (パリ) (eu-west-3)  | 
| 米国東部 (バージニア北部) (us-east-1) |  米国東部 (バージニア北部) (us-east-1) 米国東部 (オハイオ) (us-east-2) 米国西部 (オレゴン) (us-west-2)  | 
| 米国東部 (オハイオ) (us-east-2) |  米国東部 (バージニア北部) (us-east-1) 米国東部 (オハイオ) (us-east-2) 米国西部 (オレゴン) (us-west-2)  | 
| 米国西部 (オレゴン) (us-west-2) |  米国東部 (バージニア北部) (us-east-1) 米国東部 (オハイオ) (us-east-2) 米国西部 (オレゴン) (us-west-2)  | 

# の ID とアクセスの管理 AWS Database Migration Service
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を*認証* (サインイン) し、誰に AWS DMS リソースの使用*を許可する* (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [オーディエンス](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [が IAM と AWS Database Migration Service 連携する方法](security_iam_service-with-iam.md)
+ [AWS Database Migration Service アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)
+ [のリソースベースのポリシーの例 AWS KMS](security_iam_resource-based-policy-examples.md)
+ [シークレットを使用した AWS Database Migration Service エンドポイントへのアクセス](security_iam_secretsmanager.md)
+ [のサービスにリンクされたロールの使用 AWS DMS](using-service-linked-roles.md)
+ [AWS Database Migration Service ID とアクセスのトラブルシューティング](security_iam_troubleshoot.md)
+ [を使用するために必要な IAM アクセス許可 AWS DMS](#CHAP_Security.IAMPermissions)
+ [で使用する IAM ロールの作成 AWS DMS](#CHAP_Security.APIRole)
+ [サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md)
+ [AWS の 管理ポリシー AWS Database Migration Service](security-iam-awsmanpol.md)

## オーディエンス
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
+ **サービスユーザー** - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「[AWS Database Migration Service ID とアクセスのトラブルシューティング](security_iam_troubleshoot.md)」を参照)。
+ **サービス管理者** - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「[が IAM と AWS Database Migration Service 連携する方法](security_iam_service-with-iam.md)」を参照)
+ **IAM 管理者** - アクセスを管理するためのポリシーを作成します (「[AWS Database Migration Service アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照)

## アイデンティティを使用した認証
<a name="security_iam_authentication"></a>

認証とは、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

( AWS IAM アイデンティティセンター IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*IAM ユーザーガイド*」の「[API リクエストに対するAWS 署名バージョン 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。

### AWS アカウント ルートユーザー
<a name="security_iam_authentication-rootuser"></a>

 を作成するときは AWS アカウント、まず、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *root ユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### IAM ユーザーとグループ
<a name="security_iam_authentication-iamuser"></a>

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスする必要がある AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーに関するユースケース](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)」を参照してください。

### IAM ロール
<a name="security_iam_authentication-iamrole"></a>

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## ポリシーを使用したアクセスの管理
<a name="security_iam_access-manage"></a>

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、ID またはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、「*IAM ユーザーガイド*」の「[JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)」を参照してください。

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

デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。

### アイデンティティベースのポリシー
<a name="security_iam_access-manage-id-based-policies"></a>

アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、またはロール) にアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティがどのリソースに対してどのような条件下でどのようなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、*IAM ユーザーガイド* の [カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) を参照してください。

アイデンティティベースのポリシーは、*インラインポリシー* (単一の ID に直接埋め込む) または*管理ポリシー* (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシーのいずれかを選択する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)」を参照してください。

### リソースベースのポリシー
<a name="security_iam_access-manage-resource-based-policies"></a>

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。例としては、IAM *ロール信頼ポリシー*や Amazon S3 *バケットポリシー*などがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーでは、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWS マネージドポリシーを使用できません。

### アクセスコントロールリスト (ACL)
<a name="security_iam_access-manage-acl"></a>

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

Amazon S3、および Amazon VPC は AWS WAF、ACLs。ACL の詳細については、*Amazon Simple Storage Service デベロッパーガイド* の [アクセスコントロールリスト (ACL) の概要](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) を参照してください。

### その他のポリシータイプ
<a name="security_iam_access-manage-other-policies"></a>

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の最大数を設定できる追加のポリシータイプをサポートしています。
+ **アクセス許可の境界** – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「*IAM ユーザーガイド*」の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** - AWS Organizations内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。
+ **リソースコントロールポリシー (RCP)** – は、アカウント内のリソースで利用できる最大数のアクセス許可を定義します。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)」を参照してください。
+ **セッションポリシー** – ロールまたはフェデレーションユーザーの一時セッションを作成する際にパラメータとして渡される高度なポリシーです。詳細については、「*IAM ユーザーガイド*」の「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

### 複数のポリシータイプ
<a name="security_iam_access-manage-multiple-policies"></a>

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうか AWS を決定する方法については、*「IAM ユーザーガイド*」の[「ポリシー評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」を参照してください。

# が 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)」を参照してください。

# AWS Database Migration Service アイデンティティベースのポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、IAM ユーザーおよびロールには、 AWS DMS リソースを作成または変更するアクセス許可はありません。また、 AWS マネジメントコンソール、 AWS CLI、または AWS API を使用してタスクを実行することはできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する権限をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらの権限が必要な IAM ユーザーまたはグループにそのポリシーをアタッチする必要があります。

これらの JSON ポリシードキュメント例を使用して IAM のアイデンティティベースのポリシーを作成する方法については、『*IAM ユーザーガイド*』の「[JSON タブでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)」を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [AWS DMS コンソールの使用](#security_iam_id-based-policy-examples-console)
+ [自分の権限の表示をユーザーに許可する](#security_iam_id-based-policy-examples-view-own-permissions)
+ [1 つの Amazon S3 バケットへのアクセス](#security_iam_id-based-policy-examples-access-one-bucket)
+ [タグに基づく AWS DMS リソースへのアクセス](#security_iam_id-based-policy-examples-access-resources-tags)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、アカウント内の AWS DMS リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## AWS DMS コンソールの使用
<a name="security_iam_id-based-policy-examples-console"></a>

次のポリシーでは、 AWS DMS コンソールを含む AWS DMS へのアクセスを許可し、Amazon EC2 などの他の Amazon サービスから必要な特定のアクションに対するアクセス許可も指定します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
     "Statement": [
    {
        "Effect": "Allow",
        "Action": "dms:*",
        "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "kms:ListAliases",
            "kms:DescribeKey"
        ],
        "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "iam:GetRole",
            "iam:CreateRole",
            "iam:AttachRolePolicy"
        ],
        "Resource": "arn:aws:iam::123456789012:role/*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::123456789012:role/*",
        "Condition": {
            "StringEquals": {
                "iam:PassedToService": "dms.amazonaws.com"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeVpcs",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups",
            "ec2:ModifyNetworkInterfaceAttribute",
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "cloudwatch:Get*",
            "cloudwatch:List*"
        ],
    "Resource": "*"
    },
    {
    "Effect": "Allow",
    "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
        ],
    "Resource": "arn:aws:logs:*:123456789012:*"
    }
   ]
}
```

------

これらのアクセス許可の内訳は、コンソールを使用するためにそれぞれのアクセス許可が必要な理由を理解するうえで役立ちます。

次のセクションは、利用可能な AWS KMS キーとエイリアスをユーザーがリストし、コンソールに表示することを許可するために必要です。KMS キーの Amazon リソースネーム (ARN) がわかり、 AWS Command Line Interface (AWS CLI) のみを使用している場合、このエントリは必要ではありません。

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

次のセクションは、エンドポイントとともにロール ARN を渡す必要がある特定のエンドポイントタイプに必要です。さらに、必要な AWS DMS ロールが事前に作成されていない場合、 AWS DMS コンソールにはロールを作成する機能があります。すべてのロールが事前に設定されている場合、必要なものは `iam:GetRole` および `iam:PassRole` のみです。ロールの詳細については、「[で使用する IAM ロールの作成 AWS DMS](security-iam.md#CHAP_Security.APIRole)」をご参照ください。

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

は Amazon EC2 インスタンスを作成し、作成されたレプリケーションインスタンスのネットワークを設定する AWS DMS 必要があるため、次のセクションは必須です。これらのリソースはお客様のアカウント内に存在するため、お客様に代わってこれらのアクションを実行できる必要があります。

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

次のセクションは、ユーザーがレプリケーション インスタンスのメトリクスを表示することを許可するために必要です。

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

このセクションは、ユーザーがレプリケーションログを表示することを許可するために必要です。

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

移行に DMS AWS コンソール、 AWS Command Line Interface (AWS CLI)、または AWS DMS API を使用する場合は、アカウントに複数のロールを追加する必要があります。これらのロールの追加についての詳細は、「[で使用する IAM ロールの作成 AWS DMS](security-iam.md#CHAP_Security.APIRole)」をご参照ください。

このポリシーを使用して DMS AWS にアクセスするための要件の詳細については、「」を参照してください[を使用するために必要な IAM アクセス許可 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)。

## 自分の権限の表示をユーザーに許可する
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 1 つの Amazon S3 バケットへのアクセス
<a name="security_iam_id-based-policy-examples-access-one-bucket"></a>

AWS DMS は、データベース移行の中間ストレージとして Amazon S3 バケットを使用します。通常、 AWS DMS はこの目的のためにデフォルトの S3 バケットを管理します。ただし、特定のケースでは、特に AWS CLI または AWS DMS API を使用する場合、 AWS DMS では代わりに独自の S3 バケットを指定できます。たとえば、Amazon Redshift ターゲット エンドポイントにデータを移行するための独自の S3 バケットを指定できます。この場合、 AWS管理`AmazonDMSRedshiftS3Role`ポリシーに基づいてアクセス許可を持つロールを作成する必要があります。

次の例は `AmazonDMSRedshiftS3Role` ポリシーの 1 つのバージョンを示しています。これにより、DMS AWS は AWS アカウントの IAM ユーザーに Amazon S3 バケットのいずれかへのアクセスを許可できます。また、このユーザーは、オブジェクトの追加、更新、削除を行うこともできます。

このポリシーでは、ユーザーに `s3:PutObject`、`s3:GetObject`、`s3:DeleteObject` のアクセス許可を付与するだけでなく、`s3:ListAllMyBuckets`、`s3:GetBucketLocation`、および `s3:ListBucket` のアクセス許可も付与します。これらが、コンソールで必要とされる追加のアクセス許可です。その他のアクセス許可により、DMS AWS はバケットのライフサイクルを管理できます。また、オブジェクトをコピーするには、`s3:GetObjectAcl` アクションが必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:DeleteBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:GetBucketAcl",
                "s3:PutBucketVersioning",
                "s3:GetBucketVersioning",
                "s3:PutLifecycleConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:DeleteBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::dms-*"
        }
    ]
}
```

------

このポリシーに基づくロールの作成の詳細については、「[Amazon S3 バケットのセットアップ](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets)」をご参照ください。

## タグに基づく AWS DMS リソースへのアクセス
<a name="security_iam_id-based-policy-examples-access-resources-tags"></a>

アイデンティティベースのポリシーの条件を使用して、タグに基づいて AWS DMS リソースへのアクセスをコントロールできます。この例では、すべての DMS AWS エンドポイントへのアクセスを許可するポリシーを作成する方法を示します。ただし、アクセス許可が付与されるのは、エンドポイントデータベースタグ `Owner` にそのユーザーのユーザー名の値がある場合のみです。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "dms:endpoint-tag/Owner": "${aws:username}"
        }
      }
    }
  ]
}
```

------

このポリシーはアカウントの IAM ユーザーにアタッチできます。という名前のユーザーが AWS DMS エンドポイントにアクセス`richard-roe`しようとする場合、エンドポイントデータベースには `Owner=richard-roe`または のタグを付ける必要があります`owner=richard-roe`。それ以外の場合、このユーザーはアクセスを拒否されます。条件キー名では大文字と小文字が区別されないため、条件タグキー `Owner` は `Owner` と `owner` の両方に一致します。詳細については、*IAM ユーザーガイド*の[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)を参照してください。

# のリソースベースのポリシーの例 AWS KMS
<a name="security_iam_resource-based-policy-examples"></a>

AWS DMS では、カスタム AWS KMS 暗号化キーを作成して、サポートされているターゲットエンドポイントデータを暗号化できます。キーポリシーを作成して、サポートされているターゲットデータ暗号化用に作成する暗号化キーに、このポリシーをアタッチする方法については、「[AWS KMS キーを作成して Amazon Redshift ターゲットデータを暗号化する](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys)」および「[Amazon S3 ターゲットオブジェクトを暗号化するための AWS KMS キーの作成](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys)」をご参照ください。

**Topics**
+ [Amazon Redshift ターゲットデータを暗号化するためのカスタム AWS KMS 暗号化キーのポリシー](#security_iam_resource-based-policy-examples-custom-rs-key-policy)
+ [Amazon S3 ターゲットデータを暗号化するためのカスタム AWS KMS 暗号化キーのポリシー](#security_iam_resource-based-policy-examples-custom-s3-key-policy)

## Amazon Redshift ターゲットデータを暗号化するためのカスタム AWS KMS 暗号化キーのポリシー
<a name="security_iam_resource-based-policy-examples-custom-rs-key-policy"></a>

次の例は、Amazon Redshift ターゲットデータを暗号化するために作成する AWS KMS 暗号化キー用に作成されたキーポリシーの JSON を示しています。

------
#### [ JSON ]

****  

```
{
  "Id": "key-consolepolicy-3",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:root"
        ]
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "Allow access for Key Administrators",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/Admin"
        ]
      },
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow use of the key",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow attachment of persistent resources",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:CreateGrant",
        "kms:ListGrants",
        "kms:RevokeGrant"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}
```

------

ここでは、キーを作成する前に作成した Amazon Redshift ターゲットエンドポイントデータにアクセスするためのロールが、キーポリシーで参照されている箇所を確認できます。この例では、`DMS-Redshift-endpoint-access-role` です。また、異なるプリンシパル（ユーザーとロール）に対して許可されているさまざまなキーアクションも確認できます。たとえば、`DMS-Redshift-endpoint-access-role` のすべてのユーザーは、ターゲットデータを暗号化、復号化、および再暗号化できます。このようなユーザーは、エクスポート用のデータキーを生成して、外部でデータを暗号化することもできます AWS KMS。また、先ほど作成した AWS KMS キーなど、キーに関する詳細情報を返すこともできます。さらに、このようなユーザーは、ターゲット エンドポイントなどの AWS リソースへのアタッチメントを管理できます。

## Amazon S3 ターゲットデータを暗号化するためのカスタム AWS KMS 暗号化キーのポリシー
<a name="security_iam_resource-based-policy-examples-custom-s3-key-policy"></a>

次の例は、Amazon S3 ターゲットデータを暗号化するために作成する AWS KMS 暗号化キー用に作成されたキーポリシーの JSON を示しています。

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:root"
                ]
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/Admin"
                ]
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
```

------

ここでは、キーの作成前に作成した Amazon S3 ターゲットエンドポイントデータにアクセスするためのロールが、キーポリシーで参照されている箇所を確認できます。この例では、`DMS-S3-endpoint-access-role` です。また、異なるプリンシパル（ユーザーとロール）に対して許可されているさまざまなキーアクションも確認できます。たとえば、`DMS-S3-endpoint-access-role` のすべてのユーザーは、ターゲットデータを暗号化、復号化、および再暗号化できます。このようなユーザーは、エクスポート用のデータキーを生成して、外部でデータを暗号化することもできます AWS KMS。また、先ほど作成した AWS KMS キーなど、キーに関する詳細情報を返すこともできます。さらに、このようなユーザーは、ターゲット エンドポイントなどの AWS リソースへのアタッチメントを管理できます。

# シークレットを使用した AWS Database Migration Service エンドポイントへのアクセス
<a name="security_iam_secretsmanager"></a>

シー*クレット*は AWS DMS、シー*クレット認証*を通じて、サポートされている AWS DMS ソースまたはターゲットエンドポイントのデータベース接続を認証するための一連のユーザー認証情報を表すために使用できる暗号化されたキーです。Oracle Automatic Storage Management (ASM) も使用する Oracle エンドポイントの場合、 には、Oracle ASM にアクセスするためのユーザー認証情報を表す追加のシークレット AWS DMS が必要です。

クラウドおよびオンプレミスのアプリケーション、サービス AWS Secrets Manager、IT リソースにアクセスするための認証情報を安全に作成、保存、取得するためのサービスである を使用して、シークレット認証 AWS DMS に必要なシークレットを作成できます。これは、ユーザーを介さずに認証情報のセキュリティを強化する、暗号化されたシークレット値の定期的な自動ローテーションに対応します。 AWS Secrets Manager また、 でシークレット値のローテーションを有効にすると、シークレットに依存するデータベースの移行に影響を与えずに、このシークレット値のローテーションを確実に実行できます。エンドポイント データベース接続を内密に認証するには、エンドポイント設定に含める `SecretsManagerSecretId` に割り当てる ID または ARN シークレットを作成します。Oracle ASM を Oracle エンドポイントの一部として内密に認証するには、エンドポイント設定にも含める `SecretsManagerOracleAsmSecretId` に ID または ARN を割り当てるシークレットを作成します。

**注記**  
Amazon RDS Aurora が管理するマスター認証情報は使用できません。これらの認証情報には、接続を確立 AWS DMS する必要があるホストまたはポート情報は含まれません。その代わりに、新しいユーザーとシークレットを作成します。ユーザーとシークレットの作成の詳細については、次の「[AWS マネジメントコンソール を使用してシークレットとシークレットアクセスロールを作成する](#security_iam_secretsmanager.console)」を参照してください。

詳細については AWS Secrets Manager、「 *AWS Secrets Manager ユーザーガイド*」の[「Secrets Manager とは AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)」を参照してください。

AWS DMS は、サポートされているソースエンドポイントとターゲットエンドポイントで、次のオンプレミスデータベースまたは AWSマネージドデータベースのシークレット認証をサポートします。
+ Amazon DocumentDB
+ IBM Db2 LUW
+ Microsoft SQL Server
+ MongoDB
+ MySQL
+ Oracle
+ [PostgreSQL]
+ Amazon Redshift
+ SAP ASE

これらのデータベースに接続するにはエンドポイント設定の一部として、次のいずれかの値セットを入力できますが、両方を入力することはできません。
+ `UserName`、`Password`、`ServerName`、`Port` の設定を使用したデータベース接続を認証するクリアテキスト値。Oracle ASM も使用する Oracle エンドポイントの場合は、`AsmUserName`、`AsmPassword`、`AsmServerName` の設定を使用して ASM を認証するために追加のクリアテキスト値を含めます。
+ `SecretsManagerSecretId` と `SecretsManagerAccessRoleArn` 設定用の値を使用したシークレット認証。Oracle ASM を使用する Oracle エンドポイントの場合は、`SecretsManagerOracleAsmSecretId`と`SecretsManagerOracleAsmAccessRoleArn` 設定用に追加の値を含めます。これらの設定のシークレット値には次のものが含まれます。
  + `SecretsManagerSecretId` — AWS Secrets Managerでエンドポイントデータベースアクセス用に作成したシークレットの完全な Amazon リソースネーム (ARN)、ARN の一部、またはフレンドリ名。
  + `SecretsManagerAccessRoleArn` – ユーザーに代わってこのシークレットへのアクセスを提供するために IAM で作成した`SecretsManagerSecretId`シークレット AWS DMS アクセスロールの ARN。
  + `SecretsManagerOracleAsmSecretId` — AWS Secrets Managerで Oracle ASM アクセス用に作成したシークレットの完全な Amazon リソースネーム (ARN)、ARN の一部、またはフレンドリ名。
  + `SecretsManagerOracleAsmAccessRoleArn` — ユーザーに代わってこの `SecretsManagerOracleAsmSecretId` シークレットへの AWS DMS アクセスを提供するために IAM に作成したシークレットアクセスロールの ARN。
**注記**  
単一のシークレットアクセスロールを使用して、`SecretsManagerSecretId`シークレットとシー`SecretsManagerOracleAsmSecretId`クレットの両方 AWS DMS へのアクセスを提供することもできます。両方のシークレットに対してこの単一のシークレットアクセスロールを作成する場合は、このアクセスロール用の同じ ARN を `SecretsManagerAccessRoleArn` と `SecretsManagerOracleAsmAccessRoleArn` の両方に割り当てます。例えば、両方のシークレットに対するシークレット アクセス ロールの ARN が変数 `ARN2xsecrets` に割り当てられている場合、これらの ARN 設定を次のように設定できます。  

  ```
  SecretsManagerAccessRoleArn = ARN2xsecrets;
  SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
  ```

  これらの値を作成する詳細については、「[AWS マネジメントコンソール を使用してシークレットとシークレットアクセスロールを作成する](#security_iam_secretsmanager.console)」をご参照ください。

エンドポイントに必要なシークレットおよびシークレットアクセスロールエンドポイント設定を作成し指定した後、これらのシークレットの詳細を含む `CreateEndpoint` または `ModifyEndpoint` API リクエストを実行するユーザーアカウントの許可を更新します。これらのアカウントのアクセス許可に、シークレットアクセスロールの`IAM:GetRole`アクセス許可とシークレットの`SecretsManager:DescribeSecret`アクセス許可が含まれていることを確認します。 アクセスロールとそのシークレットの両方を検証するには、これらのアクセス許可 AWS DMS が必要です。

**必要なユーザー許可を提供して検証するには**

1. にサインイン AWS マネジメントコンソール し、 で AWS Identity and Access Management コンソールを開きます[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. **[Users]** (ユーザー) を選択し、`CreateEndpoint` と `ModifyEndpoint` の API コールを行うために使用する **[User ID]** (ユーザー ID) を選択します。

1. **[Permissions]** (許可) タブで、**[\$1\$1 JSON]** を選択します。

1. ユーザーに次のアクセス許可があることを確認します。

   ```
   {
   	"Statement": [{
   			"Effect": "Allow",
   			"Action": [
   				"iam:GetRole",
   				"iam:PassRole"
   			],
   			"Resource": "SECRET_ACCESS_ROLE_ARN"
   		},
   		{
   			"Effect": "Allow",
   			"Action": "secretsmanager:DescribeSecret",
   			"Resource": "SECRET_ARN"
   		}
   	]
   }
   ```

1. ユーザーにこれらの許可がない場合は、許可を追加します。

1. IAM ロールを使用して DMS API コールを行う場合は、それぞれのロールで上記のステップを繰り返します。

1. ターミナルを開き、 を使用して AWS CLI 、上記で使用したロールまたはユーザーを引き受けることで、アクセス許可が正しく付与されていることを検証します。

   1. IAM `get-role` コマンドを使用して、SecretAccessRole に対するユーザー許可を検証します。

      ```
      aws iam get-role --role-name ROLE_NAME
      ```

      *ROLE\$1NAME* はロ `SecretsManagerAccessRole` 名前に置き換えます。

      コマンドがエラーメッセージを返す場合は、正しく許可されていることを確認してください。

   1. Secrets Manager `describe-secret` コマンドを使用して、シークレットに対するユーザー許可を検証します。

      ```
      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME
      ```

      ユーザーには、フレンドリ名、ARN の一部、または完全な ARN を指定できます。詳細については、「[describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html)」をご参照ください。

      コマンドがエラー メッセージを返す場合は、正しく許可されていることを確認してください。

## AWS マネジメントコンソール を使用してシークレットとシークレットアクセスロールを作成する
<a name="security_iam_secretsmanager.console"></a>

を使用して AWS マネジメントコンソール 、エンドポイント認証用のシークレットを作成し、ユーザーに代わって AWS DMS がシークレットにアクセスできるようにポリシーとロールを作成できます。

**を使用してシークレットを作成し、 AWS マネジメントコンソール AWS DMS を使用してソースエンドポイントとターゲットエンドポイントの接続のデータベースを認証するには**

1. にサインイン AWS マネジメントコンソール し、 で AWS Secrets Manager コンソールを開きます[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. **新しいシークレットを保存** を選択します。

1. **[Store a new secret]** (新しいシークレットの保存) ページの **[Select secret type]** (シークレットタイプの選択) で、**[Other type of secrets]** (他の種類のシークレット) を選択し、次に**[Plaintext]** (プレーンテキスト) を選択します。
**注記**  
これ以降で、エンドポイントデータベースに接続するために、クリアテキストの認証情報を入力する必要があるのはここだけです。

1. **[Plaintext]** (プレーンテキスト) フィールド 
   + `SecretsManagerSecretId` にアイデンティティを割り当てるシークレットでは、次の JSON 構造を入力します。

     ```
     {
       "username": db_username,
       "password": db_user_password,
       "port": db_port_number,
       "host": db_server_name
     }
     ```
**注記**  
これは、エンドポイントデータベースの認証に必要な JSON メンバーの最小リストです。任意の JSON エンドポイント設定をすべて小文字で JSON メンバーとして追加できます。ただし、 AWS DMS では、エンドポイント認証用の追加 JSON メンバーは無視されます。

     ここで、`db_username` は、データベースにアクセスしているユーザーの名前で、`db_user_password` は、データベースのユーザーパスワード、`db_port_number` は、データベースにアクセスするためのポート番号、`db_server_name` は、次の例のように、ウェブ上のデータベースサーバー名 (アドレス) です。

     ```
     {
       "username": "admin",
       "password": "some_password",
       "port": "8190",
       "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com"
     }
     ```
   + `SecretsManagerOracleAsmSecretId` にアイデンティティを割り当てるシークレットについては、次の JSON 構造を入力します。

     ```
     {
       "asm_user": asm_username,
       "asm_password": asm_user_password,
       "asm_server": asm_server_name
     }
     ```
**注記**  
これは、Oracle エンドポイント用に Oracle ASM を認証するために最低限必要な JSON メンバーのリストです。また、利用可能な Oracle ASM エンドポイント設定に基づいて指定できる完全なリストでもあります。

     ここで、`asm_username` は、Oracle ASM にアクセスしているユーザー名、`asm_user_password` は Oracle ASM ユーザーのパスワード、`asm_server_name` は、次の例のように、ポートを含むウェブの Oracle ASM サーバー名 (アドレス) です。

     ```
     { 
       "asm_user": "oracle_asm_user", 
       "asm_password": "oracle_asm_password",
       "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" 
     }
     ```

1.  AWS KMS シークレットを暗号化する暗号化キーを選択します。によって AWS Secrets Manager サービス用に作成されたデフォルトの暗号化キーを受け入れるか、作成した AWS KMS キーを選択できます。

1. このシークレットを参照する名前とオプションの説明を指定します。これは、`SecretsManagerSecretId` または `SecretsManagerOracleAsmSecretId` の値として使用するフレンドリ名です。

1. シークレットで自動ローテーションを有効にする場合は、説明に従ってシークレットの認証情報をローテーションするアクセス許可を持つ AWS Lambda 関数を選択または作成する必要があります。ただし、Lambda 関数を使用するように自動ローテーションを設定する前に、関数の構成設定で次の 4 文字を `EXCLUDE_CHARACTERS` 環境変数の値に追加します。

   ```
   ;.:+{}*&,%\
   ```

   AWS DMS は、エンドポイント認証情報に使用されるパスワードでこれらの文字を許可しません。これらを除外するように Lambda 関数を設定すると、 AWS Secrets Manager はローテーションされたパスワードの値の一部としてこれらの文字を生成できなくなります。Lambda 関数を使用するように自動ローテーションを設定すると、 AWS Secrets Manager はすぐにシークレットをローテーションしてシークレット設定を検証します。
**注記**  
データベースエンジンの構成によっては、データベースでローテーションされた認証情報がフェッチされない場合があります。この場合、認証情報を更新するには、タスクをマニュアルで再起動する必要があります。

1. シークレットを確認して保存します AWS Secrets Manager。その後、 で各シークレットをわかりやすい名前で検索し AWS Secrets Manager、シークレット ARN を の値として取得するか、`SecretsManagerSecretId``SecretsManagerOracleAsmSecretId`必要に応じて取得して、エンドポイントデータベース接続と Oracle ASM (使用されている場合) へのアクセスを認証できます。

**シークレットアクセスポリシーとロールを作成して `SecretsManagerAccessRoleArn`または を設定するには`SecretsManagerOracleAsmAccessRoleArn`、 AWS DMS が適切なシークレットにアクセス AWS Secrets Manager できるようにします。**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で AWS Identity and Access Management (IAM) コンソールを開きます。

1. **[Policies]** (ポリシー) を選択し、次に**[Create Policy]** (ポリシー作成) を選択します

1. **[JSON]** を選択し、次のポリシーを入力して、シークレットへのアクセスと復号化を有効にします。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   ここで、`secret_arn` はシークレット ARN で、必要に応じて `SecretsManagerSecretId` または `SecretsManagerOracleAsmSecretId` のいずれかより入手できます。`kms_key_arn` は、次の例のように、シークレットを暗号化するために使用する AWS KMS キーの ARN です。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**注記**  
によって作成されたデフォルトの暗号化キーを使用する場合 AWS Secrets Manager、 の AWS KMS アクセス許可を指定する必要はありません`kms_key_arn`。  
ポリシーで両方のシークレットへのアクセスを許可する場合は、もう 1 つの *[secret\$1arn]* に追加の JSON リソースオブジェクトを指定するだけです。  
シークレットが別のアカウントにある場合は、`SecretsManagerAccessRoleArn` ロールにクロスアカウントのシークレットを検証するための追加のポリシーが必要です。このようなユースケースでは、ポリシーに `secretsmanager:DescribeSecret` アクションを追加します。クロスアカウントシークレットの設定の詳細については、[「別のアカウントのユーザーの AWS Secrets Manager シークレットへのアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)」を参照してください。

1. フレンドリ名とオプションの説明を使用して、ポリシーを確認して作成します。

1. **[Roles]** (ロール)、**[Create role]** (ロールの作成) の順に選択します。

1. 信頼されたエンティティの種類に、**[AWS service]** (サービス) を選択します。

1. 信頼されたサービスのリストから **[DMS]** を選択し、**[Next: Permissions]** (次へ: アクセス許可) を選択します。

1. ステップ 4 で作成したポリシーを検索しアタッチし、任意のタグを追加しながらロールを確認します。この時点で、 AWS DMS リージョンサービスプリンシパルを信頼されたエンティティとして使用するロールの信頼関係を編集します。このプリンシパルの形式は以下のとおりです。

   ```
   dms.region-name.amazonaws.com
   ```

   ここで、*`region-name`* は 例えば `us-east-1` などといったリージョンの名前です。したがって、この AWS DMS リージョンのリージョンサービスプリンシパルが続きます。

   ```
   dms.us-east-1.amazonaws.com
   ```

1. ロールの信頼されたエンティティを編集した後、フレンドリ名とオプションの説明を使用してロールを作成します。IAM でフレンドリ名を持つ新しいロールを検索し、ロール ARN を `SecretsManagerAccessRoleArn` または `SecretsManagerOracleAsmAccessRoleArn` の値として取得して、エンドポイントデータベース接続を認証することができるようになりました。

**プライベートサブネットのレプリケーションインスタンスで Secrets Manager を使用するには**

1. Secrets Manager VPC エンドポイントを作成し、エンドポイントの DNS を書き留めます。Secrets Manager VPC エンドポイントの作成方法の詳細については、*AWS Secrets Manager ユーザーガイド*の「[VPC endpoint を介した Secrets Manager への接続](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html#vpc-endpoint)」[]() を参照ください。

1. VPC エンドポイントセキュリティグループの進入ルールでは、レプリケーションインスタンスのプライベート IP アドレスまたはレプリケーションインスタンスにアタッチされているセキュリティグループからの HTTPS トラフィックを許可します。

1. レプリケーションインスタンスのセキュリティグループのエグレスルールでは、送信先 `0.0.0.0/0` のすべてのトラフィックを許可します。

1. エンドポイントの追加接続属性 `secretsManagerEndpointOverride=secretsManager endpoint DNS` を設定し、次の例に示すように、シークレットマネージャーの VPC エンドポイント DNS を入力します。

   ```
   secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
   ```

# のサービスにリンクされたロールの使用 AWS DMS
<a name="using-service-linked-roles"></a>

AWS Database Migration Service は AWS Identity and Access Management (IAM) [サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスにリンクされたロールは、直接リンクされた一意のタイプの IAM ロールです AWS DMS。サービスにリンクされたロールは によって事前定義 AWS DMS されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がなくなるため、 の設定 AWS DMS が簡単になります。 は、サービスにリンクされたロールのアクセス許可 AWS DMS を定義し、特に定義されている場合を除き、 のみがそのロールを引き受け AWS DMS ることができます。定義された許可には信頼ポリシーと許可ポリシーが含まれ、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールを削除するには、最初に関連リソースを削除する必要があります。これにより、 AWS DMS リソースへのアクセス許可が誤って削除されないため、リソースが保護されます。

サービスにリンクされたロールをサポートする他のサービスの詳細については、[AWS 「IAM と連携するサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照し、「サービス**にリンクされたロール**」列で**「はい**」を持つサービスを探します。サービスリンクロールに関するドキュメントをサービスで表示するには、リンクで **[はい]** を選択します。

** AWS DMS 機能のサービスにリンクされたロール**

**Topics**
+ [Fleet AWS DMS Advisor のサービスにリンクされたロール](slr-services-fa.md)
+ [のサービスにリンクされたロール AWS DMS](slr-services-sl.md)

# Fleet AWS DMS Advisor のサービスにリンクされたロール
<a name="slr-services-fa"></a>

AWS DMS Fleet Advisor は、**AWSServiceRoleForDMSFleetAdvisor** という名前のサービスにリンクされたロールを使用します。DMS Fleet Advisor はこのサービスにリンクされたロールを使用して Amazon CloudWatch メトリクスを管理します。このサービスリンクロールは、マネージドポリシー `AWSDMSFleetAdvisorServiceRolePolicy` にアタッチされます。このポリシーの更新については、「[AWS の 管理ポリシー AWS Database Migration Service](security-iam-awsmanpol.md)」を参照してください

サービスにリンクされたロール AWSServiceRoleForDMSFleetAdvisor は、次のサービスを信頼してロールを引き受けます。
+ `dms-fleet-advisor.amazonaws.com`

AWSDMSFleetAdvisorServiceRolePolicy という名前のロールアクセス許可ポリシーにより AWS DMS 、Fleet Advisor は指定されたリソースに対して次のアクションを実行できます。
+ アクション: `cloudwatch:PutMetricData`。対象リソース: `all AWS resources`

  このアクセス許可により、プリンシパルはメトリクスデータポイントを Amazon CloudWatch に発行できます。 AWS DMS Fleet Advisor では、CloudWatch のデータベースメトリクスを含むグラフを表示するには、このアクセス許可が必要です。

次のコード例は、AWSDMSFleetAdvisorServiceRolePolicy ロールを作成するために使用する AWSDMSFleetAdvisorServiceRolePolicy ポリシーを示しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

ユーザー、グループ、ロールなどの IAM エンティティがサービスにリンクされたロールを作成、編集、削除できるようにするには、アクセス許可を設定する必要があります。詳細については*IAM ユーザーガイド* の「[サービスにリンクされた役割のアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## Fleet Advisor AWS DMS のサービスにリンクされたロールの作成
<a name="create-slr-fa"></a>

IAM コンソールを使用して、**[DMS – Fleet Advisor]** ユースケースでサービスにリンクされたロールを作成できます。 AWS CLI または AWS API で、サービス名を使用して`dms-fleet-advisor.amazonaws.com`サービスにリンクされたロールを作成します。詳細については、*IAM ユーザーガイド*の「[サービスリンクロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。

データコレクターを作成する前に、このロールを必ず作成します。DMS Fleet Advisor はこのロールを使用して AWS マネジメントコンソールでデータベースメトリクスを含むグラフを表示します。詳細については、「[データコレクターの作成](fa-data-collectors-create.md)」を参照してください。

## Fleet Advisor AWS DMS のサービスにリンクされたロールの編集
<a name="edit-slr-fa"></a>

AWS DMS では、AWSServiceRoleForDMSFleetAdvisor サービスにリンクされたロールを編集することはできません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロール記述の編集はできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## Fleet Advisor AWS DMS のサービスにリンクされたロールの削除
<a name="delete-slr-fa"></a>

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。これにより、アクティブにモニタリングまたはメンテナンスされない未使用のエンティティを低減できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。

**注記**  
リソースを削除しようとしたときに AWS DMS サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は数分待ってから操作を再試行してください。

**AWSServiceRoleForDMSFleetAdvisor で使用される AWS DMS リソースを削除するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

1. ナビゲーションペインで、**[検出]** の下にある **[データコレクター]** を選択します。**[Data collectors]** (データコレクター) ページが開きます。

1. データコレクターを選択して、**[削除]** をクリックします。

1. 削除を確認するには、テキスト入力フィールドにデータコレクター名を入力します。次に、**[削除]** を選択します。

**重要**  
DMS データコレクターを削除すると、DMS Fleet Advisor は、このコレクターを使用して検出したすべてのデータベースをインベントリから削除します。

すべてのデータコレクターを削除したら、サービスにリンクされたロールを削除できます。

**サービスリンクロールを IAM で手動削除するには**

IAM コンソール、、 AWS CLIまたは AWS API を使用して、AWSServiceRoleForDMSFleetAdvisor サービスにリンクされたロールを削除します。詳細については、「*IAM ユーザーガイド*」の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。

## Fleet Advisor AWS DMS サービスにリンクされたロールでサポートされているリージョン
<a name="slr-regions-fa"></a>

AWS DMS Fleet Advisor は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートしています。詳細については、「[サポートされる AWS リージョン](CHAP_FleetAdvisor.md#CHAP_FleetAdvisor.SupportedRegions)」を参照してください。

# のサービスにリンクされたロール AWS DMS
<a name="slr-services-sl"></a>

AWS DMS は、**AWSServiceRoleForDMSServerless** という名前のサービスにリンクされたロールを使用します。 は、このサービスにリンクされたロール AWS DMS を使用して、ユーザーに代わって AWS DMS リソースを作成および管理します。 は、このロールを自動インスタンス管理 AWS DMS に使用するため、レプリケーションを管理するだけで済みます。

[AWSServiceRoleForDMSServerless](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) サービスにリンクされたロールは、次のサービスを信頼してロールを引き受けます。
+ `dms.amazonaws.com`

ユーザー、グループ、ロールなどの IAM エンティティがサービスにリンクされたロールを作成、編集、削除できるようにするには、アクセス許可を設定する必要があります。詳細については*IAM ユーザーガイド* の「[サービスにリンクされた役割のアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## のサービスにリンクされたロールの作成 AWS DMS
<a name="create-slr-sl"></a>

レプリケーションタスクを開始するか、移行前評価を開始すると、 はサービスにリンクされたロールを AWS DMS AWS DMS プログラムで作成します。このロールは IAM コンソールで確認できます。このロールは手動で作成することもできます。ロールを手動で作成するには、IAM コンソールを使用して、**[DMS]** でサービスにリンクされたロールを作成します。 AWS CLI または AWS API で、サービス名`dms.amazonaws.com`に を使用してサービスにリンクされたロールを作成します。詳細については、「**IAM ユーザーガイド」の「[サービスにリンクされたロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。

**注記**  
アカウントにレプリケーションがある場合にロールを削除すると、レプリケーションは失敗します。

## のサービスにリンクされたロールの編集 AWS DMS
<a name="edit-slr-sl"></a>

AWS DMS では、AWSServiceRoleForDMSServerless サービスにリンクされたロールを編集することはできません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロール記述の編集はできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## のサービスにリンクされたロールの削除 AWS DMS
<a name="delete-slr-sl"></a>

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。これにより、アクティブにモニタリングまたはメンテナンスされない未使用のエンティティを低減できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。

**注記**  
リソースを削除しようとしたときに AWS DMS サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は数分待ってから操作を再試行してください。

**AWSServiceRoleForDMSServerless で使用される AWS DMS リソースを削除するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

1. ナビゲーションペインの ****[データの移行]**** で **[サーバーレスレプリケーション]** を選択します。**[サーバーレス]** ページが開きます。

1. サーバーレスレプリケーションを選択して、**[削除]** をクリックします。

1. 削除を確認するには、テキスト入力フィールドにサーバーレスレプリケーション名を入力します。次に、**[削除]** を選択します。

すべてのサーバーレスレプリケーションを削除したら、サービスにリンクされたロールを削除できます。

**サービスリンクロールを IAM で手動削除するには**

IAM コンソール、 AWS CLI、または AWS API を使用して、AWSServiceRoleForDMSServerless サービスにリンクされたロールを削除します。詳細については、「*IAM ユーザーガイド*」の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。

## AWS DMS サービスにリンクされたロールでサポートされているリージョン
<a name="slr-regions-sl"></a>

AWS DMS は、サービスが利用可能なすべてのリージョンでサービスにリンクされたロールの使用をサポートします。

# AWS Database Migration Service ID とアクセスのトラブルシューティング
<a name="security_iam_troubleshoot"></a>

次の情報は、 および IAM の使用時に発生する可能性がある一般的な問題の診断 AWS DMS と修正に役立ちます。

**Topics**
+ [でアクションを実行する権限がありません AWS DMS](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole を実行する権限がありません](#security_iam_troubleshoot-passrole)
+ [管理者として、他のユーザーにアクセスを許可したい AWS DMS](#security_iam_troubleshoot-admin-delegate)
+ [自分の AWS アカウント以外のユーザーに自分の AWS DMS リソースへのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)

## でアクションを実行する権限がありません AWS DMS
<a name="security_iam_troubleshoot-no-permissions"></a>

にアクションを実行する権限がないと AWS マネジメントコンソール 通知された場合は、管理者に連絡してサポートを依頼する必要があります。担当の管理者はお客様のユーザー名とパスワードを発行した人です。

次の例のエラーは、IAM `mateojackson` ユーザーがコンソールを使用して DMS AWS エンドポイントの詳細を表示しようとしているが、 アクセス`dms: DescribeEndpoint`許可がない場合に発生します。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: dms:DescribeEndpoint on resource: my-postgresql-target
```

この場合、Mateo は、`dms:DescribeEndpoint` アクションを使用して `my-postgresql-target` エンドポイントにアクセスできるように、ポリシーの更新を管理者に依頼します。

## iam:PassRole を実行する権限がありません
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して AWS DMSにロールを渡すことができるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、既存のロールをそのサービスに渡すことができます。そのためには、サービスにロールを渡す権限が必要です。

以下の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して AWS DMSでアクションを実行しようとする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与された権限が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン資格情報を提供した担当者が管理者です。

## 管理者として、他のユーザーにアクセスを許可したい AWS DMS
<a name="security_iam_troubleshoot-admin-delegate"></a>

他のユーザーにアクセスを許可するには AWS DMS、アクセスを必要とするユーザーまたはアプリケーションにアクセス許可を付与する必要があります。 AWS IAM アイデンティティセンター を使用してユーザーとアプリケーションを管理する場合は、アクセスレベルを定義するアクセス許可セットをユーザーまたはグループに割り当てます。アクセス許可セットは、ユーザーまたはアプリケーションに関連付けられている IAM ロールに自動的に IAM ポリシーを作成して割り当てます。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セット](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)」を参照してください。

IAM アイデンティティセンターを使用していない場合は、アクセスを必要としているユーザーまたはアプリケーションの IAM エンティティ (ユーザーまたはロール) を作成する必要があります。次に、 AWS DMSの適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要があります。アクセス許可が付与されたら、ユーザーまたはアプリケーション開発者に認証情報を提供します。これらの認証情報を使用して AWSにアクセスします。IAM ユーザー、グループ、ポリシー、アクセス許可の作成の詳細については、「*IAM ユーザーガイド*」の「[IAM アイデンティティ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」と「[IAM のポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)」を参照してください。

## 自分の AWS アカウント以外のユーザーに自分の AWS DMS リソースへのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください:
+ がこれらの機能 AWS DMS をサポートしているかどうかを確認するには、「」を参照してください[が IAM と AWS Database Migration Service 連携する方法](security_iam_service-with-iam.md)。
+ 所有 AWS アカウント している のリソースへのアクセスを提供する方法については、[「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)」を参照してください。 **
+ リソースへのアクセスをサードパーティーに提供する方法については AWS アカウント、*IAM ユーザーガイド*の[「サードパーティー AWS アカウント が所有する へのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)」を参照してください。
+ ID フェデレーションを介してアクセスを提供する方法については、*IAM ユーザーガイド* の [外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) を参照してください。
+ クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、*IAM ユーザーガイド* の [IAM でのクロスアカウントのリソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## を使用するために必要な IAM アクセス許可 AWS DMS
<a name="CHAP_Security.IAMPermissions"></a>

 AWS DMSを使用するには、特定の IAM アクセス許可と IAM ロールを使用します。IAM ユーザーとしてサインインしていて、 を使用する場合 AWS DMS、アカウント管理者は、このセクションで説明するポリシーを実行に使用する IAM ユーザー、グループ、またはロールにアタッチする必要があります AWS DMS。IAM アクセス許可の詳細については、『[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html)』をご参照ください。

次のポリシーでは、IAM AWS DMS、Amazon EC2 AWS KMS、Amazon CloudWatch などの他の Amazon サービスから必要な特定のアクションへのアクセスとアクセス許可を付与します。 Amazon EC2 CloudWatch は AWS DMS 移行をリアルタイムでモニタリングし、移行の進行状況を示すメトリクスを収集して追跡します。CloudWatch ログを使用すると、タスクの問題をデバッグできます。

**注記**  
タグ付けを使用して AWS DMS リソースへのアクセスをさらに制限できます。タグ付けを使用して AWS DMS リソースへのアクセスを制限する方法の詳細については、「」を参照してください[リソース名とタグを使用したファイングレインアクセスコントロール](CHAP_Security.FineGrainedAccess.md)。

------
#### [ JSON ]

****  

```
{

  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:ListAliases",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "arn:aws:iam::123456789012:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "dms.amazonaws.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:Get*",
        "cloudwatch:List*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
      ],
      "Resource": "arn:aws:logs:*:123456789012:*"
    }
  ]
}
```

------

これらの以下のアクセス許可明細は、それぞれのアクセス許可が必要な理由を理解するうえで役立ちます。

ユーザーが AWS DMS API オペレーションを呼び出せるようにするには、次のセクションが必要です。

```
{
            "Effect": "Allow",
            "Action": "dms:*",
            "Resource": "arn:aws:dms:region:account:resourcetype/id"
}
```

次のセクションは、コンソールに表示するために使用可能な AWS KMS キーとエイリアスをユーザーが一覧表示できるようにするために必要です。このエントリは、KMS キーの Amazon リソースネーム (ARN) がわかっていて AWS Command Line Interface 、() のみを使用している場合は必要ありませんAWS CLI。

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

次のセクションは、エンドポイントとともに IAM ロールの ARN を渡す必要がある特定のエンドポイントタイプに必要になります。さらに、必要な AWS DMS ロールが事前に作成されていない場合、 AWS DMS コンソールでロールを作成できます。すべてのロールが事前に設定されている場合、必要なものは `iam:GetRole` および `iam:PassRole` のみです。ロールの詳細については、「[で使用する IAM ロールの作成 AWS DMS](#CHAP_Security.APIRole)」をご参照ください。

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

は Amazon EC2 インスタンスを作成し、作成されたレプリケーションインスタンスのネットワークを設定する AWS DMS 必要があるため、次のセクションは必須です。これらのリソースはお客様のアカウント内に存在するため、お客様に代わってこれらのアクションを実行できる必要があります。

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

次のセクションは、ユーザーがレプリケーション インスタンスのメトリクスを表示することを許可するために必要です。

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

このセクションは、ユーザーがレプリケーションログを表示することを許可するために必要です。

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

 移行に AWS DMS コンソール、 AWS Command Line Interface (AWS CLI)、または AWS DMS API を使用する場合は、アカウントに複数のロールを追加する必要があります。これらのロールの追加についての詳細は、「[で使用する IAM ロールの作成 AWS DMS](#CHAP_Security.APIRole)」をご参照ください。

## で使用する IAM ロールの作成 AWS DMS
<a name="CHAP_Security.APIRole"></a>

データベース移行に AWS DMS コンソール、、 AWS CLI または AWS DMS API を使用する場合は、 の機能を使用する前に、 AWS アカウントに 3 つの IAM ロールを追加する必要があります AWS DMS。これらのロールのうち 2 つは `dms-vpc-role` と `dms-cloudwatch-logs-role` です。Amazon Redshift をターゲットデータベースとして使用する場合は、`dms-access-for-endpoint` AWS アカウントに IAM ロールも追加する必要があります。

管理ポリシーの更新は自動です。IAM ロールでカスタムポリシーを使用する場合、このドキュメントで管理ポリシーの更新事項がないか定期的に確認してください。管理ポリシーの詳細は、`get-policy` コマンドと `get-policy-version` コマンドを組み合わせて使用して表示できます。

たとえば、次の `get-policy` コマンドは、指定された IAM ロールに関する情報を取得します。

```
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
```

コマンドから返される情報は、次のとおりです。

```
{
    "Policy": {
        "PolicyName": "AmazonDMSVPCManagementRole",
        "PolicyId": "ANPAJHKIGMBQI4AEFFSYO",
        "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole",
        "Path": "/service-role/",
        "DefaultVersionId": "v4",
        "AttachmentCount": 1,
        "PermissionsBoundaryUsageCount": 0,
        "IsAttachable": true,
        "Description": "Provides access to manage VPC settings for AWS managed customer configurations",
        "CreateDate": "2015-11-18T16:33:19+00:00",
        "UpdateDate": "2024-07-25T15:19:01+00:00",
        "Tags": []
    }
}
```

次の `get-policy-version` コマンドは、IAM ポリシー情報を取得します。

```
aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole --version-id v4
```

コマンドから返される情報は、次のとおりです。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ExampleStatementID",
        "Effect": "Allow",
        "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:ModifyNetworkInterfaceAttribute"
        ],
        "Resource": "*"
      }
    ]
}
```

------

同じコマンドを使用して、`AmazonDMSRedshiftS3Role` および `AmazonDMSCloudWatchLogsRole` 管理ポリシーに関する情報を取得できます。

次の手順では、`dms-vpc-role`、`dms-cloudwatch-logs-role`、および `dms-access-for-endpoint` の各 IAM ロールを作成します。

**AWS CLI または AWS DMS API で使用する dms-vpc-role IAM ロールを作成するには**

1.  次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに `dmsAssumeRolePolicyDocument.json` という名前を付けます。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
           "Service": "dms.amazonaws.com"
        },
      "Action": "sts:AssumeRole"
      }
    ]
   }
   ```

------

    次のコマンドを使用して、 AWS CLI を使用してロールを作成します。

   ```
   aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json                    
   ```

1.  次のコマンドを使用して `AmazonDMSVPCManagementRole` ポリシーを `dms-vpc-role` にアタッチします。

   ```
   aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole                    
   ```

**AWS CLI または AWS DMS API で使用する dms-cloudwatch-logs-role IAM ロールを作成するには**

1.  次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに `dmsAssumeRolePolicyDocument2.json` という名前を付けます。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
           "Service": "dms.amazonaws.com"
        },
      "Action": "sts:AssumeRole"
      }
    ]
   }
   ```

------

    次のコマンドを使用して、 AWS CLI を使用してロールを作成します。

   ```
   aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json                    
   ```

1.  次のコマンドを使用して `AmazonDMSCloudWatchLogsRole` ポリシーを `dms-cloudwatch-logs-role` にアタッチします。

   ```
   aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole                    
   ```

Amazon Redshift をターゲットデータベースとして使用する場合は、IAM ロール `dms-access-for-endpoint` を作成して Amazon S3 へのアクセスを可能にする必要があります。

**ターゲット データベースとしての Amazon Redshift で使用する IAM ロール dms-access-for-endpoint を作成するには**

1. 次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに `dmsAssumeRolePolicyDocument3.json` という名前を付けます。

------
#### [ JSON ]

****  

   ```
    {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "1",
         "Effect": "Allow",
         "Principal": {
           "Service": "dms.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       },
       {
         "Sid": "2",
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1.  次のコマンドを使用して、 AWS CLI を使用してロールを作成します。

   ```
     aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json                   
   ```

1.  次のコマンドを使用して `AmazonDMSRedshiftS3Role` ポリシーを `dms-access-for-endpoint` ロールにアタッチします。

   ```
   aws iam attach-role-policy --role-name dms-access-for-endpoint \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role
   ```

これで、 AWS CLI または AWS DMS API を使用するための IAM ポリシーが設定されました。

# サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐため、 AWS では、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルで、すべてのサービスのデータを保護するために役立つツールを提供しています。

リソースポリシーで [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用して、 がリソースに別のサービス AWS Database Migration Service に付与するアクセス許可を制限することをお勧めします。`aws:SourceArn` 値に AWS DMS レプリケーションインスタンス名 (ARN) などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用してアクセス権限を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID に`aws:SourceArn` の値が含まれていない場合、`aws:SourceAccount` 値と `aws:SourceArn` 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

AWS DMS は 3.4.7 以降の混乱した代理オプションをサポートしています。詳細については、「[AWS Database Migration Service 3.4.7 リリースノート](CHAP_ReleaseNotes.md#CHAP_ReleaseNotes.DMS347)」を参照してください。レプリケーションインスタンスが AWS DMS 3.4.6 以前のバージョンを使用している場合は、混乱した代理オプションを設定する前に必ず最新バージョンにアップグレードしてください。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して、`aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー `aws:SourceArn` で、ARN の未知部分を示すためにワイルドカード文字 (`*`) を使用します。例えば、`arn:aws:dms:*:123456789012:rep:*`。

**Topics**
+ [サービス間の混乱した代理防止のために AWS DMS API で使用する IAM ロール](#cross-service-confused-deputy-prevention-dms-api)
+ [サービス間の混乱を防ぐために Amazon S3 にプリフライト評価を保存する IAM ポリシー](#cross-service-confused-deputy-prevention-s3)
+ [サービス間の混乱した代理防止 AWS DMS のための でのターゲットエンドポイントとしての Amazon DynamoDB の使用](#cross-service-confused-deputy-prevention-dynamodb)

## サービス間の混乱した代理防止のために AWS DMS API で使用する IAM ロール
<a name="cross-service-confused-deputy-prevention-dms-api"></a>

データベース移行に AWS CLI または AWS DMS API を使用するには、 の機能を使用する前に `dms-vpc-role`および `dms-cloudwatch-logs-role` IAM ロールを AWS アカウントに追加する必要があります AWS DMS。詳細については、「[で使用する IAM ロールの作成 AWS DMS](security-iam.md#CHAP_Security.APIRole)」を参照してください。

次の例は、`my-replication-instance` レプリケーションインスタンスで `dms-vpc-role` ロールを使用する際のポリシーを示しています。これらのポリシーを使用して、混乱した代理問題を防止します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Sid": "AllowDMSAssumeRole",
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "111122223333"
         },
         "ArnLike": {
             "aws:SourceArn": "arn:aws:dms:*:123456789012:*"
         }
      }
    }
  ]
}
```

------

## サービス間の混乱を防ぐために Amazon S3 にプリフライト評価を保存する IAM ポリシー
<a name="cross-service-confused-deputy-prevention-s3"></a>

事前評価の結果を S3 バケットに保存するには、Amazon S3 のオブジェクトの管理を許可する AWS DMS IAM ポリシーを作成します。詳細については、「[IAM リソースを作成する](CHAP_Tasks.AssessmentReport.Prerequisites.md#CHAP_Tasks.AssessmentReport.Prerequisites.IAM)」を参照してください。

次の例は、指定されたユーザーアカウントですべてのタスクと評価の実行へのアクセス AWS DMS を に許可する IAM ロールに設定されている混乱した代理条件を持つ信頼ポリシーを示しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
            "aws:SourceArn": [
                "arn:aws:dms:*:123456789012:assessment-run:*",
                "arn:aws:dms:*:123456789012:task:*"
          ]
        }
      }
    }
  ]
}
```

------

## サービス間の混乱した代理防止 AWS DMS のための でのターゲットエンドポイントとしての Amazon DynamoDB の使用
<a name="cross-service-confused-deputy-prevention-dynamodb"></a>

Amazon DynamoDB をデータベース移行のターゲットエンドポイントとして使用するには、 が DynamoDB テーブルを AWS DMS 引き受けてアクセスを許可する IAM ロールを作成する必要があります。その後、 AWS DMSでターゲットの DynamoDB エンドポイントを作成する際に、このロールを使用します。詳細については、「[ターゲットとしての Amazon DynamoDB の使用](CHAP_Target.DynamoDB.md)」を参照してください。

次の例は、すべての AWS DMS エンドポイントが DynamoDB テーブルにアクセスできるようにする IAM ロールに設定されている混乱した代理条件を持つ信頼ポリシーを示しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
      "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
        "aws:SourceArn": [
            "arn:aws:dms:*:123456789012:assessment-run:*",
            "arn:aws:dms:*:123456789012:task:*"
            ]
         }
      }
    }
  ]
}
```

------

# AWS の 管理ポリシー AWS Database Migration Service
<a name="security-iam-awsmanpol"></a>

**Topics**
+ [AWS マネージドポリシー: AmazonDMSVPCManagementRole](#security-iam-awsmanpol-AmazonDMSVPCManagementRole)
+ [AWS マネージドポリシー: AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy)
+ [AWS マネージドポリシー: AmazonDMSCloudWatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole)
+ [AWS マネージドポリシー: AWSDMSFleetAdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy)
+ [AWS マネージドポリシー: AmazonDMSRedshiftS3Role](#security-iam-awsmanpol-AmazonDMSRedshiftS3Role)
+ [AWS DMS AWS 管理ポリシーの更新](#security-iam-awsmanpol-updates)

## AWS マネージドポリシー: AmazonDMSVPCManagementRole
<a name="security-iam-awsmanpol-AmazonDMSVPCManagementRole"></a>

このポリシーは `dms-vpc-role`ロールにアタッチされ、 がユーザーに代わってアクションを実行 AWS DMS できるようにします。

このポリシーは、 がネットワークリソースを管理できるようにする寄稿者アクセス許可を付与 AWS DMS します。

**アクセス許可の詳細**

このポリシーには、次の操作が含まれます。
+ `ec2:CreateNetworkInterface` – ネットワークインターフェイスを作成するには、このアクセス許可 AWS DMS が必要です。 AWS DMS レプリケーションインスタンスがソースおよびターゲットデータベースに接続するには、これらのインターフェイスは不可欠です。
+ `ec2:DeleteNetworkInterface` – 不要になったネットワークインターフェイスをクリーンアップするには、このアクセス許可 AWS DMS が必要です。これは、リソース管理と不必要なコストの回避に役立ちます。
+ `ec2:DescribeAvailabilityZones` - このアクセス許可により、 AWS DMS はリージョン内のアベイラビリティーゾーンに関する情報を取得できます。 AWS DMS はこの情報を使用して、冗長性と可用性のために正しいゾーンにリソースをプロビジョニングします。
+ `ec2:DescribeDhcpOptions` – 指定された VPC の DHCP オプションセットの詳細 AWS DMS を取得します。この情報は、レプリケーションインスタンスにネットワークを正しく設定するために必要です。
+ `ec2:DescribeInternetGateways` – VPC で設定されたインターネットゲートウェイを理解するために、このアクセス許可が必要になる AWS DMS 場合があります。この情報は、レプリケーションインスタンスまたはデータベースにインターネットアクセスが必要な場合に不可欠です。
+ `ec2:DescribeNetworkInterfaces` – VPC 内の既存のネットワークインターフェイスに関する情報 AWS DMS を取得します。この情報は、 AWS DMS がネットワークインターフェイスを正しく設定し、移行プロセスに適したネットワーク接続を確保するために必要です。
+ `ec2:DescribeSecurityGroups` – セキュリティグループは、インスタンスとリソースへのインバウンドトラフィックとアウトバウンドトラフィックを制御します。 は、ネットワークインターフェイスを正しく設定し、レプリケーションインスタンスとデータベース間の適切な通信を確保するために、セキュリティグループを記述 AWS DMS する必要があります。
+ `ec2:DescribeSubnets` – このアクセス許可により AWS DMS 、 は VPC 内のサブネットを一覧表示できます。 はこの情報 AWS DMS を使用して、適切なサブネットでレプリケーションインスタンスを起動し、必要なネットワーク接続を確保します。
+ `ec2:DescribeVpcs` - VPC の記述は、 AWS DMS がレプリケーションインスタンスとデータベースが配置されているネットワーク環境を理解するために不可欠です。これには、CIDR ブロックやその他の VPC 固有の設定を知ることが含まれます。
+ `ec2:ModifyNetworkInterfaceAttribute` – このアクセス許可は、 が管理するネットワークインターフェイスの属性を変更 AWS DMS するために必要です。これには、接続とセキュリティを確保するための設定の調整が含まれる場合があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Sid": "Statement1",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface",
				"ec2:DeleteNetworkInterface",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeDhcpOptions",
				"ec2:DescribeInternetGateways",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "*"
		}
    ]
}
```

------

## AWS マネージドポリシー: AWSDMSServerlessServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy"></a>

このポリシーは `AWSServiceRoleForDMSServerless`ロールにアタッチされ、 がユーザーに代わってアクションを実行 AWS DMS できるようにします。詳細については、「[のサービスにリンクされたロール AWS DMS](slr-services-sl.md)」を参照してください。

このポリシーは、 がレプリケーションリソースを管理できるようにする寄稿者アクセス許可を付与 AWS DMS します。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。
+ **AWS DMS** – プリンシパルが AWS DMS リソースとやり取りできるようにします。
+ **Amazon S3** – DMS が移行前評価を保存するための S3 バケットを作成できるようにします。S3 バケットはリージョンごとに 1 人のユーザーに対して作成され、そのバケットポリシーはアクセスをサービスのサービスロールのみに制限します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "id0",
            "Effect": "Allow",
            "Action": [
                "dms:CreateReplicationInstance",
                "dms:CreateReplicationTask"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:req-tag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id1",
            "Effect": "Allow",
            "Action": [
                "dms:DescribeReplicationInstances",
                "dms:DescribeReplicationTasks"
            ],
            "Resource": "*"
        },
        {
            "Sid": "id2",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTask",
                "dms:StopReplicationTask",
                "dms:ModifyReplicationTask",
                "dms:DeleteReplicationTask",
                "dms:ModifyReplicationInstance",
                "dms:DeleteReplicationInstance"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id3",
            "Effect": "Allow",
            "Action": [
                "dms:TestConnection",
                "dms:DeleteConnection"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:endpoint:*"
            ]
        },
        {
            "Sid": "id4",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id5",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id6",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTaskAssessmentRun"
            ],
            "Resource": [
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

## AWS マネージドポリシー: AmazonDMSCloudWatchLogsRole
<a name="security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole"></a>

このポリシーは `dms-cloudwatch-logs-role`ロールにアタッチされ、 がユーザーに代わってアクションを実行 AWS DMS できるようにします。詳細については、「[のサービスにリンクされたロールの使用 AWS DMS](using-service-linked-roles.md)」を参照してください。

このポリシーは、 が CloudWatch Logs AWS DMS にレプリケーションログを発行できるようにする寄稿者アクセス許可を付与します。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。




+ `logs` – プリンシパルにログを CloudWatch Logs に公開することを許可します。このアクセス許可は、 AWS DMS が CloudWatch を使用してレプリケーションログを表示できるようにするために必要です。



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeOnAllLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AllowDescribeOfAllLogStreamsOnDmsTasksLogGroup",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        },
        {
            "Sid": "AllowUploadOfLogEventsToDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        }
    ]
}
```

------

## AWS マネージドポリシー: AWSDMSFleetAdvisorServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy"></a>





AWSDMSFleetAdvisorServiceRolePolicy を IAM エンティティにアタッチすることはできません。このポリシーは、Fleet AWS DMS Advisor がユーザーに代わってアクションを実行できるようにするサービスにリンクされたロールにアタッチされます。詳細については、「[のサービスにリンクされたロールの使用 AWS DMS](using-service-linked-roles.md)」を参照してください。



このポリシーは、Fleet Advisor AWS DMS が Amazon CloudWatch メトリクスを発行できるようにする寄稿者アクセス許可を付与します。



**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。




+ `cloudwatch` – プリンシパルがメトリクスのデータポイントを Amazon CloudWatch に公開することを許可します。このアクセス許可は、Fleet Advisor AWS DMS が CloudWatch を使用してデータベースメトリクスを含むグラフを表示できるようにするために必要です。



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

## AWS マネージドポリシー: AmazonDMSRedshiftS3Role
<a name="security-iam-awsmanpol-AmazonDMSRedshiftS3Role"></a>

このポリシーは、 が Redshift エンドポイントの S3 設定を管理 AWS DMS できるようにするアクセス許可を提供します。

**アクセス許可の詳細**

このポリシーには、次の操作が含まれます。
+ `s3:CreateBucket` - DMS が「dms-」プレフィックスを持つ S3 バケットを作成することを許可します
+ `s3:ListBucket` - DMS が「dms-」プレフィックスを持つ S3 バケットの内容を一覧表示することを許可します
+ `s3:DeleteBucket ` - DMS が「dms-」プレフィックスを持つ S3 バケットを削除することを許可します
+ `s3:GetBucketLocation` - DMS が S3 バケットがあるリージョンを取得することを許可します
+ `s3:GetObject` - DMS が「dms-」プレフィックスを持つ S3 バケットからオブジェクトを取得することを許可します
+ `s3:PutObject` - DMS が「dms-」プレフィックスを使用して S3 バケットにオブジェクトを追加することを許可します
+ `s3:DeleteObject` - DMS が「dms-」プレフィックスを持つ S3 バケットからオブジェクトを削除することを許可します
+ `s3:GetObjectVersion` - DMS がバージョニングされたバケット内の特定のバージョンのオブジェクトを取得することを許可します
+ `s3:GetBucketPolicy` - DMS がバケットポリシーを取得することを許可します
+ `s3:PutBucketPolicy` - DMS がバケットポリシーを作成または更新することを許可します
+ `s3:GetBucketAcl` - DMS がバケットアクセスコントロールリスト (ACL) を取得することを許可します
+ `s3:PutBucketVersioning` - DMS がバケットのバージョニングを有効化または停止することを許可します
+ `s3:GetBucketVersioning` - DMS がバケットのバージョニングステータスを取得することを許可します
+ `s3:PutLifecycleConfiguration` - DMS がバケットのライフサイクルルールを作成または更新することを許可します
+ `s3:GetLifecycleConfiguration` - DMS がバケット用に設定されたライフサイクルルールを取得することを許可します
+ `s3:DeleteBucketPolicy` - DMS がバケットポリシーを削除することを許可します

これらのアクセス許可はすべて、ARN パターン「`arn:aws:s3:::dms-*`」を持つリソースにのみ適用されます。

**JSON ポリシードキュメント**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:ListBucket", 
        "s3:DeleteBucket",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObjectVersion",
        "s3:GetBucketPolicy",
        "s3:PutBucketPolicy",
        "s3:GetBucketAcl",
        "s3:PutBucketVersioning",
        "s3:GetBucketVersioning",
        "s3:PutLifecycleConfiguration",
        "s3:GetLifecycleConfiguration",
        "s3:DeleteBucketPolicy"
      ],
      "Resource": "arn:aws:s3:::dms-*"
    }
  ]
}
```

------





## AWS DMS AWS 管理ポリシーの更新
<a name="security-iam-awsmanpol-updates"></a>



このサービスがこれらの変更の追跡を開始 AWS DMS してからの の AWS 管理ポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートについては、 AWS DMS ドキュメント履歴ページの RSS フィードにサブスクライブしてください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) – 変更  |  AWS DMS が更新され`AWSDMSServerlessServiceRolePolicy`、DMS が S3 バケットを作成し、DMS サーバーレスに関連しないレプリケーションタスクの移行前評価結果をそれらのバケットに配置することができるようになりました。  | 2025 年 11 月 5 日 | 
|  [AWS DMS Serverless のサービスにリンクされたロール](slr-services-sl.md) – 変更  |  AWS DMS は`AWSDMSServerlessServiceRolePolicy`、移行前評価の実行をサポート`dms:StartReplicationTaskAssessmentRun`できるように更新されました。 AWS DMS また、サーバーレスサービスにリンクされたロールを更新して S3 バケットを作成し、移行前評価結果をそれらのバケットに配置しました。  | 2025 年 2 月 14 日 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) – 変更  |  AWS DMS `dms:ModifyReplicationTask`は、レプリケーションタスクを変更するために `ModifyReplicationTask`オペレーションを呼び出すために AWS DMS Serverless が必要とする を追加しました。 `dms:ModifyReplicationInstance` は、レプリケーションインスタンスを変更するために `ModifyReplicationInstance`オペレーションを呼び出すために AWS DMS Serverless が必要とする AWS DMS を追加しました。  | 2025 年 1 月 17 日 | 
|  [AmazonDMSVPCManagementRole](#security-iam-awsmanpol-AmazonDMSVPCManagementRole) - 変更  |  AWS DMS がユーザーに代わってネットワーク設定を管理できるようにする `ec2:DescribeDhcpOptions`および AWS DMS `ec2:DescribeNetworkInterfaces`オペレーションが追加されました。  | 2024 年 6 月 17 日 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) – 新しいポリシー  |  AWS DMS に、Amazon CloudWatch メトリクスの公開など、 がユーザーに代わってサービスを作成および管理 AWS DMS することを許可する `AWSDMSServerlessServiceRolePolicy`ロールが追加されました。  | 2023 年 5 月 22 日 | 
|  [AmazonDMSCloudWatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole) – 変更  |  AWS DMS は、サーバーレスレプリケーション設定から CloudWatch Logs への AWS DMS レプリケーションログのアップロードを許可するために、付与された各アクセス許可にサーバーレスリソースの ARN を追加しました。  | 2023 年 5 月 22 日 | 
|  [AWSDMSFleetAdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy) – 新しいポリシー  |  AWS DMS Fleet Advisor は、メトリクスデータポイントを Amazon CloudWatch に発行できるようにする新しいポリシーを追加しました。  | 2023 年 3 月 6 日 | 
|  AWS DMS が変更の追跡を開始しました  |  AWS DMS は、 AWS 管理ポリシーの変更の追跡を開始しました。  | 2023 年 3 月 6 日 | 

# のコンプライアンス検証 AWS Database Migration Service
<a name="dms-compliance"></a>

サードパーティーの監査者は、複数の コンプライアンスプログラム AWS Database Migration Service の一環として のセキュリティと AWS コンプライアンスを評価します。これには次のものが含まれます：
+  SOC
+ PCI
+ ISO
+ FedRAMP
+ DoD CC SRG
+ HIPAA BAA
+ MTCS
+ CS
+ K-ISMS
+ ENS High
+ OSPAR
+ HITRUST CSF

特定のコンプライアンスプログラムの対象となる AWS サービスのリストについては、「コンプライアンス[AWS プログラムによる対象範囲内のサービスコンプライアンス](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。一般的な情報については、[AWS 「 コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)」を参照してください。

を使用して、サードパーティーの監査レポートをダウンロードできます AWS Artifact。詳細については、[「アーティファクトでの AWS レポートのダウンロード](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)」を参照してください。

を使用する際のお客様のコンプライアンス責任 AWS DMS は、お客様のデータの機密性、貴社のコンプライアンス目的、適用される法律および規制によって決まります。 では、コンプライアンスに役立つ以下のリソース AWS を提供しています。
+ 「[セキュリティ & コンプライアンス クイックリファレンスガイド](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance)」– これらのデプロイガイドには、アーキテクチャ上の考慮事項の説明と、 AWSでセキュリティとコンプライアンスに重点を置いたベースライン環境をデプロイするためのステップが記載されています。
+ [アマゾン ウェブ サービスでの HIPAA セキュリティとコンプライアンスのための設計ホワイトペーパー ](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) – このホワイトペーパーでは、企業が AWS を使用して HIPAA 準拠のアプリケーションを作成する方法について説明します。
+ [AWS コンプライアンスリソース](https://aws.amazon.com/compliance/resources/) – このワークブックとガイドのコレクションは、お客様の業界や地域に適用される場合があります。
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – この AWS サービスは、リソース設定が社内プラクティス、業界ガイドライン、および規制にどの程度準拠しているかを評価します。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) – この AWS サービスは、 内のセキュリティ状態を包括的に把握 AWS し、セキュリティ業界標準とベストプラクティスへの準拠を確認するのに役立ちます。

# の耐障害性 AWS Database Migration Service
<a name="disaster-recovery-resiliency"></a>

 AWS グローバルインフラストラクチャは、 AWS リージョンとアベイラビリティーゾーンを中心に構築されています。 AWS リージョンは、低レイテンシー、高スループット、および高度に冗長なネットワークで接続された複数の物理的に分離および分離されたアベイラビリティーゾーンを提供します。アベイラビリティーゾーンでは、アベイラビリティーゾーン間で中断せずに、自動的にフェイルオーバーするアプリケーションとデータベースを設計および運用することができます。アベイラビリティーゾーンは、従来の単一または複数のデータセンターインフラストラクチャよりも可用性、耐障害性、およびスケーラビリティが優れています。

 AWS リージョンとアベイラビリティーゾーンの詳細については、[AWS 「 グローバルインフラストラクチャ](https://aws.amazon.com/about-aws/global-infrastructure/)」を参照してください。

 AWS グローバルインフラストラクチャに加えて、マルチ AZ オプションを選択すると、 はマルチ **AZ** 配置を使用してレプリケーションインスタンスの高可用性とフェイルオーバーサポート AWS DMS を提供します。

マルチ AZ 配置では、 AWS DMS はレプリケーションインスタンスのスタンバイレプリカを別のアベイラビリティーゾーンに自動的にプロビジョニングおよび維持します。プライマリレプリケーション インスタンスは、同期的にスタンバイレプリカにレプリケートされます。プライマリレプリケーション インスタンスに障害が発生するか、応答しない場合、スタンバイ状態で中断時間をできる限り抑えて、実行中のタスクを再開します。プライマリはその状態を常にスタンバイにレプリケーションしているため、マルチ AZ 配置ではパフォーマンス上のオーバーヘッドが発生します。

マルチ AZ 配置の使用については、「[AWS DMS レプリケーションインスタンスの使用](CHAP_ReplicationInstance.md)」をご参照ください。

# のインフラストラクチャセキュリティ AWS Database Migration Service
<a name="infrastructure-security"></a>

マネージドサービスである AWS Database Migration Service は、 AWS グローバルネットワークセキュリティで保護されています。 AWS セキュリティサービスと がインフラストラクチャ AWS を保護する方法については、[AWS 「 クラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して環境を AWS 設計するには、*「Security Pillar AWS Well‐Architected Framework*」の[「Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)」を参照してください。

 AWS が公開した API コールを使用して、ネットワーク AWS DMS 経由で にアクセスします。クライアントは次をサポートする必要があります。
+ Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
+ DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードは Java 7 以降など、ほとんどの最新システムでサポートされています。

これらの API オペレーションは、任意のネットワークロケーションから呼び出すことができます。 は、リソースベースのアクセスポリシー AWS DMS もサポートしています。これにより、ソース IP アドレスなどに基づいてアクションとリソースの制限を指定できます。さらに、 AWS DMS ポリシーを使用して、特定の Amazon VPC エンドポイントまたは特定の仮想プライベートクラウド (VPCs) からのアクセスを制御できます。これにより、実質的に、ネットワーク内の特定の VPC からのみ、特定の AWS DMS リソースへの AWS ネットワークアクセスが分離されます。でリソースベースのアクセスポリシーを使用する方法の詳細については AWS DMS、「」を参照してください[リソース名とタグを使用したファイングレインアクセスコントロール](CHAP_Security.FineGrainedAccess.md)。

1 つの VPC AWS DMS 内で との通信を制限するには、 AWS DMS を介して に接続できる VPC インターフェイスエンドポイントを作成できます AWS PrivateLink。 AWS PrivateLink は、 への呼び出し AWS DMS とそれに関連する結果が、インターフェイスエンドポイントが作成される特定の VPC に制限されたままになるようにします。その後、 AWS CLI または SDK を使用して実行するすべての AWS DMS コマンドで、このインターフェイスエンドポイントの URL をオプションとして指定できます。これにより、 との通信全体が VPC に限定 AWS DMS され、それ以外の場合はパブリックインターネットに表示されなくなります。

**単一の VPC 内の DMS にアクセスするためのインターフェイスエンドポイントを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) で Amazon VPC コンソールを開きます。

1. ナビゲーションペインで、**[Endpoints]** (エンドポイント) を選択します。これにより、**エンドポイントの作成**ページが開き、VPC から へのインターフェイスエンドポイントを作成できます AWS DMS。

1. **AWS サービス**を選択し、サービス**名**を検索して値を選択します。この場合は、次の形式 AWS DMS になります。

   ```
   com.amazonaws.region.dms
   ```

   ここで、 は が AWS DMS 実行する AWS リージョン*`region`*を指定します。たとえば、 です`com.amazonaws.us-west-2.dms`。

1. **[VPC]** では、例えば `vpc-12abcd34` のように VPC から作成するインターフェイス エンドポイントを選択します。

1. **[Availability Zone]** (アベイラビリティーゾーン) と **[Subnet ID]** (サブネット ID) の値を選択します。これらの値は選択した AWS DMS エンドポイントが実行可能な場所 (例えば `us-west-2a (usw2-az1)` や `subnet-ab123cd4`) を示す必要があります。

1. **[Enable DNS name]** (DNS 名を有効化) を選択して、DNS 名でエンドポイントを作成します。この DNS 名は、ランダムな文字列 (`ab12dc34`) とハイフンでつながれたエンドポイント ID (`vpce-12abcd34efg567hij`) からなります。これらは、ドットで区切られた逆の順序でドットによって、追加された `vpce` (`dms.us-west-2.vpce.amazonaws.com`) とサービス名から区切られます。

   例: `vpce-12abcd34efg567hij-ab12dc34.dms.us-west-2.vpce.amazonaws.com`。

1. **[Security group]** (セキュリティグループ) では、エンドポイントに使用するグループを選択します。

   セキュリティグループを設定する際、そのグループ内からのアウトバウンド HTTPS コールを許可するようにしてください。詳細については、*Amazon VPC ユーザーガイド*の「[セキュリティグループ作成](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)」をご参照ください。

1. **[Full Access]** (完全アクセス) またはカスタム値を **[Policy]** (ポリシー) で選択します。例えば、エンドポイントの特定のアクションとリソースへのアクセスを制限する、次のようなカスタムポリシーを選択できます。

   ```
   {
     "Statement": [
       {
         "Action": "dms:*",
         "Effect": "Allow",
         "Resource": "*",
         "Principal": "*"
       },
       {
         "Action": [
           "dms:ModifyReplicationInstance",
           "dms:DeleteReplicationInstance"
         ],
         "Effect": "Deny",
         "Resource": "arn:aws:dms:us-west-2:<account-id>:rep:<replication-instance-id>",
         "Principal": "*"
       }
     ]
   }
   ```

   ここでは、サンプルポリシーにより、特定のレプリケーションインスタンスの削除または変更を除き、すべての AWS DMS API コールが許可されます。

ステップ 6 でオプションとして作成した DNS 名を使用して形成された URL を指定できるようになりました。作成したインターフェイスエンドポイントを使用してサービスインスタンスにアクセスするには、すべての AWS DMS CLI コマンドまたは API オペレーションにこれを指定します。例えば、以下に示すように、この VPC で DMS CLI コマンド `DescribeEndpoints` を実行することが可能です。

```
$ aws dms describe-endpoints --endpoint-url https://vpce-12abcd34efg567hij-ab12dc34.dms.us-west-2.vpce.amazonaws.com
```

プライベート DNS オプションを有効にすると、エンドポイント URL をリクエストに指定する必要はありません。

VPC インターフェイス エンドポイントの作成と使用 (プライベート DNS オプションの有効化を含む) の詳細については、*Amazon VPC ユーザーガイド*の「[インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)」をご参照ください。

# リソース名とタグを使用したファイングレインアクセスコントロール
<a name="CHAP_Security.FineGrainedAccess"></a>

Amazon リソースネーム (ARNs) に基づくリソース名とリソースタグを使用して、 AWS DMS リソースへのアクセスを管理できます。これを行うには、許可されたアクションを定義するか、条件ステートメントを IAM ポリシーに含めます。

## リソース名を使用したアクセスの制御
<a name="CHAP_Security.FineGrainedAccess.ResourceName"></a>

IAM ユーザーアカウントを作成し、 AWS DMS リソースの ARN に基づいてポリシーを割り当てることができます。

次のポリシーは、ARN *arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV* を使用した AWS DMS レプリケーションインスタンスへのアクセスを拒否します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:rep:DOH67ZTOXGLIXMIHKITV"
        }
    ]
}
```

------

たとえば、このポリシーが有効になっていると、次のコマンドは失敗します。

```
$ aws dms delete-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV

$ aws dms modify-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV
```

 AWS DMS エンドポイントとレプリケーションタスクへのアクセスを制限する IAM ポリシーを指定することもできます。

次のポリシーは、 AWS DMS エンドポイントの ARN を使用してエンドポイントへのアクセスを制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:endpoint:D6E37YBXTNHOA6XRQSZCUGX"
        }
    ]
}
```

------

たとえば、次のコマンドは、エンドポイントの ARN を使用するポリシーが有効になっていると失敗します。

```
$ aws dms delete-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint 
on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX

$ aws dms modify-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"     

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint 
on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX
```

次のポリシーは、 AWS DMS タスクの ARN を使用してタスクへのアクセスを制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:task:UO3YR4N47DXH3ATT4YMWOIT"
        }
    ]
}
```

------

たとえば、次のコマンドは、タスクの ARN を使用するポリシーが有効になっていると失敗します。

```
$ aws dms delete-replication-task 
   --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask 
on resource: arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT
```

## タグを使用したアクセスへのコントロール
<a name="CHAP_Security.FineGrainedAccess.Tags"></a>

AWS DMS は、追加のタグ付け要件なしで、ユーザー定義ポリシーで使用できる共通のキーと値のペアのセットを定義します。 AWS DMS リソースのタグ付けの詳細については、「」を参照してください[AWS Database Migration Service でのリソースへのタグ付け](CHAP_Tagging.md)。

以下は、 で使用できる標準タグの一覧です AWS DMS。
+  aws:CurrentTime – リクエストの日時を表し、一時的な条件に基づいてアクセス制限を許可します。
+  aws:EpochTime – このタグは上記の aws:CurrentTime タグと似ていますが、現在の時刻が Unix エポックからの経過秒数で表されることが異なります。
+  aws:MultiFactorAuthPresent – これはリクエストが多要素認証を介して署名されたかどうかを示すブールタグです。
+  aws:MultiFactorAuthAge – 多要素認証トークンの期間 (秒) へのアクセスを提供します。
+  aws:principaltype - 現在のリクエストに対するプリンシパルのタイプ (ユーザー、アカウント、フェデレーティッドユーザーなど) へのアクセスを提供します。
+  aws:SourceIp - リクエストを発行するユーザーのソース IP アドレスを表します。
+  aws:UserAgent – リソースをリクエストしているクライアントアプリケーションに関する情報を提供します。
+  aws:userid – リクエストを発行しているユーザーの ID へのアクセスを提供します。
+  aws:username – リクエストを発行しているユーザーの名前へのアクセスを提供します。
+  dms:InstanceClass – レプリケーション インスタンスホストのコンピューティングサイズへのアクセスを提供します。
+  dms:StorageSize - ストレージボリュームサイズ (GB) へのアクセスを提供します。

独自のタグを定義することもできます。カスタマー定義のタグは、 AWS タグ付けサービスに保持される単純なキーと値のペアです。このタグを AWS DMS リソース (レプリケーション インスタンス、エンドポイント、タスクを含む) に追加できます。これらのタグはポリシーの IAM「条件」ステートメントを使用してマッチングされ、特定の条件付きタグを使用して参照されます。タグキーにはプレフィックスとして「dms」、リソースタイプ、および「tag」が付きます。以下にタグ形式を示します。

```
dms:{resource type}-tag/{tag key}={tag value}
```

たとえば、タグ「stage=production」を含むレプリケーション インスタンスに対してのみ API コールの成功を許可するポリシーを定義するとします。次の条件ステートメントは、指定されたタグを持つリソースに一致します。

```
"Condition":
{
    "streq":
        {
            "dms:rep-tag/stage":"production"
        }
}
```

次のタグを、このポリシー条件に一致するレプリケーション インスタンスに追加します。

```
stage production
```

 AWS DMS リソースに既に割り当てられているタグに加えて、ポリシーを記述して、特定のリソースに適用できるタグキーと値を制限することもできます。この場合、タグのプレフィックスは「req」です。

たとえば、次のポリシーステートメントは、ユーザーが特定のリソースに割り当てることができるタグを、許可される値の特定のリストに制限します。

```
 "Condition":
{
    "streq":
        {
            "dms:rep-tag/stage": [ "production", "development", "testing" ]
        }
}
```

次のポリシー例では、 AWS DMS リソースタグに基づいて リソースへのアクセスを制限します。

次のポリシーでは、タグの値が「Desktop」、タグキーが「Env」のレプリケーション インスタンスへのアクセスを制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:rep-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

次のコマンドは、タグの値が「Desktop」で、タグキーが「Env」の場合にアクセスを制限する IAM ポリシーに基づいて、成功または失敗します。

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --endpoint-url http://localhost:8000                                   
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN"
A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms modify-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN" 

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --tags Key=CostCenter,Value=1234 

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --tag-keys Env             

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN
```

次のポリシーは、タグ値が「Desktop」で、タグキーが「Env」である AWS DMS エンドポイントへのアクセスを制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:endpoint-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

次のコマンドは、タグの値が「Desktop」で、タグキーが「Env」の場合にアクセスを制限する IAM ポリシーに基づいて、成功または失敗します。

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms modify-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"    

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I 
   --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I 
   --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I
```

次のポリシーでは、タグの値が「Desktop」、タグキーが「Env」のレプリケーションタスクへのアクセスを制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:task-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

次のコマンドは、タグの値が「Desktop」で、タグキーが「Env」の場合にアクセスを制限する IAM ポリシーに基づいて、成功または失敗します。

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-replication-task 
   --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 
   --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 
   --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3
```

## AWS DMS 同種移行の暗号化
<a name="CHAP_Security.Migrations"></a>

AWS DMS 同種移行では、ストレージやその他のコンポーネントなど、データ移行に使用されるリソースも暗号化されます。カスタマーマネージドキーを指定しない場合、 AWS DMS 同種移行は自動的に AWS 所有キーを使用してリソースを暗号化します。

カスタマーマネージドキーを使用すると、 AWS DMS 同種移行によってキーに許可が作成され、サービスが必要に応じてリソースを暗号化および復号できるようになります。これらの許可は、移行ライフサイクルの一部として自動的に管理されます。

**同種移行でのカスタマーマネージドキーの使用**

同種移行にカスタマーマネージドキーを使用するには、 AWS DMS 同種移行を使用するように IAM ユーザーアカウントに付与する必要がある IAM アクセス許可に次のアクセス許可を追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "kms:CreateGrant",
        "kms:DescribeKey",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:ViaService": [
                "dms.us-west-2.amazonaws.com", 
                "elasticfilesystem.us-west-2.amazonaws.com"
            ]
        }
    }
}
```

DMS は、移行プロセス中に暗号化キーにアクセスして管理するための内部権限を作成します。CreateGrant オペレーションをさらに絞り込むために、カスタマーマネージドキーポリシーに次の制限を適用できます。

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "CreateGrant",
        "DescribeKey",
        "Encrypt",
        "Decrypt",
        "RetireGrant",
        "GenerateDataKeyWithoutPlaintext"
      ]
    },
    "StringEquals": {
      "kms:ViaService": [
            "dms.us-west-2.amazonaws.com", 
            "elasticfilesystem.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**重要**  
現時点では、追加の暗号化コンテキスト制約はサポートされていません。このような制約を含めると、移行は失敗します。

## 暗号化キーの設定と AWS KMS アクセス許可の指定
<a name="CHAP_Security.EncryptionKey"></a>

AWS DMS は、レプリケーションインスタンスで使用されるストレージとエンドポイント接続情報を暗号化します。レプリケーションインスタンスで使用されるストレージを暗号化するために、 は AWS アカウントに固有の AWS Key Management Service (AWS KMS) キー AWS DMS を使用します。このキーは で表示および管理できます AWS KMS。アカウント (`aws/dms`) でデフォルトの KMS キーを使用できます。あるいは、カスタム KMS キーを作成できます。既存の KMS キーがある場合、暗号化にそのキーを使用することもできます。

**注記**  
暗号化 AWS KMS キーとして使用するカスタムキーまたは既存のキーは、対称キーである必要があります。 AWS DMS は非対称暗号化キーの使用をサポートしていません。対称キーと非対称キーの使用詳細については、*AWS Key Management Service デベロッパーガイド*の「[https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)」をご参照ください。

レプリケーション インスタンスの初回起動時に、 **レプリケーション インスタンス作成**ページの**アドバンスト**セクションで、カスタム KMS キーを選択していない場合は、デフォルトの KMS キー (`aws/dms`) が作成されます。デフォルトの KMS キーを使用する場合、移行用の IAM ユーザーアカウントにはアクセス許可として `kms:ListAliases` と `kms:DescribeKey` のみを付与する必要があります。デフォルトの KMS キーの使用に関する詳細については、「[を使用するために必要な IAM アクセス許可 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)」をご参照ください。

カスタム KMS キーを使用するには、次のオプションの 1 つを使用して、カスタム KMS キーにアクセス許可を割り当てます。
+ 移行に使用される IAM ユーザーアカウントを、 AWS KMS カスタムキーのキー管理者またはキーユーザーとして追加します。これにより、IAM ユーザーアカウントに必要な AWS KMS 権限が確実に付与されます。このアクションは、 AWS DMSを使用するために IAM ユーザーアカウントに付与する IAM のアクセス許可に追加されます。キーユーザーを許可する詳しい方法については、*AWS Key Management Service デベロッパーガイド* の「[KMS キーの使用をユーザーに許可する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users)」をご参照ください。
+ カスタム KMS キーに対するキー管理者あるいはキーユーザーとして IAM ユーザーアカウントを追加したくない場合、 AWS DMSを使用するために IAM ユーザーアカウントに付与する必要がある IAM のアクセス許可に、次のアクセス許可を追加で付与してください。

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "kms:ListAliases",
                  "kms:DescribeKey",
                  "kms:CreateGrant",
                  "kms:Encrypt",
                  "kms:ReEncrypt*"
              ],
              "Resource": "*"
          },
  ```

AWS DMS は KMS キーエイリアスでも機能します。独自の AWS KMS キーを作成して KMS キーへのユーザーアクセスを許可する方法の詳細については、「*[AWS KMS デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)*」をご参照ください。

KMS キー識別子を指定しない場合、 はデフォルトの暗号化キー AWS DMS を使用します。 は AWS 、アカウントの AWS DMS のデフォルトの暗号化キー AWS KMS を作成します。アカウント AWS には、 AWS リージョンごとに異なるデフォルトの暗号化キーがあります。

 AWS DMS リソースの暗号化に使用される AWS KMS キーを管理するには、 を使用します AWS Key Management Service。 は、安全で可用性の高いハードウェアとソフトウェア AWS KMS を組み合わせて、クラウド向けにスケーリングされたキー管理システムを提供します。を使用すると AWS KMS、暗号化キーを作成し、これらのキーの使用方法を制御するポリシーを定義できます。

**AWS KMS 「」を参照してください。 AWS マネジメントコンソール**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1.  AWS KMS キーを操作するには、次のいずれかのオプションを選択します。
   + が AWS 作成および管理するアカウントのキーを表示するには、ナビゲーションペインでマネージド**AWS キー**を選択します。
   + ユーザーが作成および管理するアカウント内のキーを表示するには、ナビゲーションペインで **[Customer managed keys]** (カスタマーマネージドキー) を選択します。

AWS KMS は をサポートしているため AWS CloudTrail、キーの使用状況を監査して、キーが適切に使用されていることを確認できます。 AWS KMS キーは、Amazon RDS、Amazon S3、Amazon Redshift、Amazon EBS などの および AWS DMS サポートされている AWS サービスと組み合わせて使用できます。

また、カスタム AWS KMS キーを作成して、次の AWS DMS エンドポイントのターゲットデータを暗号化することもできます。
+ Amazon Redshift – 詳細については、「[AWS KMS キーを作成して Amazon Redshift ターゲットデータを暗号化する](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys)」をご参照ください。
+ Amazon S3 – 詳細については、「[Amazon S3 ターゲットオブジェクトを暗号化するための AWS KMS キーの作成](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys)」をご参照ください。

KMS キーを使用して AWS DMS リソースを作成した後は、それらのリソースの暗号化キーを変更することはできません。 AWS DMS リソースを作成する前に、暗号化キーの要件を確認してください。

## のネットワークセキュリティ AWS Database Migration Service
<a name="CHAP_Security.Network"></a>

を使用する際に作成するネットワークのセキュリティ要件は、ネットワークの設定方法 AWS Database Migration Service によって異なります。のネットワークセキュリティの一般的なルール AWS DMS は次のとおりです。
+ レプリケーション インスタンスは、ソースとターゲットのエンドポイントにアクセスできる必要があります。レプリケーション インスタンスのセキュリティグループには、データベースポートでデータベースエンドポイントへの送信をインスタンスに許可するネットワーク ACL またはルールが必要です。
+ データベースエンドポイントには、レプリケーション インスタンスからの受信アクセスを許可するネットワーク ACL およびセキュリティグループルールを含める必要があります。これは、構成に応じて、レプリケーション インスタンスのセキュリティグループ、プライベート IP アドレス、パブリック IP アドレス、または NAT ゲートウェイのパブリックアドレスを使用して実現できます。
+ ネットワークで VPN トンネルが使用されている場合、NAT ゲートウェイとして機能する Amazon EC2 インスタンスは、レプリケーション インスタンスにそのゲートウェイを通じたトラフィックの送信を許可するセキュリティグループを使用する必要があります。

デフォルトでは、 AWS DMS レプリケーションインスタンスで使用される VPC セキュリティグループには、すべてのポートで 0.0.0.0/0 への出力を許可するルールがあります。このセキュリティグループを変更するか、独自のセキュリティグループを使用する場合、少なくとも、対応するデータベースポートでソースおよびターゲットエンドポイントへの送信が許可される必要があります。

データベース移行に使用できるネットワーク構成には、それぞれ固有のセキュリティ上の考慮事項があります。
+  [すべてのデータベース移行コンポーネントが 1 つの VPC にある設定](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioAllVPC) - エンドポイントで使用されるセキュリティグループは、データベースポートでレプリケーション インスタンスからの進入を許可する必要があります。レプリケーション インスタンスによって使用されるセキュリティグループでエンドポイントに侵入可能なことを確認するかまたは、エンドポイントにより使用されるセキュリティグループに、レプリケーション インスタンスのプライベート IP アドレスにアクセスを許可するセキュリティルールを作成できます。
+  [複数の VPC を使用する構成](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer) - レプリケーション インスタンスで使用されるセキュリティグループには、VPC 範囲とデータベースの DB ポートに関するルールが必要です。
+  [Direct Connect または VPN を使用した VPC へのネットワークの設定](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioDirect) - VPC からオンプレミス VPN へのトンネルに向かうトラフィックを許可する VPN トンネル。この設定では、特定の IP アドレスまたは範囲に向かうトラフィックを、VPC からオンプレミス VPN へのトラフィックをブリッジできるホストに送信するルーティングルールが VPC に含まれています。この場合、レプリケーション インスタンスのプライベート IP アドレスまたはセキュリティグループから NAT インスタンスへのトラフィックを許可する必要がある独自のセキュリティグループ設定が NAT ホストに含まれています。
+  [インターネットを使用した VPC へのネットワークの設定](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioInternet) - VPC セキュリティグループには、VPC に向かわないトラフィックをインターネットゲートウェイに送信するルーティングルールが含まれている必要があります。この設定では、エンドポイントへの接続がレプリケーション インスタンス上のパブリック IP アドレスから行われているように見えます。
+  [VPC 内にない RDS; DB インスタンスで ClassicLink を使用する VPC 内の DB インスタンスへの設定方法](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ClassicLink) - ソースまたはターゲットの Amazon RDS DB インスタンスが VPC 内になく、セキュリティグループをレプリケーション インスタンスが存在する VPC と共有していない場合、プロキシサーバーを設定し、ClassicLink を使用してソースおよびターゲットのデータベースに接続できます。
+  **ソース エンドポイントがレプリケーション インスタンスで使用されている VPC の外にあり、NAT のゲートウェイを使用している** - 単一の Elastic network interface にバインドされた単一の Elastic IP アドレスを使用してネットワークアドレス変換 (NAT) ゲートウェイを設定できます。次に、この Elastic network interface は NAT 識別子 (nat-\$1\$1\$1\$1\$1) を受け取ります。インターネットゲートウェイではなくその NAT ゲートウェイへのデフォルトルートが VPC に含まれている場合、レプリケーション インスタンスはインターネットゲートウェイのパブリック IP アドレスを使用してデータベースエンドポイントに接続しているように見えます。この場合、VPC 外のデータベースエンドポイントへの進入は、レプリケーション インスタンスのパブリック IP アドレスではなく NAT アドレスからの進入を許可する必要があります。
+ **非 RDBMS エンジンの VPC エンドポイント** - AWS DMS は、非 RDBMS エンジンの VPC エンドポイントをに対応しません。

# での SSL の使用 AWS Database Migration Service
<a name="CHAP_Security.SSL"></a>

Secure Sockets Layer (SSL) を使用することで、ソースおよびターゲットエンドポイントへの接続を暗号化できます。そのためには、 AWS DMS マネジメントコンソールまたは AWS DMS API を使用して、エンドポイントに証明書を割り当てることができます。 AWS DMS コンソールを使用して証明書を管理することもできます。

どのデータベースも同じ方法で SSL を使用しているとは限りません。Amazon Aurora MySQL 互換エディションは、SSL のエンドポイントとして、サーバー名、クラスター内のプライマリ インスタンスのエンドポイントを使用します。Amazon Redshift エンドポイントではすでに SSL 接続が使用されているため、 AWS DMSによりセットアップされた SSL 接続は必要ありません。Oracle エンドポイントには追加の手順が必要です。詳細については、「[Oracle エンドポイントでの SSL のサポート](CHAP_Source.Oracle.md#CHAP_Security.SSL.Oracle)」をご参照ください。

**Topics**
+ [での SSL の使用に関する制限 AWS DMS](#CHAP_Security.SSL.Limitations)
+ [証明書の管理](#CHAP_Security.SSL.ManagingCerts)
+ [MySQL 互換、PostgreSQL、または SQL Server のエンドポイントでの SSL の有効化](#CHAP_Security.SSL.Procedure)

安全な接続を確立するには、ルート証明書を指定します。または、エンドポイントでサーバーの SSL 証明書の署名に使用された (証明書バンドルとして提供)、ルートにつながる中間 CA 証明書チェーンを指定します。証明書は、PEM 形式の X509 ファイルとしてのみ受け入れられます。証明書をインポートすると、エンドポイントにその証明書を指定するために使用できる Amazon リソースネーム (ARN) を受け取ります。Amazon RDS を使用する場合は、Amazon RDS によってホストされている `rds-combined-ca-bundle.pem` ファイルで提供されているルート CA と証明書バンドルをダウンロードできます。このファイルのダウンロード方法については、*Amazon RDS ユーザーガイド‭* の「[SSL/TLS を使用した DB インスタンス接続の暗号化](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)」をご参照ください。

SSL 証明書認証に使用する SSL モードは、複数の中から選択できます。
+ **none** – 接続は暗号化されていません。このオプションは安全ではありませんが、必要なオーバーヘッドが小さくなります。
+ **require** – 接続は SSL (TLS) を使用して暗号化されますが、CA 検証は行われません。このオプションは安全性が高まりますが、必要なオーバーヘッドが増えます。
+ **verify-ca** – 接続は暗号化されています。このオプションは安全性が高まりますが、必要なオーバーヘッドが増えます。このオプションでは、サーバー証明書が認証されます。
+ **verify-full** – 接続は暗号化されています。このオプションは安全性が高まりますが、必要なオーバーヘッドが増えます。このオプションでは、サーバー証明書が認証され、サーバーのホスト名が証明書のホスト名属性と一致することが確認されます。

すべての SSL モードがすべてのデータベースエンドポイントで機能するわけではありません。次の表は、各データベースエンジンでサポートされている SSL モードを示しています。


|  DB エンジン  |  **なし**  |  **require**  |  **verify-ca**  |  **verify-full**  | 
| --- | --- | --- | --- | --- | 
|  MySQL/MariaDB/Amazon Aurora MySQL  | デフォルト | サポート外 | サポート対象 | サポート | 
|  Microsoft SQL Server  | デフォルト | サポート | サポート外 | サポート | 
|  [PostgreSQL]  | デフォルト | サポート対象 | サポート対象 | サポート | 
|  Amazon Redshift  | デフォルト | SSL が有効でない | SSL が有効でない | SSL が有効でない | 
|  Oracle  | デフォルト | サポート外 | サポート | サポート外 | 
|  SAP ASE  | デフォルト | SSL が有効でない | SSL が有効でない | サポート | 
|  MongoDB  | デフォルト | サポート | サポート外 | サポート | 
|  Db2 LUW  | デフォルト | サポート外 | サポート | サポート外 | 
|  Db2 for z/OS  | デフォルト | サポート外 | サポート | サポート外 | 

**注記**  
DMS コンソールまたは API の SSL モードオプションは、Kinesis や DynamoDB などの一部のデータ ストリーミングおよび NoSQL サービスには適用されません。これらはデフォルトで安全なため、DMS は SSL モードの設定が none と等しくなっていることを示します (**SSL モード=なし**)。SSL を使用するために、エンドポイントに追加の設定は必要ありません。例えば、Kinesis をターゲット エンドポイントとして使用する場合、デフォルトでセキュリティで保護されます。Kinesis への API コールはすべて SSL を使用するため、DMS エンドポイントに追加の SSL オプションは不要です。DMS が Kinesis Data Stream への接続時にデフォルトで使用する HTTPS プロトコルを使用して、SSL エンドポイントを介して安全にデータを保存し取得できます。

## での SSL の使用に関する制限 AWS DMS
<a name="CHAP_Security.SSL.Limitations"></a>

以下は、 での SSL の使用に関する制限です AWS DMS。
+ Amazon Redshift ターゲットエンドポイントへの SSL 接続はサポートされていません。 AWS DMS は Amazon S3 バケットを使用して Amazon Redshift データベースにデータを転送します。この転送は、Amazon Redshift によってデフォルトで暗号化されます。
+ SSL が有効な Oracle エンドポイントで変更データキャプチャ (CDC) タスクを実行すると、SQL タイムアウトが発生することがあります。CDC カウンターに想定の数値が反映されないという問題がある場合は、タスク設定の `ChangeProcessingTuning` セクションの `MinimumTransactionSize` パラメータに小さい値を設定します。最低値 100 から始めることができます。`MinimumTransactionSize` パラメータの詳細については、「[変更処理のチューニング設定](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)」をご参照ください。
+ インポートできる証明書の形式は、.pem 形式および .sso（Oracle ウォレット）形式のみです。
+ 場合によっては、サーバーの SSL 証明書が中間認証局 (CA) によって署名されていることがあります。その場合は、中間 CA からルート CA までの証明書チェーン全体が 1 つの.pem ファイルとしてインポートされていることを確認します。
+ サーバーで自己署名証明書を使用している場合、SSL モードとして [**require**] を選択します。**require** SSL モードでは、サーバーの SSL 証明書が暗黙的に信頼され、証明書が CA により署名されたかどうかの検証は試行されません。
+ AWS DMS は、MySQL および MariaDb エンドポイントの TLS バージョン 1.3 をサポートしていません。

## 証明書の管理
<a name="CHAP_Security.SSL.ManagingCerts"></a>

DMS コンソールを使用すると、SSL 証明書を表示および管理できます。DMS コンソールを使用して証明書をインポートすることもできます。

![\[AWS Database Migration Service SSL 証明書の管理\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-certificatemgr.png)


## MySQL 互換、PostgreSQL、または SQL Server のエンドポイントでの SSL の有効化
<a name="CHAP_Security.SSL.Procedure"></a>

新しく作成したエンドポイントまたは既存のエンドポイントに SSL 接続を追加できます。

**SSL を使用して AWS DMS エンドポイントを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

    AWS Identity and Access Management (IAM) ユーザーとしてサインインしている場合は、 にアクセスするための適切なアクセス許可があることを確認してください AWS DMS。データベース移行に必要なアクセス許可の詳細については、「[を使用するために必要な IAM アクセス許可 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)」をご参照ください。

1. ナビゲーションペインで [**Certificates**] を選択します。

1. [**Import Certificate**] を選択します。

1. エンドポイントへの接続の暗号化に使用する証明書をアップロードします。
**注記**  
データベースエンドポイントの作成ページで新しい CA 証明書を追加を選択して、**エンドポイント**を作成または変更するときに、 AWS DMS コンソールを使用して証明書をアップロードすることもできます。 ****  
ターゲットとして Aurora サーバーレスの場合は、[Aurora サーバーレスでの TLS/SSL の使用](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.tls)に記載されている証明書を取得します。

1. [ステップ 2: ソースとターゲットのエンドポイントを指定する](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Endpoints)での説明に従って、エンドポイントを作成します。

**SSL を使用するように既存の AWS DMS エンドポイントを変更するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

   IAM ユーザーとしてサインインしている場合は、 AWS DMSにアクセスするための適切なアクセス許可があることを確認します。データベース移行に必要なアクセス許可の詳細については、「[を使用するために必要な IAM アクセス許可 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)」をご参照ください。

1. ナビゲーションペインで [**Certificates**] を選択します。

1. [**Import Certificate**] を選択します。

1. エンドポイントへの接続の暗号化に使用する証明書をアップロードします。
**注記**  
データベースエンドポイントの作成ページで新しい CA 証明書を追加を選択して、**エンドポイント**を作成または変更するときに、 AWS DMS コンソールを使用して証明書をアップロードすることもできます。 ****

1. ナビゲーションペインで、[**Endpoints**] を選択し、変更するエンドポイントを選択して [**Modify**] を選択します。

1. **SSL モード**の値を選択します。

   [**verify-ca**] モードまたは [**verify-full**] モードを選択した場合は、次に示すように、使用する証明書を [**CA 証明書**] に指定します。  
![\[AWS Database Migration Service SSL 証明書の管理\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-certificate2.png)

   

1. **[Modify]** (変更) を選択します。

1. エンドポイントが変更されている場合は、エンドポイントを選択して [**接続のテスト**] を選択し、SSL 接続が機能しているかどうかを調べます。

ソースおよびターゲットエンドポイントを作成したら、これらのエンドポイントを使用するタスクを作成します。タスクの作成に関する詳細については、「[ステップ 3: タスクを作成してデータを移行する](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Tasks)」をご参照ください。

## データベースのパスワードの変更
<a name="CHAP_Security.ChangingDBPassword"></a>

ほとんどの状況では、ソースまたはターゲットエンドポイント用のデータベースのパスワードを変更するのは簡単です。移行またはレプリケーションタスクで現在使用しているエンドポイント用のデータベースのパスワードを変更する必要がある場合、そのプロセスで追加のステップが必要になります。以下の手順は、その方法を示しています。

**移行またはレプリケーションタスクでエンドポイント用のデータベースのパスワードを変更するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

   IAM ユーザーとしてサインインしている場合は、 AWS DMSにアクセスするための適切なアクセス許可があることを確認します。必要なアクセス権限の詳細については、「[を使用するために必要な IAM アクセス許可 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)」をご参照ください。

1. ナビゲーションペインで、**[データベース移行タスク]** を選択します。

1. データベースのパスワードを変更するエンドポイントを使用するタスクを選択してから、[**Stop**] を選択します。

1. タスクが停止されている間、データベースの操作に使用するネイティブツールを使用して、エンドポイント用のデータベースのパスワードを変更できます。

1. DMS マネジメントコンソールに戻り、ナビゲーションペインから [**Endpoints**] を選択します。

1. パスワードを変更したデータベースのエンドポイントを選択してから、[**Modify**] を選択します。

1. **[パスワード]** ボックスに新しいパスワードを入力し、**[保存]** を選択します。

1. ナビゲーションペインで、**[データベース移行タスク]** を選択します。

1. 先ほど停止したタスクを選択し、**[再起動/再開]** を選択します。

1. タスクを続行する方法に応じて、**[再起動]** または **[再開]** のいずれかを選択し、**[タスクの開始]** を選択します。

# での Kerberos 認証の使用 AWS Database Migration Service
<a name="CHAP_Security.Kerberos"></a>

DMS v3.5.3 以降では、Kerberos 認証を使用してデータベースインスタンスに接続するように Oracle または SQL Server ソースエンドポイントを設定できます。DMS は、Microsoft Active Directory および Kerberos 認証 Directory Service をサポートしています。Microsoft Active Directory サービスへの AWSマネージドアクセスの詳細については、[「 とは Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)」を参照してください。

## AWS DMS Kerberos 認証アーキテクチャの概要
<a name="CHAP_Security.Kerberos.architecture"></a>

次の図は、Kerberos AWS DMS 認証ワークフローの概要を示しています。

![\[Kerberos 認証アーキテクチャ\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-kerberos-architecture.jpg)


## での Kerberos 認証の使用に関する制限事項 AWS DMS
<a name="CHAP_Security.Kerberos.limitations"></a>

で Kerberos 認証を使用する場合、次の制限が適用されます AWS DMS。
+ DMS レプリケーションインスタンスは、1 つの Kerberos `krb5.conf` ファイルと 1 つのキーキャッシュファイルをサポートします。
+ チケットの有効期限が切れる少なくとも 30 分前に、Secrets Manager で Kerberos キーキャッシュファイルを更新する必要があります。
+ Kerberos 対応 DMS エンドポイントは、Kerberos 対応 DMS レプリケーションインスタンスでのみ機能します。

## 前提条件
<a name="CHAP_Security.Kerberos.prerequisites"></a>

開始するには、既存の Active Directory または Kerberos 認証ホストで要求される次の前提条件を満たす必要があります。
+ オンプレミス AD と Active Directory の信頼関係を確立します。詳細については、[「チュートリアル: AWS Managed Microsoft AD とセルフマネージド Active Directory ドメインの間に信頼関係を作成する](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html)」を参照してください。
+ Kerberos `krb5.conf` 設定ファイルの簡易バージョンを準備します。領域、ドメイン管理サーバーの場所、Kerberos 領域へのホスト名のマッピングに関する情報を含めます。`krb5.conf` の内容で、領域名とドメイン領域名に、大文字と小文字の混在した正しいフォーマットを使用していることを確認する必要があります。例えば、次のようになります。

  ```
  [libdefaults] 
   dns_lookup_realm = true 
   dns_lookup_kdc = true 
   forwardable = true 
   default_realm = MYDOMAIN.ORG 
  [realms] 
  MYDOMAIN.ORG = { 
  kdc = mydomain.org 
  admin_server = mydomain.org 
  } 
  [domain_realm] 
  .mydomain.org = MYDOMAIN.ORG 
  mydomain.org = MYDOMAIN.ORG
  ```
+ Kerberos キーキャッシュファイルを準備します。ファイルには、クライアントプリンシパル情報の一時的な Kerberos 認証情報が含まれています。ファイルはクライアントのパスワードを保存しません。DMS タスクはこのキャッシュチケット情報を使用して、パスワードなしで追加の認証情報を取得します。既存の Active Directory または Kerberos 認証ホストで次の手順を実行して、キーキャッシュファイルを生成します。
  + Kerberos キータブファイルを作成します。**kutil** または **ktpass** ユーティリティを使用してキータブファイルを生成できます。

    Microsoft **ktpass** ユーティリティの詳細については、*Windows Server ドキュメント*の「[ktpass](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass)」を参照してください。

    MIT **kutil** ユーティリティの詳細については、*MIT Kerberos ドキュメント*の「[kutil](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/ktutil.html)」を参照してください。
  + **kinit** ユーティリティを使用して、keytab ファイルから Kerberos キーキャッシュファイルを作成します。**kinit** ユーティリティの詳細については、*MIT Kerberos ドキュメント*の「[kinit](https://web.mit.edu/kerberos/krb5-1.12/doc/user/user_commands/kinit.html)」を参照してください。
+ `SecretBinary` パラメータを使用して、Kerberos キーキャッシュファイルを Secrets Manager に保存します。Secrets Manager にキーキャッシュファイルをアップロードすると、DMS はキーキャッシュファイルを取得し、約 30 分ごとにローカルキャッシュファイルを更新します。ローカルキーキャッシュファイルが事前定義された有効期限のタイムスタンプを超えると、DMS はタスクを適切に停止します。継続的なレプリケーションタスク中の認証の失敗を回避するには、チケットの有効期限の少なくとも 30 分前に Secrets Manager のキーキャッシュファイルを更新します。詳細については、「*Secrets Manager API リファレンス*」の「[createsecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)」を参照してください。次の AWS CLI サンプルは、Secrets Manager でキーキャッシュファイルをバイナリ形式で保存する方法を示しています。

  ```
  aws secretsmanager create-secret —name keycache —secret-binary fileb://keycachefile
  ```
+ Secrets Manager からキーキャッシュファイルを取得するための `GetSecretValue` および `DescribeSecret` アクセス許可を IAM ロールに付与します。IAM ロールに `dms-vpc-role` 信頼ポリシーが含まれていることを確認します。`dms-vpc-role` 信頼ポリシーの詳細については、「[で使用する IAM ロールの作成 AWS DMS](security-iam.md#CHAP_Security.APIRole)」を参照してください。

次の例は、Secrets Manager `GetSecretValue`と `DescribeSecret` アクセス許可を持つ IAM ロールポリシーを示しています。*<keycache\$1secretsmanager\$1arn>* 値は、前のステップで作成した Keycache Secrets Manager ARN です。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:DescribeSecret"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## DMS レプリケーションインスタンスでの AWS Kerberos サポートの有効化
<a name="CHAP_Security.Kerberos.enable.instance"></a>

Kerberos 領域は Windows のドメインと同じです。プリンシパル領域を解決するために、Kerberos はドメインネームサービス (DNS) に依存します。`dns-name-servers` パラメータを設定すると、レプリケーションインスタンスは事前定義されたカスタム DNS サーバーのセットを使用して Kerberos ドメイン領域を解決します。Kerberos 領域クエリを解決するもう 1 つの代替オプションは、レプリケーションインスタンスの仮想プライベートクラウド (VPC) で Amazon Route 53 を設定することです。詳細については、「[Route 53](https://docs.aws.amazon.com/route53/)」を参照してください。

### を使用して DMS レプリケーションインスタンスで Kerberos サポートを有効にする AWS マネジメントコンソール
<a name="CHAP_Security.Kerberos.enable.instance.console"></a>

コンソールを使用して Kerberos サポートを有効にするには、**[レプリケーションインスタンスの作成]** または **[レプリケーションインスタンスの変更]** ページの **[Kerberos 認証]** セクションに次の情報を入力します。
+ `krb5.conf` ファイルの内容
+ キーキャッシュファイルを含む Secrets Manager シークレットの ARN
+ シークレットマネージャー ARN にアクセスできる IAM ロールの ARN と、キーキャッシュファイルを取得するためのアクセス許可

### を使用して DMS レプリケーションインスタンスで Kerberos サポートを有効にする AWS CLI
<a name="CHAP_Security.Kerberos.enable.instance.cli"></a>

次の AWS CLI サンプル呼び出しでは、Kerberos をサポートするプライベート DMS レプリケーションインスタンスを作成します。レプリケーションインスタンスはカスタム DNS を使用して Kerberos 領域を解決します。詳細については、「[作成レプリケーション インスタンス](https://docs.aws.amazon.com/cli/latest/reference/dms/create-replication-instance.html)」をご参照ください。

```
aws dms create-replication-instance 
--replication-instance-identifier my-replication-instance 
--replication-instance-class dms.t2.micro 
--allocated-storage 50 
--vpc-security-group-ids sg-12345678 
--engine-version 3.5.4 
--no-auto-minor-version-upgrade 
--kerberos-authentication-settings'{"KeyCacheSecretId":<secret-id>,"KeyCacheSecretIamArn":<secret-iam-role-arn>,"Krb5FileContents":<krb5.conf file contents>}'
--dns-name-servers <custom dns server>
--no-publicly-accessible
```

## ソースエンドポイントでの Kerberos サポートの有効化
<a name="CHAP_Security.Kerberos.enable.endpoint"></a>

DMS Oracle または SQL Server ソースエンドポイントで Kerberos 認証を有効にする前に、クライアントマシンから Kerberos プロトコルを使用してソースデータベースに対する認証が可能であることを確認してください。 AWS DMS Diagnostic AMI を使用して、レプリケーションインスタンスと同じ VPC で Amazon EC2 インスタンスを起動し、kerberos 認証をテストできます。AMI の詳細については、「[AWS DMS 診断サポート AMI の使用](CHAP_SupportAmi.md)」を参照してください。

### DMS AWS コンソールの使用
<a name="CHAP_Security.Kerberos.enable.endpoint.console"></a>

**[エンドポイントデータベースへのアクセス]** で、**[Kerberos 認証]** を選択します。

### の使用 AWS CLI
<a name="CHAP_Security.Kerberos.enable.endpoint.cli"></a>

エンドポイント設定パラメータを指定し、`AuthenticationMethod` オプションを kerberos として設定します。例えば、次のようになります。

**Oracle**

```
aws dms create-endpoint 
--endpoint-identifier my-endpoint 
--endpoint-type source 
--engine-name oracle 
--username dmsuser@MYDOMAIN.ORG 
--server-name mydatabaseserver 
--port 1521 
--database-name mydatabase  
--oracle-settings "{\"AuthenticationMethod\": \"kerberos\"}"
```

**SQL Server**

```
aws dms create-endpoint 
--endpoint-identifier my-endpoint 
--endpoint-type source 
--engine-name sqlserver 
--username dmsuser@MYDOMAIN.ORG 
--server-name mydatabaseserver 
--port 1433
--database-name mydatabase  
--microsoft-sql-server-settings "{\"AuthenticationMethod\": \"kerberos\"}"
```

## ソースエンドポイントのテスト
<a name="CHAP_Security.Kerberos.test"></a>

Kerberos 対応レプリケーションインスタンスに対して、Kerberos 対応エンドポイントをテストする必要があります。Kerberos 認証のレプリケーションインスタンスまたはソースエンドポイントの解釈が適切ではない場合、エンドポイント `test-connection` アクションは失敗し、Kerberos 関連のエラーを返す可能性があります。詳細については、「[テスト接続](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/test-connection.html)」を参照してください。