AWS Database Migration Service でのセキュリティ - AWS Database Migration Service

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

AWS Database Migration Service でのセキュリティ

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

セキュリティは、AWS とお客様の間の共有責任です。共有責任モデルでは、これをクラウドセキュリティおよびクラウドのセキュリティとして説明しています。

  • クラウドのセキュリティ - AWS は、AWS クラウドで AWS サービスを実行するインフラストラクチャを保護する責任を負います。また、AWS は、使用するサービスを安全に提供します。AWS コンプライアンスプログラムの一環として、サードパーティーの監査が定期的にセキュリティの有効性をテストおよび検証しています。AWS DMS に適用されるコンプライアンスプログラムの詳細については、「コンプライアンスプログラム対象範囲内の AWS のサービス」を参照してください。

  • クラウド内のセキュリティ – お客様の責任は、使用する AWS のサービスに応じて判断されます。また、お客様は、お客様のデータの機密性、組織の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

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

AWS DMS リソースとデータベース (DB) へのアクセスを管理できます。アクセスの管理に使用する方法は、AWS DMS で実行する必要があるレプリケーションタスクによって異なります。

  • を使用するAWS Identity and Access Management(IAM) ポリシーを使用して、どのユーザーに管理を許可するかを決定するアクセス許可を割り当てます。AWS DMSリソースの使用料金を見積もることができます。AWS DMSIAM ユーザーとしてサインインしている場合、を使用するには適切なアクセス許可が必要になります。たとえば、IAM を使用して、いずれのユーザーが DB インスタンスとクラスターの作成、情報入手、変更、削除、リソースのタグ付け、セキュリティグループの変更を許可されるかを決定します。IAM の詳細については、AWS DMS「」を参照してください。AWS Database Migration Service の Identity and Access Management

  • AWS DMS では、Transport Layer Security (TLS) を使用したエンドポイント接続に Secure Sockets Layer (SSL) が使用されます。AWS DMS で SSL/TLS を使用する方法については、「AWS Database Migration Service での SSL の使用」を参照してください

  • AWS DMSが使用AWS Key Management Service(AWS KMS) 暗号化キーを使用して、レプリケーションインスタンスで使用されるストレージとエンドポイント接続情報を暗号化します。AWS DMSも使用するAWS KMS暗号化キーを使用して、Amazon S3 および Amazon Redshift ターゲットエンドポイントで保存されるターゲットデータを保護します。詳細については、「暗号化キーの設定と AWS KMS のアクセス許可の指定」を参照してください。

  • AWS DMSは、可能な限り最大のネットワークアクセスコントロールを実現するために、常に Amazon VPC サービスに基づいてレプリケーションインスタンスを Virtual Private Cloud (VPC) に作成します。DB インスタンスとインスタンスクラスターには、レプリケーションインスタンスと同じ VPC を使用するか、このレベルのアクセスコントロールに一致させるために追加の VPC を使用します。使用する各 Amazon VPC は、すべてのポートですべてのトラフィックが VPC を退出 (送信) するのを許可するルールを持つセキュリティグループに関連付ける必要があります。このアプローチでは、ソースおよびターゲットデータベースエンドポイントで適切な受信が有効になっている限り、レプリケーションインスタンスからそれらのエンドポイントへの通信が許可されます。

    AWS DMS で使用可能なネットワーク設定の詳細については、「レプリケーションインスタンスのためのネットワークのセットアップ」を参照してください。VPC での DB インスタンスまたはインスタンスクラスターの作成については、Amazon データベースのセキュリティとクラスター管理のドキュメントを参照してください。AWSドキュメント。AWS DMS でサポートされるネットワーク設定の詳細については、「レプリケーションインスタンスのためのネットワークのセットアップ」を参照してください。

  • データベース移行ログを表示するには、使用している IAM ロールの適切な Amazon CloudWatch Logs アクセス許可が必要です。AWS DMS のログ作成の詳細については、「Amazon CloudWatch を使用したレプリケーションモニタリングタスク」を参照してください。

AWS Database Migration Service でのデータ保護

データの暗号化

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

保管時の暗号化

AWS DMSでは、保管時の暗号化がサポートされており、サポートされているAWS DMSターゲットエンドポイント。この暗号化モードは、エンドポイントの追加の接続属性 encryptionMode を設定することで指定できます。これならencryptionMode設定で KMS キー暗号化モードが指定されている場合は、カスタムAWS KMS次ののターゲットデータを暗号化するためだけにキーAWS DMSターゲットエンドポイント:

転送時の暗号化

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

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

キーの管理

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

インターネットトラフィックのプライバシー

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

AWS Database Migration Service の Identity and Access Management

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全にコントロールするために役立つ AWS のサービスです。IAM 管理者は、誰を認証 (サインイン) し、誰に AWS DMS リソースの使用を許可する (アクセス許可を持たせる) かを制御します。IAM は、AWS のサービスで追加料金は発生しません。

Audience

AWS Identity and Access Management (IAM) の用途は、AWS DMS で行う作業によって異なります。

[サービスユーザー] - AWS DMS サービスを使用してジョブを実行する場合は、必要なアクセス許可と認証情報を管理者が用意します。作業を実行するためにさらに多くの AWS DMS 機能を使用するとき、追加のアクセス許可が必要になる場合があります。アクセスの管理方法を理解すると、管理者から適切なアクセス許可をリクエストするのに役に立ちます。AWS DMS の機能にアクセスできない場合は、「AWS Database Migration Service Identity and Access のトラブルシューティング」を参照してください。

[サービス管理者] - 社内の AWS DMS リソースを担当している場合は、通常、AWS DMS へのフルアクセスがあります。従業員がどの AWS DMS 機能とリソースアクセスする必要があるかを決定するのは管理者の仕事です。その後、IAM 管理者にリクエストを送信して、サービスユーザーの許可を変更する必要があります。このページの情報を確認して、IAM の基本概念を理解してください。お客様の会社で AWS DMS で IAM を利用する方法の詳細については、「AWS Database Migration Service で IAM を使用する方法」を参照してください。

IAM 管理者 - 管理者は、AWS DMS へのアクセスを管理するポリシーの作成方法の詳細について確認する場合があります。IAM で使用できる AWS DMS アイデンティティベースのポリシーの例を表示するには、「AWS Database Migration Service アイデンティティベースのポリシーの例」を参照してください。

アイデンティティを使用した認証

認証は、アイデンティティ認証情報を使用して AWS にサインインする方法です。AWS Management Console を使用したサインインの詳細については、IAM ユーザーガイドの「IAM ユーザーまたはルートユーザーとしての AWS Management Console へのサインイン」を参照してください。

AWS アカウント のルートユーザーもしくは IAM ユーザーとして、または IAM ロールを引き受けることによって認証される (AWS にサインインする) 必要があります。会社のシングルサインオン認証を使用することも、Google や Facebook を使用してサインインすることもできます。このような場合、管理者は以前に IAM ロールを使用して ID フェデレーションを設定しました。他の会社の認証情報を使用して AWS にアクセスした場合、ロールを間接的に割り当てられています。

AWS Management Console に直接サインインするには、ルートユーザーの E メールまたは IAM ユーザー名とパスワードを使用します。ルートユーザーまたは IAM ユーザーのアクセスキーを使用して AWS にプログラム的にアクセスできます。AWS では、SDK とコマンドラインツールを提供し、お客様の認証情報を使用して、リクエストに暗号で署名できます。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。これには、インバウンド API リクエストを認証するためのプロトコル、署名バージョン 4 を使用します。リクエストの認証の詳細については、AWS の全般リファレンスの署名バージョン 4 の署名プロセス」を参照してください。

使用する認証方法を問わず、追加のセキュリティ情報の提供を要求される場合もあります。たとえば、AWS では多要素認証 (MFA) を使用してアカウントのセキュリティを高めることを推奨しています。詳細については、IAM ユーザーガイドのAWS での多要素認証 (MFA) の使用」を参照してください。

