【Security Hub修復手順】[DMS.1] AWS Database Migration Service レプリケーションインスタンスは、パブリックでない必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部のトクヤマシュンです。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[DMS.1] AWS Database Migration Service レプリケーションインスタンスは、パブリックでない必要があります

[DMS.1] Database Migration Service replication instances should not be public

対象コントロールの説明

このコントロールではAWS Database Migration Service(以下DMS) レプリケーションインスタンスがパブリックかどうかをチェックします。
具体的には、PubliclyAccessibleフィールドの値がFalseであった場合、パブリックインスタンスとみなされます。

DMSのレプリケーションインスタンスはデータベースの移行の際にデータを格納するインスタンスであり、
通常は外部に公開すべきではありません。
本コントロールに対応しない場合、意図せぬデータ漏洩発生の可能性がありますのでご注意ください。

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

修復手順

1.修正対象のスナップショット特定

まずAWS Security HubのコンソールからDMS.1のチェック結果を確認します。
表示項目から、今回の対象はtest-dmsであることが分かります。

東京リージョンの場合、下記リンクで上図の画面を確認可能です。

https://ap-northeast-1.console.aws.amazon.com/securityhub/home?region=ap-northeast-1#/standards/aws-foundational-security-best-practices-1.0.0/DMS.1

2.ステークホルダーに確認

ステークホルダーに以下を確認します。

  • DMSレプリケーションインスタンスのパブリック公開は意図したものか?
    • YESの場合
      • 対象のFindingsを抑制済みに変更し、以降の検知対応から除外します
      • この場合、盗聴リスクを回避するために下記のいずれかの対策をとることが望ましいです
        • ソースエンドポイントで「SSLモード」を有効化
        • VPN (インターネットVPNもしくはClient VPN)を利用
    • NOの場合
      • 3.プライベートインスタンスへの変更に進みます

3.プライベートインスタンスへの変更

原則として、パブリックインスタンスをそのままプライベートに変更することはできないため、
一度パブリックインスタンスを削除し、プライベートインスタンスを再作成することが必要です。
そのため、既存のタスクがあった場合には一からレプリケーションをやり直すことになるのでご注意ください。

3.1 パブリックなレプリケーションインスタンスの削除

マネジメントコンソールから、DMS→レプリケーションインスタンスのサービス画面にアクセスします。
対象のインスタンス(今回はtest-dms)をチェックし、Actions→Deleteをクリックします。

ポップアップが現れるので、確認の上でDeleteボタンをクリックします。

しばらくして削除が完了し、画面上からレプリケーションインスタンスが表示されなくなればOKです。

3.2 プライベートなレプリケーションインスタンスの作成

マネジメントコンソールから、DMS→レプリケーションインスタンスのサービス画面にアクセスします。
Create replication instanceボタンをクリックします。

レプリケーションタスクに応じて、インスタンスの設定をします。
ここで、インスタンスをプライベートに設定するためには、Connectivity and securityにあるPublic accessibleのチェックを外して無効化することが必要です。
デフォルトでは有効となっているので注意してください。

設定ができれば、Create replication instanceボタンをクリックします。

しばらくしてインスタンスが起動し、StatusがAvailableになればOKです。

以上で修正は完了です。

修復確認

インスタンスがプライベートかどうかはマネジメントコンソールから確認することはできないので、AWS CLIを使って確認します。 

今回はAWS CloudShellから下記コマンドを実行し、test-dmsというレプリケーションインスタンスのPubliclyAccessibleFalseとなっていることを確認しました。

[cloudshell-user@ip-10-2-57-79 ~]$ aws dms describe-replication-instances --query 'ReplicationInstances[*].[ReplicationInstanceIdentifier,PubliclyAccessible]' --output table 
------------------------------
|DescribeReplicationInstances|
+-------------+--------------+
|  test-dms   |  False       |
+-------------+--------------+
[cloudshell-user@ip-10-2-57-79 ~]$

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、トクヤマシュンでした。

クラスメソッドメンバーズをご契約の皆さまに

AWS Security Hub 「基礎セキュリティのベストプラクティス」の各チェック項目(コントロール)に対する弊社としての推奨対応やコメントを記載しているClassmethod Cloud Guidebookを提供しています。 クラスメソッドメンバーズポータルの「お役立ち情報」→「組織的な AWS 活用のためのノウハウ」からご参照ください。