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 DMS は、IAM ユーザーとしてサインインしている場合、適切なアクセス許可を前提とします。たとえば、IAM を使用して、DB インスタンスのおよびクラスターの作成、記述、変更、削除と、リソースのタグ付け、セキュリティグループの変更をどのユーザーに許可するかを決定できます。IAM での AWS DMS 使用の詳細については、「の Identity and Access Management AWS Database Migration Service」をご参照ください。

  • 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 からの送信 (egress) がルールで許可されているセキュリティグループに関連付ける必要があります。このアプローチでは、ソースおよびターゲットデータベースエンドポイントで適切な受信が有効になっている限り、レプリケーション インスタンスからそれらのエンドポイントへの通信が許可されます。

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

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

暗号化キーの設定と AWS KMS のアクセス許可の指定

AWS DMS では、レプリケーション インスタンスによって使用されるストレージと、エンドポイントの接続情報を暗号化します。レプリケーション インスタンスで使用されるストレージを暗号化するために、AWS DMS では AWS アカウントに固有の AWS Key Management Service (AWS KMS) キーを使用します。このキーは、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」をご参照ください。

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

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

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

  • カスタム 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 アカウントの AWS DMS 用にデフォルトの暗号化キーを作成します。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 および対応している AWS のサービス (Amazon 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 アドレスにアクセスを許可するセキュリティルールを作成できます。

  • 複数の VPC を使用する構成 - レプリケーション インスタンスで使用されるセキュリティグループには、VPC 範囲とデータベースの DB ポートに関するルールが必要です。

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

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

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

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

  • 非 RDBMS エンジンの VPC エンドポイント - AWS DMSは、非 RDBMS エンジンの VPC エンドポイントをに対応しません。

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

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

移行またはレプリケーションタスクでエンドポイント用のデータベースのパスワードを変更するには
  1. AWS Management Console にサインインし、AWS DMS コンソール (https://console.aws.amazon.com/dms/v2/) を開きます。

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

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

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

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

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

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

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

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

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

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