AWS アカウント ルートユーザー

AWS アカウント を初めて作成する場合は、このアカウントのすべての AWS のサービスとリソースに対して完全なアクセス権限を持つシングルサインインアイデンティティで始めます。このアイデンティティは AWS アカウント ルートユーザーと呼ばれ、アカウントの作成に使用したメールアドレスとパスワードでのサインインによりアクセスされます。強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティスに従います。その後、ルートユーザーの認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。

IAM ユーザーとグループ

IAM ユーザーは、単一の人物またはアプリケーションに対する特定の許可を持つ AWS アカウント 内のアイデンティティです。IAM ユーザーは、ユーザー名とパスワード、アクセスキーのセットなど、長期的な認証情報を持つことができます。アクセスキーを生成する方法の詳細については、IAM ユーザーガイドの「IAM ユーザーのアクセスキーの管理」を参照してください。IAM ユーザーにアクセスキーを生成するとき、必ずキーペアを表示して安全に保存してください。後になって、シークレットアクセスキーを回復することはできません。新しいアクセスキーペアを生成する必要があります。

IAM グループは、IAM ユーザーのコレクションを指定するアイデンティティです。グループとしてサインインすることはできません。グループを使用して、一度に複数のユーザーに対してアクセス許可を指定できます。多数の組のユーザーがある場合、グループを使用すると管理が容易になります。たとえば、IAMAdmins という名前のグループを設定して、そのグループに IAM リソースを管理するアクセス許可を与えることができます。

ユーザーは、ロールとは異なります。ユーザーは 1 人の特定の人またはアプリケーションに一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。ユーザーには永続的な長期の認証情報がありますが、ロールでは一時的な認証情報が利用できます。詳細については、IAM ユーザーガイドの「IAM ユーザーの作成が適している場合 (ロールではなく)」を参照してください。

IAM ロール

IAM ロールは、特定のアクセス許可を持つ、 AWS アカウント 内のアイデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーには関連付けられていません。AWS Management Consoleロールを切り替えることによって、 で IAM ロールを一時的に引き受けることができます。ロールを引き受けるには、AWS CLI または AWS API オペレーションを呼び出すか、カスタム URL を使用します。ロールを使用する方法の詳細については、IAM ユーザーガイドIAM ロールの使用を参照してください。

IAM ロールと一時的な認証情報は、次の状況で役立ちます。

  • 一時的な IAM ユーザーアクセス許可 – IAM ユーザーは、特定のタスクに対して複数の異なるアクセス許可を一時的に IAM ロールで引き受けることができます。

  • フェデレーティッドユーザーアクセス – IAM ユーザーを作成する代わりに、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブ ID プロバイダーからの既存のアイデンティティを使用できます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。AWS では、ID プロバイダーを通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、IAM ユーザーガイドフェデレーティッドユーザーとロールを参照してください。

  • クロスアカウントアクセス – IAM ロールを使用して、自分のアカウントのリソースにアクセスすることを別のアカウントの人物 (信頼済みプリンシパル) に許可できます。ロールは、クロスアカウントアクセスを許可する主な方法です。ただし、一部の AWS のサービスでは、(ロールをプロキシとして使用する代わりに) リソースにポリシーを直接アタッチできます。クロスアカウントアクセスでのロールとリソースベースのポリシーの違いの詳細については、IAM ユーザーガイドIAM ロールとリソースベースのポリシーとの相違点を参照してください。

  • クロスサービスアクセス – 一部の AWS のサービスは、AWS の他のサービスの機能を使用します。たとえば、サービスで呼び出しを行う場合、そのサービスでは Amazon EC2 でアプリケーションを実行したり、Amazon S3 にオブジェクトを保存したりするのが一般的です。サービスは、呼び出し元プリンシパルのアクセス許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。

    • プリンシパル許可 – IAM ユーザーまたはロールを使用して AWS でアクションを実行する場合、そのユーザーはプリンシパルとみなされます。ポリシーは、プリンシパルにアクセス許可を付与します。一部のサービスを使用する場合、別のサービスで別のアクションをトリガーするアクションを実行することがあります。この場合、両方のアクションを実行するための許可が必要です。アクションがポリシーで追加の依存アクションを必要とするかどうかを確認するには、サービス認証リファレンス AWS Database Migration Service のアクション、リソース、および条件キーを参照してください。

    • サービスロール – サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイドの「AWS のサービスにアクセス権限を委任するロールの作成」を参照してください。

    • サービスリンクロール – サービスリンクロールは、AWS のサービスにリンクされたサービスロールの一種です。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

  • Amazon EC2 で実行されているアプリケーション – EC2 インスタンスで実行され、AWS CLI または AWS API リクエストを作成しているアプリケーションの一時的な認証情報を管理するには、IAM ロールを使用できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、IAM ユーザーガイドの「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する」を参照してください。

IAM ロールを使用するか IAM ユーザーを使用するかどうかについては、IAM ユーザーガイドIAM ユーザーの作成が適している場合 (ロールではなく)」を参照してください。

ポリシーを使用したアクセスの管理

AWS でのアクセスは、ポリシーを作成し、それらを IAM アイデンティティまたは AWS リソースにアタッチすることで制御できます。ポリシーは AWS のオブジェクトであり、ID やリソースに関連付けて、これらのアクセス許可を定義します。ルートユーザーまたは IAM ユーザーとしてサインインすることも、IAM ロールを引き受けることもできます。リクエストを行うと、AWS は関連するアイデンティティベースまたはリソースベースのポリシーを評価します。ポリシーでのアクセス許可により、リクエストが許可されるか拒否されるかが決まります。大半のポリシーは JSON ドキュメントとして AWS に保存されます。JSON ポリシードキュメントの構造と内容の詳細については、IAM ユーザーガイドJSON ポリシー概要を参照してください。

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

すべての IAM エンティティ (ユーザーまたはロール) は、アクセス許可のない状態からスタートします。言い換えると、デフォルト設定では、ユーザーは何もできず、自分のパスワードを変更することすらできません。何かを実行するアクセス許可をユーザーに付与するには、管理者がユーザーにアクセス許可ポリシーをアタッチする必要があります。また、管理者は、必要なアクセス許可があるグループにユーザーを追加できます。管理者がグループにアクセス許可を付与すると、そのグループ内のすべてのユーザーにこれらのアクセス許可が付与されます。

IAM ポリシーは、オペレーションの実行方法を問わず、アクションのアクセス許可を定義します。たとえば、iam:GetRole アクションを許可するポリシーがあるとします。このポリシーがあるユーザーは、AWS Management Console、AWS CLI、または AWS API からロールの情報を取得できます。

ID ベースのポリシー

アイデンティティベースのポリシーは、IAM user ユーザー、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件を制御します。アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドの「IAM ポリシーの作成」を参照してください。

アイデンティティベースのポリシーは、さらにインラインポリシーまたは管理ポリシーに分類できます。インラインポリシーは、単一のユーザー、グループ、またはロールに直接埋め込まれています。管理ポリシーは、複数のユーザー、グループ、およびロールにアタッチできるスタンドアロンポリシーです。 AWS アカウント 。管理ポリシーには、AWS 管理ポリシーとカスタマー管理ポリシーが含まれます。管理ポリシーまたはインラインポリシーのいずれかを選択する方法については、IAM ユーザーガイド管理ポリシーとインラインポリシーの比較を参照してください。

リソースベースのポリシー

リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーの例は、IAM ロールの信頼ポリシーおよび Amazon S3 バケットポリシーです。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、ポリシーは、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件を定義します。リソースベースのポリシーで、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または AWS のサービスを含めることができます。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーで IAM からの AWS 管理ポリシーを使用することはできません。

