【Security Hub修復手順】 [RDS.2] Amazon RDS DB インスタンスはパブリックアクセスを禁止する必要があります。

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

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

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

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

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

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

[RDS.2] Amazon RDS DB インスタンスはパブリックアクセスを禁止する必要があります。これは、PubliclyAccessible 設定により判断されます。

[RDS.2] Amazon RDS DB instances should prohibit public access, as determined by the PubliclyAccessible configuration

対象コントロールの説明

インスタンス設定項目内の PubliclyAccessibleフィールドを評価して、Amazon RDS DBインスタンスがパブリックにアクセスできるかどうかをチェックします。
評価対象のサービスは下記です。

  • Amazon RDS DBインスタンス
  • Amazon Aurora DBインスタンス

PubliclyAccessible で設定されている場合、DBインスタンスはパブリックIPアドレスに解決可能な DNS 名を持ちます。
本コントロールに対応しない場合、インターネットからDBインスタンスにパブリックアクセスされてしまい、意図せぬデータ漏洩発生の可能性がありますのでご注意ください。

前提条件

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

修復手順

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

まずAWS Security HubのコンソールからRDS.2のチェック結果を確認します。
表示項目から、今回の対象はtestというAmazon RDS DBインスタンスであることが分かります。

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

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

Amazon RDSの画面から対象のデータベースを確認します。
接続とセキュリティタブ内のパブリックアクセス可能ありとなっていることが確認できます。

この状態でエンドポイントに対してnslookupを試してみると、52.198.166.131というパブリックIPアドレスが返されてしまいます。

$ nslookup test.c4vpijbyjolf.ap-northeast-1.rds.amazonaws.com

Server:		127.0.2.2
Address:	127.0.2.2#53

Non-authoritative answer:
Name:	ec2-52-198-166-131.ap-northeast-1.compute.amazonaws.com
Address: 52.198.166.131

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

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

  • DBインスタンスがパブリックアクセス可能であることは意図したものか?
    • YESの場合
      • 対象のFindingsを抑制済みに変更し、以降の検知対応から除外します
    • NOの場合
      • 3.パブリックアクセスの削除に進みます。

3.パブリックアクセスの削除

3.1 DB許可画面へのアクセス

マネジメントコンソールから、 RDSデータベースにアクセスします。
対象のデータベースをチェックし、変更ボタンをクリックします。

3.2 プライベートスナップショットへの変更の保存

変更画面中部の接続設定の中にある追加設定を開きます。
パブリックアクセスのラジオボタンをパブリックアクセス不可に変更します。

設定できたら最下部まで画面をスクロールし、続行ボタンをクリックします。

変更のサマリーと変更のスケジューリング設定の画面が表示されます。
今回はタイミングとしてすぐに適用を選択します。
なお、今回の変更は再起動を伴うようなものではないので、特に理由がなければすぐに適用して問題ありません。

設定できたら、DBインスタンスを変更ボタンをクリックします。

以上で修復は完了です。

修復確認

対象のDBインスタンスの画面に移動し、ステータスが利用可能であることを確認します。
接続とセキュリティタブ内のパブリックアクセス可能なしとなっていればOKです。

この状態でエンドポイントに対してnslookupを実行しました。
10.0.1.104というプライベートIPアドレスが返されており、パブリックアクセスができなくなっていることがこちらでも確認できました。

$ nslookup test.c4vpijbyjolf.ap-northeast-1.rds.amazonaws.com

Server:		127.0.2.2
Address:	127.0.2.2#53

Non-authoritative answer:
Name:	test.c4vpijbyjolf.ap-northeast-1.rds.amazonaws.com
Address: 10.0.1.104

最後に

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

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

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

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

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

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