[アップデート]新たに7つのチェック項目が追加されたSecurity HubのAWS基礎セキュリティのベストプラクティスを確認してみた

Security Hubのコンプライアンスチェック項目であるAWS基礎セキュリティのベストプラクティスで追加された7つの項目の解説と、私流チューニング案を紹介します。
2020.08.14

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

こんにちは、臼田です。

みなさん、セキュリティチェックしてますか?(挨拶

先日Security Hubのコンプライアンスチェック項目が増えました。

AWS Security Hub launches new automated security controls

既存ではチェックの種類が3つあり、CISベンチマーク、PCI DSS v3.2.1、AWS基礎セキュリティのベストプラクティスです。

この内PCI DSSに12個、AWS基礎セキュリティのベストプラクティスに7個のチェック項目が追加されました。(合計38項目)

今回はAWS基礎セキュリティのベストプラクティスの項目を見ていこうと思います。

リリース時の31項目とその解説については下記をご参照ください。

7つの追加項目

項目は以下のとおりです。解説も付けていきます。

  • [AutoScaling.1]ロードバランサーに関連付けられているAuto Scalingグループは、ロードバランサーのヘルスチェックを使用する必要があります
    • Auto ScalingではEC2自体のヘルスチェックを利用することもできますが、ロードバランサーのヘルスチェックと連動させないとEC2は動いているがHTTPサービスが応答しない場合などロードバランサーのヘルスチェックが失敗した際に自動で切り離し修復することが出来なくなるためロードバランサーのヘルスチェックを利用する必要があります。
  • [DMS.1]データベース移行サービスのレプリケーションインスタンスは公開しないでください
    • 通常公開すべきではありません
  • [EC2.4]停止されたEC2インスタンスは、指定された期間後に削除する必要があります
    • 停止したまま放置されるEC2があることはあまり好ましくありません
    • 現状は30日以上経過したものに対して警告を出す設定になっていました
  • [EC2.6]すべてのVPCでVPCフローログを有効にする必要がある
    • 問題があった際にVPCのトラフィックについて確認する方法はフローログになります
    • 本番環境などでは取得が望ましいです
  • [S3.5] S3バケットでは、Secure Socket Layerを使用するリクエストが必要です
    • S3へのアクセスにHTTPが利用できるケースがありそれを防止します
    • 詳細はこちら
  • [SageMaker.1] Amazon SageMakerノートブックインスタンスは直接インターネットにアクセスできません
    • 通常公開すべきではありません
  • [SSM.3] Systems Managerによって管理されるインスタンスには、準拠のステータスであるCOMPLIANTが必要です
    • EC2に対するパッチの適用状態などを管理するステータスです
    • SSMでEC2を管理する場合にはすべてCOMPLIANT状態が望ましいです

ちなみに[EC2.4]と[EC2.6]が追加されているのに[EC2.5]が存在しませんでした。なぜ…

また、既存の「[ACM.1]インポートされたACM証明書は、有効期限から90日以内に更新する必要があります」が90日から30日に変更されました。90日だと少し早すぎた感じですね。

私流チューニング案

さて、それぞれセキュリティのベースラインを上げるために有用な項目ですが、すべて活用するとけっこう大変だったりします。私流のチューニング案を紹介します。

もちろんそれぞれの環境毎検討いただくのが一番いいですが、参考にご活用ください。

必ず使う

  • [AutoScaling.1]ロードバランサーに関連付けられているAuto Scalingグループは、ロードバランサーのヘルスチェックを使用する必要があります
  • [DMS.1]データベース移行サービスのレプリケーションインスタンスは公開しないでください
  • [SageMaker.1] Amazon SageMakerノートブックインスタンスは直接インターネットにアクセスできません

すべて特にじゃまになることなく確実に利用して問題ない項目だと思います。

本番環境だけ使う

  • [EC2.4]停止されたEC2インスタンスは、指定された期間後に削除する必要があります
    • 30日止めるインスタンスは場合によりあるので本番環境だけにしています
    • 流石に30日止めるくらいなら検証環境でも消したほうがいい、ということもあります
    • AMIを取得して削除することで料金の削減につながるので、適用してもいいケースは多いです
  • [EC2.6]すべてのVPCでVPCフローロギングを有効にする必要がある
    • VPCフローログは取得にぼちぼち料金がかかるのですべての環境で、全てのVPCで取得すると必要以上に料金がネックになります
    • 特に重要な環境や、重要なVPCだけに絞ることも選択肢の一つです
  • [SSM.3] Systems Managerによって管理されるインスタンスには、準拠のステータスであるCOMPLIANTが必要です
    • SSMを利用する目的は様々で、必ずしもコンプライアンス機能を利用するとは限りません
    • 本番環境ではコンプライアンス機能を活用したほうがいいのでこのレベルにしています
    • ただしコンプライアンス機能の管理も少し大変なので使いこなせるまでは無効でもいいと思います

使わない

  • [S3.5] S3バケットでは、Secure Socket Layerを使用するリクエストが必要です
    • 一見あると良さそうですが、これを強制するバケットポリシーを適用していかないと行けなくて運用が大変になります
    • このバケットポリシーの追加のために既存のバケットポリシーに影響を与えたりオペミスにより状態が悪くなる可能性は否定できません
    • 一方この設定がなくても殆どの場合SSLは強制されているため必要性が薄いと感じました

まとめ

AWS基礎セキュリティのベストプラクティスで追加された7つの項目の解説と、私流チューニング案を紹介しました。

ぜひご活用ください。