アクセスコントロールリスト (ACL)

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

Amazon S3、AWS WAF、および Amazon VPC は、ACL をサポートするサービスの例です。ACL の詳細については、Amazon Simple Storage Service デベロッパーガイドの「アクセスコントロールリスト (ACL) の概要」を参照してください。

その他のポリシータイプ

AWS では、別のあまり一般的ではないポリシータイプもサポートしています。これらのポリシータイプでは、より一般的なポリシータイプで付与された最大の許可を設定できます。

  • 許可の境界 – 許可の境界は、ID ベースのポリシーが IAM エンティティ (IAM ユーザーまたはロール) に付与できる許可の上限を設定する高度な機能です。エンティティの許可の境界を設定できます。結果として得られる許可は、エンティティの ID ベースのポリシーとその許可の境界の共通部分です。Principal フィールドでユーザーまたはロールを指定するリソースベースのポリシーは、アクセス許可の境界では制限されません。これらのポリシーのいずれかを明示的に拒否した場合、その許可は無効になります。許可の境界の詳細については、IAM ユーザーガイドの「IAM エンティティの許可の境界」を参照してください。

  • サービスコントロールポリシー (SCP) – SCP は、AWS Organizations の組織または組織単位 (OU) の最大許可を指定する JSON ポリシーです。AWS Organizations は、ビジネスが所有する複数の AWS アカウント をグループ化し、一元的に管理するためのサービスです。組織内のすべての機能を有効にすると、サービス制御ポリシー (SCP) を一部またはすべてのアカウントに適用できます。SCP はメンバーアカウントのエンティティ (各など) に対するアクセス許可を制限します AWS アカウント ルートユーザー。Organizations と SCP の詳細については、AWS Organizations ユーザーガイド SCP の仕組みを参照してください。

  • セッションポリシー – セッションポリシーは、ロールまたはフェデレーティッドユーザーの一時セッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。結果として得られるセッションの許可は、ユーザーまたはロールの ID ベースのポリシーとセッションポリシーの共通部分です。また、リソースベースのポリシーから許可が派生する場合もあります。これらのポリシーのいずれかを明示的に拒否した場合、その許可は無効になります。詳細については、IAM ユーザーガイドの「セッションポリシー」を参照してください。

複数のポリシータイプ

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される許可を理解するのがさらに複雑になります。複数のポリシータイプが関連するとき、リクエストを許可するかどうかを AWS が決定する方法の詳細については、IAM ユーザーガイドポリシーの評価ロジックを参照してください。

AWS Database Migration Service で IAM を使用する方法

IAM を使用してへのアクセスを管理する前にAWS DMSどの IAM 機能をと共に使用できるか理解しておく必要があります。AWS DMS。方法についてハイレベルのビューを取得するにはAWS DMSその他AWSサービスは IAM と連携します。AWSIAM と連携するサービスIAM ユーザーガイド

AWS DMS アイデンティティベースのポリシー

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。AWS DMSは、特定のアクション、リソース、および条件キーをサポートしています。JSON ポリシーで使用するすべての要素については、IAM ユーザーガイド の「IAM JSON ポリシーエレメントのリファレンス」を参照してください。

Actions

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

JSON ポリシーの Action 要素は、ポリシー内のアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションを持たないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられた操作を実行するための許可を付与するポリシーで使用されます。

でのポリシーアクションAWS DMSアクションの前にプレフィックスを使用します。dms:。 たとえば、レプリケーションタスクを作成するアクセス許可を付与するには、AWS DMS CreateReplicationTaskAPI 操作を実行する場合は、dms:CreateReplicationTask彼らのポリシーのアクション。ポリシーステートメントには、Action 要素あるいは NotAction 要素を含める必要があります。AWS DMS は、このサービスで実行できるタスクを説明する独自の一連のアクションを定義します。

単一のステートメントに複数のアクションを指定するには、以下のようにコンマで区切ります。

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

ワイルドカード (*) を使用して複数のアクションを指定することができます。たとえば、Describe という単語で始まるすべてのアクションを指定するには、以下のアクションを含めます。

"Action": "dms:Describe*"

AWS DMS アクションのリストを表示するには、IAM ユーザーガイドの「AWS Database Migration Service によって定義されたアクション」を参照してください。

Resources

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

Resource JSON ポリシーエレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource エレメントを含める必要があります。ベストプラクティスとして、リソースは Amazon リソースネーム (ARN) を使用して指定します。これは、リソースレベルのアクセス許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

操作のリスト化など、リソースレベルの許可をサポートしないアクションの場合は、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。

"Resource": "*"

AWS DMSは、次のリソースと連携して動作します。

  • 証明書

  • エンドポイント

  • イベントサブスクリプション

  • レプリケーションインスタンス

  • レプリケーションサブネット(セキュリティ)グループ

  • レプリケーションタスク

AWS DMS が必要とするリソースは、呼び出された 1 つまたは複数のアクションによって決まります。関連付けられているリソースや、リソース ARN で指定されたリソースに対して、これらのアクションを許可するポリシーが必要です。

たとえば、AWS DMS エンドポイントリソースの ARN は次のようになります:

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

ARN の形式の詳細については、「Amazon リソースネーム (ARN) と AWS のサービスの名前空間」を参照してください。

たとえば、ステートメントで use-east-2 リージョンの 1A2B3C4D5E6F7G8H9I0J1K2L3M エンドポイントインスタンスを指定するには、次の ARN を使用します。

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

特定のアカウントに属するすべてのエンドポイントを指定するには、ワイルドカード (*) を使用します。

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

リソースの作成など、一部の AWS DMS アクションは、特定のリソースで実行できません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

一部の AWS DMS API アクションには、複数のリソースが関連します。たとえば、StartReplicationTaskはレプリケーションタスクを開始し、ソースとターゲットの 2 つのデータベースエンドポイントのリソースに接続するため、IAM ユーザーには、ソースエンドポイントを読み取るアクセス許可とターゲットエンドポイントに書き込むアクセス許可が必要です。複数のリソースを単一のステートメントで指定するには、ARN をカンマで区切ります。

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

ポリシーを使用して AWS DMS リソースへのアクセスを制御する方法については、「」を参照してください。AWS DMS リソースタイプとその ARN のリストを表示するには、IAM ユーザーガイドの「AWS Database Migration Service で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「AWS Database Migration Service で定義されるアクション」を参照してください。

条件キー

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

Condition エレメント (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Conditionエレメントはオプションです。イコールや以下などの条件演算子を使用する条件式を作成して、リクエスト内に値のあるポリシーの条件に一致させることができます。

1 つのステートメントに複数の Condition エレメントを指定する場合、または 1 つの Condition エレメントに複数のキーを指定する場合、AWS が論理 AND 演算を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS が論理 OR 演算を使用して条件を評価します。ステートメントのアクセス許可が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAM ユーザー名でタグ付けされている場合のみ、リソースにアクセスする IAM ユーザーアクセス許可を付与できます。詳細については、IAM ユーザーガイドIAM ポリシーエレメント: 変数およびタグを参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

AWS DMS は独自の条件キーを定義し、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

AWS DMS では、条件キーで使用できる標準タグのセットが定義されています。独自のカスタムタグを定義することもできます。詳細については、「タグを使用してアクセスをコントロールする」を参照してください。

AWS DMS 条件キーのリストを確認するには、IAM ユーザーガイドの「AWS Database Migration Service の条件キー」を参照してください。どのアクションおよびリソースと条件キーを使用できるかについては、「」を参照してください。で定義されるアクションAWS Database Migration Serviceおよびで定義したリソースAWS Database Migration Service

Examples

AWS DMS アイデンティティベースのポリシーの例を表示するには、「AWS Database Migration Service アイデンティティベースのポリシーの例」を参照してください。

AWS DMS リソースベースのポリシー

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

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

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

サポートされているターゲットエンドポイント用に作成する暗号化キーにリソースベースのポリシーをアタッチする方法については、「作成と使用AWS KMSAmazon Redshift ターゲットデータを暗号化するキー」および「の作成AWS KMSAmazon S3 ターゲットオブジェクトを暗号化するキー」を参照してください。

Examples

AWS DMS のリソースベースのポリシーの例については、「リソースベースのポリシーの例 (AWS KMS)」を参照してください。

AWS DMS タグに基づいた承認

タグを AWS DMS リソースにアタッチすることも、AWS DMS へのリクエストでタグを渡すこともできます。タグに基づいてアクセスを制御するには、タグ情報を条件エレメントを使用してポリシーのdms:ResourceTag/key-name,aws:RequestTag/key-name, またはaws:TagKeys条件キー。AWS DMSでは、条件キーで使用できる標準タグのセットが定義されています。独自のカスタムタグを定義することもできます。詳細については、「タグを使用してアクセスをコントロールする」を参照してください。

タグに基づいてリソースへのアクセスを制限するアイデンティティベースのポリシーの例については、「タグに基づく AWS DMS リソースへのアクセス」を参照してください。

の IAM ロールAWS DMS

IAM ロールは、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

での一時的な認証情報の使用AWS DMS

一時的な認証情報を使用して、フェデレーションでサインインする、IAM ロールを引き受ける、またはクロスアカウントロールを引き受けることができます。一時的なセキュリティ認証情報を取得するには、 AWS STS などの API オペレーションAssumeRoleまたはGetFederationToken

AWS DMS では、一時認証情報の使用をサポートしています。

サービスにリンクされたロール

サービスにリンクされたロールによって、AWS サービスが他のサービスのリソースにアクセスして自動的にアクションを完了できます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

AWS DMS ではサービスにリンクされたロールをサポートしていません。

サービスロール

この機能では、サービスのロールをユーザーに代わって引き受けることをサービスに許可します。このロールにより、サービスはユーザーに代わって他のサービスのリソースにアクセスし、アクションを実行できます。サービスロールは、IAM アカウントに表示され、サービスによって所有されます。つまり、IAM 管理者は、このロールのアクセス許可を変更できます。ただし、これを行うことにより、サービスの機能が損なわれる場合があります。

AWS DMS では、特定のソースエンドポイントまたはターゲットエンドポイントを使用するために作成する必要がある 2 種類のサービスロールがサポートされています:

での IAM ロールの選択AWS DMS

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

AWS Database Migration Service アイデンティティベースのポリシーの例

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

これらの JSON ポリシードキュメント例を使用して IAM の ID ベースのポリシーを作成する方法については、IAM ユーザーガイドの「JSON タブでのポリシーの作成」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは非常に強力です。アカウント内で、AWS DMS リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、 AWS アカウント に追加料金が発生する可能性があります。アイデンティティベースのポリシーを作成または編集するときは、以下のガイドラインと推奨事項に従います。

  • AWS 管理ポリシーの使用を開始する – AWS DMSの使用をすばやく開始するには、AWS 管理ポリシーを使用して、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントですでに有効になっており、 によって管理および更新されていますAWS 詳細については、IAM ユーザーガイドの「AWS 管理ポリシーを使用したアクセス許可の使用開始」を参照してください。

  • 最小権限を付与する – カスタムポリシーを作成するときは、タスクの実行に必要な許可のみを付与します。最小限のアクセス許可から開始し、必要に応じて追加のアクセス許可を付与します。この方法は、寛容なアクセス許可で始め、後でそれらを強化しようとするよりも安全です。詳細については、IAM ユーザーガイドの「最小限の特権を認める」を参照してください。

  • 機密性の高い操作に MFA を有効にする – 追加セキュリティとして、機密性の高いリソースまたは API 操作にアクセスするために IAM ユーザーに対して、多要素認証 (MFA) の使用を要求します。詳細については、IAM ユーザーガイドの「AWS での多要素認証 (MFA) の使用」を参照してください。

  • 追加のセキュリティとしてポリシー条件を使用する – 実行可能な範囲内で、ID ベースのポリシーでリソースへのアクセスを許可する条件を定義します。例えば、要求が発生しなければならない許容 IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。詳細については、「」を参照してください。IAM JSON ポリシーの要素: 条件IAM ユーザーガイド

AWS DMS コンソールを使用する

次のポリシーでは、AWSDMS、AWSDMS コンソールでは、また Amazon EC2 などの他の Amazon サービスから特定の必要なアクションに関するアクセス許可も指定しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "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": "*" }, { "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" } ] }

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

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

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }

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

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }

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

{ "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": "*" }

Amazon Redshift をターゲットとして使用する場合は、次のセクションが必要です。これは、AWS DMSAmazon Redshift クラスターがAWS DMS。

{ "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" }

-AWSDMS コンソールは、自動的にAWSアカウントを使用するときにAWSDMS コンソール ♪AWS Command Line Interface(AWS CLI) またはAWSDMS API を移行するには、これらのロールをアカウントに追加する必要があります。これらのロールの追加についての詳細は、「AWS CLI と AWS DMS API で使用する IAM ロールの作成」を参照してください。

このポリシーを使用してにアクセスするための要件の詳細については、「」を参照してください。AWSDMS、「」を参照してください。AWS DMS の使用に必要な IAM アクセス許可

自分の許可の表示をユーザーに許可する

この例では、ユーザー ID にアタッチされたインラインおよび管理ポリシーの表示を 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 バケットへのアクセス

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

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

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

{ "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 バケットの設定」を参照してください。

タグに基づく AWS DMS リソースへのアクセス

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

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

このポリシーをアカウントの IAM ユーザーにアタッチできます。richard-roe という名前のユーザーが AWS DMS エンドポイントへのアクセスを試みる場合、エンドポイントデータベースには Owner=richard-roe または owner=richard-roe のタグが必要です。それ以外の場合、このユーザーはアクセスを拒否されます。条件キー名では大文字と小文字は区別されないため、条件タグキー OwnerOwnerowner に一致します。詳細については、「」を参照してください。IAM JSON ポリシーの要素: 条件IAM ユーザーガイド

リソースベースのポリシーの例 (AWS KMS)

AWSDMSでは、カスタムを作成することができますAWS KMS暗号化キーを使用して、サポートされているターゲットエンドポイントデータを暗号化できます。キーポリシーを作成して、サポートされているターゲットデータ暗号化用に作成する暗号化キーに、このポリシーをアタッチする方法については、「作成と使用AWS KMSAmazon Redshift ターゲットデータを暗号化するキー」および「の作成AWS KMSAmazon S3 ターゲットオブジェクトを暗号化するキー」を参照してください。

カスタムのAWS KMSAmazon Redshift ターゲットデータを暗号化する暗号化キー

次の例は、キーポリシーの JSON を、AWS KMS暗号化キーを使用して、Amazon Redshift ターゲットデータを暗号化します。

{ "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ターゲットエンドポイントなどのリソース。

カスタムのAWS KMSAmazon S3 ターゲットデータを暗号化するための暗号化キー

次の例は、キーポリシーの JSON を、AWS KMSAmazon S3 ターゲットデータを暗号化するために作成する暗号化キー。

{ "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エンドポイント

を使用する場合AWS DMS、シークレットは、認証するユーザー資格情報のセットを表すために使用できる暗号化されたキーです。シークレット認証の場合、サポートされているAWS DMSソースまたはターゲットエンドポイント。Oracleアドバンスト・ストレージ管理(ASM)も使用するOracleエンドポイントの場合、AWS DMSでは、Oracle ASMにアクセスするためのユーザー資格証明を表す追加のシークレットが必要です。

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

の詳細については、「」を参照してください。AWS Secrets Manager「」を参照してください。とはAWSSecrets Manager?AWS Secrets Managerユーザーガイド

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[] 設定。

  • 値を使用したシークレット認証SecretsManagerSecretIdおよびSecretsManagerAccessRoleArn[] 設定。Oracle ASM を使用する Oracle エンドポイントの場合は、SecretsManagerOracleAsmSecretIdおよびSecretsManagerOracleAsmAccessRoleArn[] 設定。これらの設定のシークレット値には、の次の値を含めることができます。

    • SecretsManagerSecretId— エンドポイントデータベースへのアクセス用に作成したシークレットの完全な Amazon リソースネーム (ARN)、部分的な ARN、またはフレンドリ名。AWS Secrets Manager。

    • SecretsManagerAccessRoleArn— IAM で作成したシークレットアクセスロールの ARN で、AWS DMSへのアクセスSecretsManagerSecretIdユーザーに代わってのシークレット。

    • SecretsManagerOracleAsmSecretId— Oracle ASM アクセス用に作成したシークレットの完全な Amazon リソースネーム (ARN)、部分的な ARN、またはフレンドリ名。AWS Secrets Manager。

    • SecretsManagerOracleAsmAccessRoleArn— IAM で作成したシークレットアクセスロールの ARN で、AWS DMSへのアクセスSecretsManagerOracleAsmSecretIdユーザーに代わってのシークレット。

    注記

    また、単一のシークレットアクセスロールを使用して、AWS DMS両方にアクセスするSecretsManagerSecretIdシークレット、SecretsManagerOracleAsmSecretIdシークレット。両方のシークレットに対してこの 1 つのシークレットアクセスロールを作成する場合は、このアクセスロールに同じ ARN を両方のSecretsManagerAccessRoleArnおよびSecretsManagerOracleAsmAccessRoleArn。たとえば、両方のシークレットのシークレットアクセスロールに ARN が割り当てられている場合、ARN2xsecretsでは、これらの ARN 設定を次のように設定できます。

    SecretsManagerAccessRoleArn = ARN2xsecrets; SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;

    これらの値の作成の詳細については、「」を参照してください。の使用AWS Management Consoleを使用して、シークレットおよびシークレットアクセスロールを作成します

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

必要なユーザー権限を提供して確認するには

  1. AWS Management Console にサインインして、AWS Identity and Access Management で https://console.aws.amazon.com/iam/ コンソールを開きます。

  2. 選択ユーザー] を選択し、[ユーザー ID作るために使用CreateEndpointおよびModifyEndpointAPI コールが使用されます。

  3. からアクセス許可[] タブで、[{} JSON

  4. ユーザーに、以下に示す権限があることを確認します。

    { "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "SECRET_ACCESS_ROLE_ARN" }, { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "SECRET_ARN" } ] }
  5. ユーザーにこれらの権限がない場合は、権限を追加します。

  6. DMS API 呼び出しを実行するために IAM ロールを使用している場合は、それぞれのロールで上記のステップを繰り返してください。

  7. ターミナルを開き、AWS CLIを使用して、上記で使用したロールまたはユーザーを引き受けることで、権限が正しく与えられることを検証します。

    1. IAM を使用して SecretAccessRole に対するユーザーのアクセス許可を検証するget-roleコマンドを実行します。

      aws iam get-role --role-name ROLE_NAME

      置換ROLEの名前でSecretsManagerAccessRole

      コマンドからエラーメッセージが返された場合、アクセス許可が正しく指定されていることを確認します。

    2. シークレットSecrets Manager を使用してシークレットに対するユーザーのアクセス許可を検証するdescribe-secretコマンドを実行します。

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

      ユーザーには、フレンドリ名、部分的な ARN、または完全な ARN を指定できます。詳細については、「」を参照してください。descrets

      コマンドからエラーメッセージが返された場合、アクセス許可が正しく指定されていることを確認します。

の使用AWS Management Consoleを使用して、シークレットおよびシークレットアクセスロールを作成します

♪AWS Management Consoleを使用してエンドポイント認証用のシークレットを作成し、ポリシーとロールを作成してAWS DMSを使用して、ユーザーに代わってシークレットにアクセスします。

シークレットを作成するにはAWS Management ConsolethatAWS DMSは、ソースおよびターゲットのエンドポイント接続のデータベースを認証するために使用できます

  1. AWS Management Console にサインインして、AWS Secrets Manager で https://console.aws.amazon.com/secretsmanager/ コンソールを開きます。

  2. [新しいシークレットの保存] を選択します。

  3. []シークレットタイプを選択] の新しいシークレットを保存するページで、他の種類のシークレット[(プレーンテキストが使用されます

    注記

    この時点からエンドポイントデータベースに接続するためにクリアテキストの認証情報を入力する必要があるのは、ここだけです。

  4. プレーンテキストが使用されますfield:

    • ID を割り当てるシークレットの場合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は、次の例のように、Web 上のデータベースサーバー名 (アドレス) です。

      { "username": "admin", "password": "some_password", "port": "8190", "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com" }
    • ID を割り当てるシークレットの場合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は、次の例のように、Web上のOracle ASMサーバー名(アドレス)です。

      { "asm_user": "oracle_asm_user", "asm_password": "oracle_asm_password", "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" }
  5. を選択します。AWS KMS暗号化キーを使用してシークレットを暗号化します。サービスに対して作成されたデフォルトの暗号化キーを、AWS Secrets Manager[(AWS KMSキーを作成します。

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

  7. シークレットで自動回転を有効にする場合は、AWS Lambda関数を、説明されているようにシークレットの資格情報をローテーションする権限を持ちます。ただし、Lambda 関数を使用するように自動ローテーションを設定する前に、関数の構成設定でEXCLUDE_CHARACTERS環境変数。

    ;.:+

    AWS DMSは、エンドポイント認証情報に使用されるパスワードにこれらの文字を許可しません。それらを除外するように Lambda 関数を設定すると、AWS Secrets Managerこれらの文字は、ローテーションされたパスワード値の一部として生成されません。Lambda 関数を使用するように自動回転を設定すると、AWS Secrets Managerはシークレットをすぐにローテーションして、シークレット設定を検証します。

    注記

    データベースエンジンの設定によっては、データベースがローテーションされた認証情報をフェッチしない場合があります。この場合、資格情報を更新するには、タスクを手動で再起動する必要があります。

  8. にシークレットを確認して保存するAWS Secrets Manager。その後、各シークレットは、フレンドリ名でAWS Secrets Managerの値としてシークレット ARN を取得します。SecretsManagerSecretIdまたはSecretsManagerOracleAsmSecretIdを使用して、エンドポイントデータベース接続と Oracle ASM(使用されている場合)へのアクセスを認証します。

シークレットアクセスポリシーとロールを作成してSecretsManagerAccessRoleArnまたはSecretsManagerOracleAsmAccessRoleArnを許可します。AWS DMSにアクセスするにはAWS Secrets Managerあなたの適切な秘密にアクセスする

  1. にサインインします。AWS Management Console[(AWS Identity and Access Management(IAM) コンソールhttps://console.aws.amazon.com/iam/

  2. 選択ポリシー[(ポリシーの作成

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

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

    ここ,secret_arnはあなたの秘密のARNです。これは、SecretsManagerSecretIdまたはSecretsManagerOracleAsmSecretId必要に応じて、およびkms_key_arnの ARN です。AWS KMSキーを使用します。次の例のように、シークレットの暗号化に使用しています。

    { "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

    ポリシーで両方のシークレットへのアクセスを提供する場合は、他のsecret

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

  5. 選択ロール[(ロールの作成

  6. 選択AWSのサービス信頼されたエンティティのタイプとして。

  7. 選択DMSを信頼されたサービスとしてサービスのリストから [] を選択し、[] を選択します。次へ: アクセス許可.

  8. 手順 4 で作成したポリシーを検索してアタッチし、タグを追加してロールを確認します。この時点で、ロールの信頼関係を編集して、AWS DMS信頼されたエンティティとしてリージョナルサービスプリンシパルを。このプリンシパルの形式は次のとおりです。

    dms.region-name.amazonaws.com

    ここ,region-nameは、あなたの地域の名前です。us-east-1。したがって、AWS DMSこの地域の地域サービスプリンシパルは以下のとおりです。

    dms.us-east-1.amazonaws.com
  9. ロールの信頼されたエンティティを編集した後、フレンドリ名とオプションの説明を使用してロールを作成します。これで、IAM でフレンドリ名で新しいロールを検索し、ロール ARN をSecretsManagerAccessRoleArnまたはSecretsManagerOracleAsmAccessRoleArn値を使用してエンドポイントデータベース接続を認証します。

プライベートサブネットのレプリケーションインスタンスでシークレットマネージャーを使用するには

  1. シークレットマネージャーの VPC エンドポイントを作成し、そのエンドポイントの DNS を書き留めます。シークレットマネージャー VPC エンドポイントの作成の詳細については、「」を参照してください。VPC エンドポイントを介した Secret Manager への接続 AWSSecrets Manager ユーザーガイド。

  2. レプリケーションインスタンスセキュリティグループをシークレットマネージャ VPC エンドポイントにアタッチします。

  3. レプリケーションインスタンスセキュリティグループ出力ルールの場合、宛先のすべてのトラフィックを許可します0.0.0.0/0

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

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

AWS Database Migration Service Identity and Access のトラブルシューティング

次の情報は、AWS DMS と IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復に役立ちます。

AWS DMS でアクションを実行する権限がない

AWS Management Console から、アクションを実行する権限がないと通知された場合、管理者に問い合わせ、サポートを依頼する必要があります。お客様のユーザー名とパスワードを発行したのが、担当の管理者です。

次の例のエラーが発生すると、mateojacksonIAM ユーザーは、コンソールを使用して、AWSDMS エンドポイントですが、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 を実行する権限がない

iam:PassRole アクションを実行する権限がないというエラーが表示された場合、管理者に問い合わせ、サポートを依頼する必要があります。お客様のユーザー名とパスワードを発行したのが、担当の管理者です。 にロールを渡すことができるようにポリシーを更新するよう、管理者に依頼しますAWS DMS

一部の AWS サービスでは、新しいサービスロールまたはサービスにリンクされたロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

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

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

この場合、メアリーは担当の管理者に iam:PassRole アクションを実行できるようにポリシーの更新を依頼します。

アクセスキーを表示する場合

IAM ユーザーアクセスキーを作成した後は、いつでもアクセスキー ID を表示できます。ただし、シークレットアクセスキーをもう一度表示することはできません。シークレットアクセスキーを紛失した場合は、新しいキーペアを作成する必要があります。

アクセスキーは、アクセスキー ID (AKIAIOSFODNN7EXAMPLE など) とシークレットアクセスキー (wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY など) の 2 つの部分から構成されます。ユーザー名とパスワードと同様に、リクエストを認証するために、アクセスキー ID とシークレットアクセスキーの両方を使用する必要があります。ユーザー名とパスワードと同様に、アクセスキーをしっかり管理してください。

重要

正規ユーザー ID を確認するためであっても、アクセスキーをサードパーティーに提供しないでください。提供すると、第三者がアカウントへの永続的アクセスを取得する場合があります。

アクセスキーペアを作成する場合、アクセスキー ID とシークレットアクセスキーを安全な場所に保存するように求めるプロンプトが表示されます。このシークレットアクセスキーは、作成時にのみ使用できます。シークレットアクセスキーを紛失した場合、新しいアクセスキーを IAM ユーザーに追加する必要があります。最大 2 つのアクセスキーを持つことができます。すでに 2 つある場合は、新しいキーペアを作成する前に、いずれかを削除する必要があります。手順を表示するには、IAM ユーザーガイドの「アクセスキーの管理」を参照してください。

管理者として へのアクセスを他のユーザーに許可したいAWS DMS

AWS DMS へのアクセスを他のユーザーに許可するには、アクセスを必要とする人またはアプリケーションの IAM エンティティ (ユーザーまたはロール) を作成する必要があります。ユーザーは、このエンティティの認証情報を使用して にアクセスしますAWS 次に、 の適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要がありますAWS DMS

すぐに開始するには、IAM ユーザーガイドの「IAM が委任した最初のユーザーおよびグループの作成」を参照してください。

自分の AWS アカウント以外のユーザーに AWS DMS リソースへのアクセスを許可したい

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

詳細については、以下を参照してください。

AWS Database Migration Service のコンプライアンス検証

サードパーティーの監査者は、複数の 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 対象範囲内のサービス」を参照してください。一般的な情報については、「AWS コンプライアンスプログラム」を参照してください。

サードパーティーの監査レポートをダウンロードするには、AWS Artifact を使用します。詳細については、「」を参照してください。にレポートをダウンロードするAWSアーティファクト

AWS DMS を使用する際のお客様のコンプライアンス責任は、お客様のデータの機密性や貴社のコンプライアンス目的、適用される法律および規制によって決まります。AWS では、コンプライアンスに役立つ以下のリソースを提供しています。

での耐障害性AWS Database Migration Service

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

AWS のリージョンとアベイラビリティーゾーンの詳細については、「AWS グローバルインフラストラクチャ」を参照してください。

加えてAWSグローバルインフラストラクチャ、AWS DMSでは、[] を選択した場合、マルチ AZ 配置を使用してレプリケーションインスタンスの高可用性とフェイルオーバーサポートが提供されます。Multi-AZオプションを使用します。

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

マルチ AZ 配置の使用については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

でのインフラストラクチャセキュリティAWS Database Migration Service

マネージドサービスとしてAWS Database Migration Serviceによって保護されているAWSグローバルネットワークセキュリティ手順については、「」を参照してください。Amazon Web Services: セキュリティプロセスの概要ホワイトペーパー

AWS が公開している API コールを使用して、ネットワーク経由で AWS DMS にアクセスします。クライアントで Transport Layer Security (TLS) 1.0 以降がサポートされている必要があります。また、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) などの Perfect Forward Secrecy (PFS) を使用した暗号スイートもクライアントでサポートされている必要があります。これらのモードは、Java 7 以降など、最近のほとんどのシステムでサポートされています。

また、リクエストは、アクセスキー ID と、関連付けられたシークレットのアクセスキーを使用して署名する必要があります。AWS Identity and Access Management(IAM) プリンシパル。または、AWS Security Token Service (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

これらの API オペレーションは任意のネットワークの場所から呼び出すことができます。AWS DMSはリソースベースのアクセスポリシーもサポートしており、それらのポリシーでは、たとえば送信元 IP アドレスに基づいてアクションとリソースに関する制限を指定できます。さらに、次のようなAWS DMSポリシーでは、特定の Amazon VPC エンドポイントや特定の Virtual Private Cloud (VPC) からのアクセスをコントロールできます。これにより、実質的に AWS ネットワーク内の特定の VPC からの特定の AWS DMS リソースへのネットワークアクセスが分離されます。AWS DMS でリソースベースのポリシーを使用する方法の詳細については、「リソース名とタグを使用したファイングレインアクセスコントロール」を参照してください。

とのコミュニケーションを閉じ込めるためAWS DMSを 1 つの VPC 内で作成する場合、VPC インターフェイスエンドポイントを作成して、AWS DMSスルー AWS PrivateLink 。 AWS PrivateLink への任意の呼び出しを保証するのに役立ちますAWS DMSとその関連結果は、インターフェイスエンドポイントが作成される特定の VPC に限定されたままになります。次に、このインターフェイスエンドポイントの URL を、すべてのAWS DMSを使用して実行するAWS CLIまたは SDK を使用します。そうすることで、コミュニケーション全体をAWS DMSは VPC に限定されたままであり、それ以外の場合はパブリックインターネットには見えません。

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

  1. AWS Management Console にサインインして、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[] を選択します。エンドポイント。これにより、エンドポイントの作成ページが表示され、VPC からインターフェイスエンドポイントを作成してAWS DMS。

  3. 選択AWSのサービスを選択し、検索して値を選択します。サービス名この場合AWS DMS次の形式で。

    com.amazonaws.region.dms

    ここ,regionは、AWSリージョンAWS DMS実行、たとえばcom.amazonaws.us-west-2.dms

  4. を使用する場合VPC[VPC] を選択して、インターフェイスエンドポイントを作成します。たとえば、vpc-12abcd34

  5. 次のようにの値を選択します。アベイラビリティーゾーンおよびサブネット ID。これらの値は、選択したAWS DMSエンドポイントが実行できます。たとえば、us-west-2a (usw2-az1)およびsubnet-ab123cd4

  6. 選択DNS 名を有効化をクリックして DNS 名を持つエンドポイントを作成します。この DNS 名は、エンドポイント ID (vpce-12abcd34efg567hij) をランダムな文字列 (ab12dc34). これらは、サービス名とドットで区切られた逆の順序でドットで区切られ、vpce以下を追加。dms.us-west-2.vpce.amazonaws.com).

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

  7. を使用する場合セキュリティグループで、エンドポイントに使用するグループを選択します。

    セキュリティグループを設定するときは、セキュリティグループ内部からのアウトバウンド HTTPS 呼び出しを許可するようにしてください。詳細については、「」を参照してください。セキュリティグループの作成Amazon VPC User Guide

  8. 次のいずれかを選択します。完全アクセスまたはカスタム値ポリシー。たとえば、次のようなカスタムポリシーを選択して、エンドポイントのアクセスを特定のアクションとリソースに制限できます。

    { "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 DMSAPI 呼び出し(特定のレプリケーション・インスタンスの削除または変更を除く)

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

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

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

VPC インターフェイスエンドポイントの作成と使用(プライベート DNS オプションの有効化を含む)の詳細については、インターフェイス VPC エンドポイント (AWSPrivateLink)Amazon VPC User Guide

AWS DMS の使用に必要な IAM アクセス許可

AWS DMS を使用するには、特定の IAM アクセス許可と IAM ロールを使用します。IAM ユーザーとしてサインインして AWS DMS を使用する場合、アカウント管理者は、このセクションで示すポリシーを AWS DMS の実行に使用する IAM ユーザー、グループ、またはロールにアタッチする必要があります。IAM アクセス許可の詳細については、『IAM ユーザーガイド』を参照してください。

次のポリシーでは、AWS DMSまた、他の Amazon サービス (など) から必要な特定のアクションに対するアクセス許可も許可されています。AWS KMS、IAM、Amazon EC2、および Amazon CloudWatch から入手できます。CloudWatch はAWS DMSをリアルタイムに移行し、移行の進行状況を示す指標を収集および追跡します。CloudWatch ログを使用すると、タスクの問題をデバッグできます。

注記

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "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": "*" }, { "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" } ] }

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

次のセクションは、ユーザーが AWS DMS API オペレーションを呼び出すことを許可するために必要です。

{ "Effect": "Allow", "Action": "dms:*", "Resource": "*" }

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

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }

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

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }

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

{ "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": "*" }

Amazon Redshift をターゲットとして使用する場合は、次のセクションが必要です。これは、AWS DMSAmazon Redshift クラスターがAWS DMS。

{ "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" }

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

AWS CLI と AWS DMS API で使用する IAM ロールの作成

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

管理ポリシーの更新は自動です。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", "Description": "Provides access to manage VPC settings for AWS managed customer configurations", "CreateDate": "2015-11-18T16:33:19Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPAJHKIGMBQI4AEFFSYO", "DefaultVersionId": "v3", "Path": "/service-role/", "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole", "UpdateDate": "2016-05-23T16:29:57Z" } }

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

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

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

{ "PolicyVersion": { "CreateDate": "2016-05-23T16:29:57Z", "VersionId": "v3", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*", "Effect": "Allow" } ] }, "IsDefaultVersion": true } }

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

注記

♪AWS DMSコンソールに追加されている場合、これらのロールはAWSアカウントを自動的に更新します。

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

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

  1. 次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに dmsAssumeRolePolicyDocument.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
  2. 次のコマンドを使用して 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 で使用する IAM ロール dms-cloudwatch-logs-role を作成するには

  1. 次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに dmsAssumeRolePolicyDocument2.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
  2. 次のコマンドを使用して 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-endpointAmazon S3 へのアクセスを許可するには

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

  1. 次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに dmsAssumeRolePolicyDocument3.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" } ] }
  2. 次のコマンドを使用して AWS CLI でロールを作成します。

    aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json
  3. 次のコマンドを使用して 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 ポリシーが設定されている必要があります。

リソース名とタグを使用したファイングレインアクセスコントロール

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

リソース名を使用したアクセスの制御

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

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

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116: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 ポリシーを指定することもできます。

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

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116: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

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

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116: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

タグを使用してアクセスをコントロールする

AWS DMS は、お客様が定義するポリシーで利用できる一般的なキーと値ペアのセットを定義します。それ以外のタグ付けの要件はありません。AWS DMS リソースのタグ付けの詳細については、「でのリソースへのタグ付けAWSDatabase Migration Service」を参照してください。

以下のリストは、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」のレプリケーションインスタンスへのアクセスを制限します。

{ "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エンドポイントへのアクセスを制限します。

{ "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」のレプリケーションタスクへのアクセスを制限します。

{ "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 KMS のアクセス許可の指定

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

注記

暗号化キーとして使用するカスタムまたは既存の AWS KMS キーは、対称キーである必要があります。AWS DMS では、非対称暗号化キーの使用がサポートされていません。対称暗号化キーおよび非対称暗号化キーの詳細については、https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.htmlAWS Key Management Serviceデベロッパーガイド

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

カスタム KMS キーを使用するには、次のオプションの 1 つを使用して、カスタム KMS キーにアクセス許可を割り当てます。

  • 移行に使用する IAM ユーザーアカウントを、AWS KMS カスタムキーのキー管理者あるいはキーユーザーとして追加します。これにより、IAM ユーザーアカウントに必要な AWS KMS 権限が確実に付与されます。このアクションは、AWS DMS を使用するために IAM ユーザーアカウントに付与する IAM のアクセス許可に追加されます。キーユーザーへのアクセス権限の付与の詳細については、「」を参照してください。KMS キーの使用をキーユーザーに許可するAWS Key Management Service開発者ガイド の最初のリリースです。

  • カスタム 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デベロッパーガイド

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

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

次のでを見つけることができます。AWS KMSのAWS Management Console

  1. AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms) を開きます。

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

  3. 次のいずれかのオプションを選択します。AWS KMSキー:

    • AWS によって作成および管理されるアカウントのキーを表示するには、ナビゲーションペインで [AWS マネージドキー] を選択します。

    • ユーザーが作成および管理するアカウント内のキーを表示するには、ナビゲーションペインで [Customer managed keys (カスタマー管理型のキー)] を選択します。

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

また、次の AWS DMS エンドポイントでターゲットデータを暗号化するためだけにカスタム AWS KMS キーを作成することができます。

KMS キーを使用して AWS DMS リソースを作成した後に、リソースの暗号化キーを変更することはできません。AWS DMS リソースを作成する場合は、必ず暗号化キー要件を調べてください。

AWS Database Migration Service のネットワークセキュリティ

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 にある設定— エンドポイントで使用されるセキュリティグループは、データベースポートでレプリケーションインスタンスからの進入を許可する必要があります。レプリケーションインスタンスによって使用されるセキュリティグループでエンドポイントへの受信が許可されることを確認してください。または、エンドポイントにより使用されるセキュリティグループに、レプリケーションインスタンスのプライベート IP アドレスにアクセスを許可するセキュリティルールを作成できます。

  • 2 つの VPC がある設定— レプリケーションインスタンスで使用されるセキュリティグループには、VPC の範囲とデータベースの DB ポートに関するルールが必要です。

  • AWS Direct Connect または VPN を使用した VPC へのネットワークの設定— VPC からオンプレミス VPN へのトンネルに向かうトラフィックを許可する VPN トンネル。この設定では、特定の IP アドレスまたは範囲に向かうトラフィックを、VPC からオンプレミス VPN へのトラフィックをブリッジできるホストに送信するルーティングルールが VPC に含まれています。この場合、レプリケーションインスタンスのプライベート IP アドレスまたはセキュリティグループから NAT インスタンスへのトラフィックを許可する必要がある独自のセキュリティグループ設定が NAT ホストに含まれています。

  • インターネットを使用した VPC へのネットワークの設定— VPC セキュリティグループには、VPC に向かわないトラフィックをインターネットゲートウェイに送信するルーティングルールが含まれている必要があります。この設定では、エンドポイントへの接続がレプリケーションインスタンス上のパブリック IP アドレスから行われているように見えます。

  • ClassicLink を使用して VPC 内に存在しない RDS DB インスタンスを VPC 内の DB インスタンスに設定— ソースまたはターゲットの Amazon RDS DB インスタンスが VPC 内になく、レプリケーションインスタンスが存在する VPC とセキュリティグループを共有していない場合、プロキシサーバーを設定し、ClassicLink を使用してソースおよびターゲットのデータベースに接続できます。

  • ソースエンドポイントは、レプリケーションインスタンスによって使用される VPC 外にあり、NAT ゲートウェイを使用します— ネットワークアドレス変換 (NAT) ゲートウェイは、単一の Elastic network interface にバインドされた単一の Elastic IP アドレスを使用して設定できます。次に、この Elastic network interface は NAT 識別子 (nat-#####) を受け取ります。インターネットゲートウェイではなくその NAT ゲートウェイへのデフォルトルートが VPC に含まれている場合、レプリケーションインスタンスはインターネットゲートウェイのパブリック IP アドレスを使用してデータベースエンドポイントに接続しているように見えます。この場合、VPC 外のデータベースエンドポイントへの進入は、レプリケーションインスタンスのパブリック IP アドレスではなく NAT アドレスからの進入を許可する必要があります。

  • 非 RDBMS エンジン用の VPC エンドポイント–AWS DMSは、非 RDBMS エンジン用の VPC エンドポイントをサポートしていません。

AWS Database Migration Service での SSL の使用

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 のサポート」を参照してください。

エンドポイントに証明書を割り当てるには、ルート証明書を指定するか、エンドポイントにデプロイされるサーバー SSL 証明書の署名に使用された、ルートに導く (証明書バンドルとして) 中間 CA 証明書チェーンを指定します。証明書は、PEM 形式の X509 ファイルとしてのみ受け入れられます。証明書をインポートすると、エンドポイントにその証明書を指定するために使用できる Amazon リソースネーム (ARN) を受け取ります。Amazon RDS を使用している場合は、ルートの CA と証明書バンドルをダウンロードできます。rds-combined-ca-bundle.pemファイルは、Amazon RDS によってホストされます。このファイルのダウンロードの詳細については、「」を参照してください。SSL/TLS を使用した DB インスタンスへの接続の暗号化Amazon RDS ユーザーガイド

SSL 証明書認証に使用する SSL モードは、複数の中から選択できます。

  • なし— 接続は暗号化されません。このオプションは安全ではありませんが、必要なオーバーヘッドが小さくなります。

  • 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

デフォルト サポート外 サポート対象 サポート外
注記

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

AWS DMS で SSL を使用する場合の制限

AWS DMS で SSL を使用する際の制限事項を次に示します。

  • Amazon Redshift ターゲットエンドポイントへの SSL 接続はサポートされていません。AWS DMSは Amazon S3 バケットを使用して Amazon Redshift データベースにデータを転送します。この転送は、Amazon Redshift によってデフォルトで暗号化されます。

  • SSL が有効な Oracle エンドポイントで変更データキャプチャ (CDC) タスクを実行すると、SQL タイムアウトが発生することがあります。CDC カウンターに想定の数値が反映されないという問題がある場合は、タスク設定の ChangeProcessingTuning セクションの MinimumTransactionSize パラメータに小さい値を設定します。最低値 100 から始めることができます。MinimumTransactionSize パラメータの詳細については、「変更処理のチューニング設定」を参照してください。

  • インポートできる証明書の形式は、.pem 形式および .sso(Oracle ウォレット)形式のみです。

  • 場合によっては、サーバーの SSL 証明書が中間認証局 (CA) によって署名されていることがあります。その場合は、中間 CA からルート CA までの証明書チェーン全体が 1 つの.pem ファイルとしてインポートされていることを確認します。

  • サーバーで自己署名証明書を使用している場合、SSL モードとして [require] を選択します。require SSL モードでは、サーバーの SSL 証明書が暗黙的に信頼され、証明書が CA により署名されたかどうかの検証は試行されません。

証明書の管理

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


                     AWS Database Migration ServiceSSL 証明書の管理

MySQL 互換、PostgreSQL、または SQL Server のエンドポイントでの SSL の有効化

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

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

  1. にサインインします。AWS Management Console[(AWS DMSコンソールhttps://console.aws.amazon.com/dms/v2/

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

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

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

  4. エンドポイントへの接続の暗号化に使用する証明書をアップロードします。

    注記

    証明書をアップロードするには、AWS DMSエンドポイントの作成時や変更時にコンソールを使用するには、[] を選択します。新しい CA 証明書の追加] のデータベースエンドポイントの作成ページで.

    ターゲットとしての Aurora サーバーレスの場合は、Aurora Serverless での TLS/SSL の使用

  5. ステップ 2: ソースおよびターゲットエンドポイントを指定する」での説明に従って、エンドポイントを作成します。

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

  1. にサインインします。AWS Management Console[(AWS DMSコンソールhttps://console.aws.amazon.com/dms/v2/

    IAM ユーザーとしてサインインしている場合は、にアクセスするための適切なアクセス権限があることを確認します。AWS DMS。データベース移行に必要なアクセス許可の詳細については、「AWS DMS の使用に必要な IAM アクセス許可」を参照してください。

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

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

  4. エンドポイントへの接続の暗号化に使用する証明書をアップロードします。

    注記

    証明書をアップロードするには、AWS DMSエンドポイントの作成時や変更時にコンソールを使用するには、[] を選択します。新しい CA 証明書の追加] のデータベースエンドポイントの作成ページで.

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

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

    [verify-ca] モードまたは [verify-full] モードを選択した場合は、次に示すように、使用する証明書を [CA 証明書] に指定します。

    
                             AWS Database Migration ServiceSSL 証明書の管理

  7. [Modify] を選択します。

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

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

データベースのパスワードの変更

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

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

  1. にサインインします。AWS Management Console[(AWS DMSコンソールhttps://console.aws.amazon.com/dms/v2/

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

  2. ナビゲーションペインで、[Tasks] を選択します。

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

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

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

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

  7. [Password] ボックスに新しいパスワードを入力し、[Modify] を選択します。

  8. ナビゲーションペインから [Tasks] を選択します。

  9. 先ほど停止したタスクを選択してから、[Start/Resume] を選択します。

  10. タスクを続行する方法に応じて、[Start] または [Resume] のいずれかを選択してから、[Start task] を選択します。