[運用のコツ]AWS Security Hub CSPM運用のためのコントロールのカテゴライズと対応方針の決め方

[運用のコツ]AWS Security Hub CSPM運用のためのコントロールのカテゴライズと対応方針の決め方

AWS Security Hub CSPMで見つかったセキュリティチェックの項目を是正するのが大変、という課題はありませんか?カテゴライズして対応方針を簡単に決めていく方法を解説します
Clock Icon2025.06.24

こんにちは、臼田です。

みなさん、AWSのセキュリティ運用してますか?(挨拶

AWSのセキュリティ運用に欠かせないサービスの1つがAWS Security Hub CSPMですが、もちろん使っていますよね?

今回はタイトルにあるようにAWS Security Hub CSPMの運用のコツを共有します。

普段AWS Security Hub CSPMを利用しているけど、検出内容が多くて対応がうまくできていないとか、各チームがバラバラの基準で対応していて全体でレベル感を合わせられていないなどいろんな課題があると思います。

このような悩みに対する1つのアプローチを提示できればと思います。

ちなみに最近のアップデートで従来「AWS Security Hub」と呼んでいたものが、「AWS Security Hub CSPM」となり、更に新しく各種AWSセキュリティサービスを束ねて可視化や関連付けた調査ができるようになったのが新しい「AWS Security Hub」なので、間違えないように気をつけてください。詳細は下記をご確認ください。

https://dev.classmethod.jp/articles/aws-security-hub-unified-solution/

この記事上ではだいたい「AWS Security Hub CSPM」の表記で統一しますが、画像など一部に単に「AWS Security Hub」とだけの表記も残っています。それらも「AWS Security Hub CSPM」と読み替えてください。新しい「AWS Security Hub」には触れません。

AWS Security Hub CSPM概要

運用のコツの前に、簡単にAWS Security Hub CSPMを整理しておきましょう。

AWS Security Hub CSPMは、AWSアカウント上の様々なリソースの設定状態を収集し、危険な設定を通知してくれるサービスです。

001_securityhub_control_categorize

設定情報自体はAWS Configがその役割を担います。AWS Security Hub CSPMはAWS Configが収集してきた設定情報に対して、危険なものが無いかをチェックし検出してくれます。

例えば、コントロールIDEC2.19ではSecurity GroupでSSHを0.0.0.0/0で許可しているものを検出したり、コントロールIDIAM.8では長期間未使用のアクセスキーを検出してくれます。

これらのセキュリティチェックはCloud Security Posture Management、CSPMと呼ばれる領域の機能で、クラウド時代に設定も多くなりバラバラな場所で沢山の設定を管理する事が増えたため生まれた仕組みです。

AWS Security Hub CSPMでは複数の目的に合わせたセキュリティチェックリスト(スタンダードと呼ぶ)があります。例えば以下のものです。

  • CIS AWS Foundations Benchmark
  • PCI DSS
  • NIST SP 800-53 Revision 5
  • AWS 基本的なセキュリティのベストプラクティス(AFSBP)

上3つは特定のコンプライアンス要件のものですが、一番下のAFSBPはAWSが定義し更新し続けているスタンダードです。

私の個人的な意見としては、特に組織として明確に従うコンプライアンス要件がない場合などで一番活用すべきなのがこのAFSBPです。

AFSBPは対応しているAWSリソースが60種類、チェック項目が318種類と網羅性も高く実務的なチェック項目(コントロールと呼ぶ)が多いので強く推奨します。例えばCIS AWS Foundations Benchmarkを利用している場合でも、AFSBPを併用すべきと提案する程度です。

一方AWS Security Hub CSPMでチェックされる内容は多岐にわたるため、AWSやAWSセキュリティの初心者からするとハードルが高いように感じるかもしれません。

しかし、AWS Security Hub CSPMは初心者にこそ推奨されるサービスです。なぜならAWSの多岐にわたる設定を最初から適切に設定していくことは困難だからです。AWS Security Hub CSPMを最初から利用することで、もし誤って危険な設定をした場合にはすぐに検出され、「それが危険なことだ」と認識し学習することができます。

AWSを適切に使っていくための学習にもAWS Security Hub CSPMが使える、と考えて最初から使いましょう。絶対に最初から使いましょう。そして全てのAWS環境で使いましょう。

AWS Security Hub CSPM運用の課題

AWS Security Hub CSPMを使い始めた方など、以下のような画面に遭遇して悩んでいませんか?

0022_securityhub_control_categorize

うわっ…私のセキュリティスコア、低すぎ…!?

既存である程度利用されたAWS環境の場合には、そこからAWS Security Hub CSPMを有効化すると上記のように最初から多数の検出があり、セキュリティスコアも低くて何から始めればいいのかわからなくなります。

これは各種AWSサービス自体や機能についても十分理解していないと判断が難しいという背景があります。

組織の場合には、スコアが低い状態のまま誰もうまく対応できず放置されている場合もあります。

これは組織の中で具体的にAWSのセキュリティ対策をどうしていくのかという方針が決まっていないことから、担当者が決まっていなかったり、基準が決まっていないなどの要因もあります。

AWS Security Hub CSPM運用のコツ

それでは本題です。

タイトルにあるように、ここではAWS Security Hub CSPM運用のコツとして各コントロール、つまりセキュリティチェックの項目を__カテゴライズ__することを推奨します。

どういうことかというと、300以上あるコントロールを10種類程度のチェック項目のカテゴリに当てはめていくということです。だいたい同じような内容にカテゴライズできれば、考えるのも簡単になりますよね。

具体的には以下のようになります。

003_securityhub_control_categorize

ここに上げているカテゴリの項目は以下です。

  • 通信の暗号化
  • 保管時の暗号化
  • ログ取得
  • 可用性
  • バックアップ
  • アクセス制御
  • 認証情報管理
  • 設定チェック
  • 保護
  • 脆弱性管理
  • コスト最適化

カテゴリの詳細解説は一旦後に回します。

そしてカテゴライズしたら、各AWS環境でこれらのカテゴリをどのように適用していくか対応方針を検討します。

大きく適用する内容が変わる環境の種類として、「本番環境」と「本番環境以外」が挙げられます。これらは明確に違い、本番環境では一般的に以下の特徴がありカテゴリごとの対応方針をより厳密にする必要があります。

  • 外部に公開する環境
  • 守るべき重要なデータがある
  • システムの重要度が高い

そのため、本番環境以外と比べて特に「可用性」「ログ取得」「バックアップ」の必要性が上がります。

004_securityhub_control_categorize

もちろん、環境の種類の定義はみなさんの組織に合わせてもっと種類を増やしてもよいです。例えば本番環境以外といっても、重要なシステムの開発環境であればより本番に近く、個人の検証を行う環境であればもっと緩やかに対応方針を適用していく、とすることも可能でしょう。

大事なのはコントロールのカテゴリと環境の種類を掛け算して、自分たちの対応方針を決めていくことです。

対応方針としてはここでは以下3種類としました。

  • 対応必須
    • どのような場合でも必須なもの
    • あるいは組織全体のセキュリティガバナンスとして管理したいもの
  • 通知のみ
    • 知っておいた方が良いが、組織全体のセキュリティガバナンスとしての管理が不要なもの
    • あるいは可用性要件など、本番環境では必須になるが本番環境以外の場合など
  • 無効化
    • セキュリティの管理として必要ない、あるいは運用負荷が高いなど邪魔になると判断したもの

もっと細かく決めてもよいですが、最初はこれぐらいで定義していくのがいいと思います。また、組織全体での定義として考える場合、各部門ごと決めてほしいことと全体で揃えたほうが良いことがあるので、どちらが決めるべきことなのか?というのは対応方針に織り込んでおくとよいでしょう。

AFSBPのカテゴライズ

実際にAFSBPのコントロールを上記カテゴリに当てはめてみます。これが一番大変だと思いますが、私がやっておきました。以下のようになります。(これは私のカテゴライズと私の対応方針の決め方なので、真似してよいですし、アレンジしてもよいです)

名前 重要度 カテゴリ 本番環境 本番環境以外
[ Account.1 ] AWSアカウントのセキュリティ連絡先が記載されていること Medium 設定チェック 対応必須 対応必須
[ ACM.1 ] ACM 証明書は、指定された期間後に更新する必要があります。 Medium 可用性 対応必須 対応必須
[ ACM.2 ] ACM が管理する RSA 証明書は、少なくとも 2,048 ビットの鍵長を使用する必要があります High 通信の暗号化 対応必須 対応必須
[ APIGateway.1 ] API Gateway RESTとHTTP APIのロギングを有効にする必要があります Medium ログ取得 対応必須 通知のみ
[ APIGateway.2 ] API Gateway REST APIステージでは、バックエンド認証にSSL証明書を使用するように設定する必要があります Medium 通信の暗号化 通知のみ 通知のみ
[ APIGateway.3 ] API GatewayのREST APIステージでは、AWS X-Rayのトレースが有効になっている必要があります Low 設定チェック 無効化 無効化
[ APIGateway.4 ] API Gatewayは、AWS WAFのWeb ACLと関連付ける必要があります Medium 設定チェック 通知のみ 通知のみ
[ APIGateway.5 ] API Gateway REST APIのキャッシュデータは保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 通知のみ
[ APIGateway.8 ] API Gateway HTTP API および WebSocket API においてルートの認可タイプを指定する必要があります Medium 設定チェック 対応必須 対応必須
[ APIGateway.9 ] API Gateway V2 ステージにアクセスロギングを設定する必要があります Medium ログ取得 対応必須 通知のみ
[ AppSync.1 ] AppSync API キャッシュは保管時に暗号化されている必要があります Medium 保管時の暗号化 対応必須 対応必須
[ AppSync.2 ] AWS AppSync は、リクエストレベルとフィールドレベルのロギングを有効にする必要があります Medium ログ取得 対応必須 通知のみ
[ AppSync.5 ] AWS AppSync GraphQL API は API キーで認証すべきではありません High 設定チェック 対応必須 通知のみ
[ AppSync.6 ] AppSync API キャッシュは転送時に暗号化されている必要があります Medium 通信の暗号化 対応必須 対応必須
[ Athena.4 ] Athenaワークグループではログ記録が有効になっている必要があります Medium ログ取得 通知のみ 無効化
[ AutoScaling.1 ] ロードバランサーに関連付けられた Auto Scaling グループはELBヘルスチェックを使用する必要があります Low 可用性 通知のみ 通知のみ
[ AutoScaling.2 ] EC2 Auto Scalingグループは複数のアベイラビリティーゾーンにまたがって配置される必要があります Medium 可用性 対応必須 無効化
[ AutoScaling.3 ] Auto Scaling グループは、EC2インスタンスが Instance Metadata Service Version 2 (IMDSv2) を必要とするように設定すべき High 設定チェック 対応必須 対応必須
[ AutoScaling.5 ] Auto Scalingグループに関連付けられた起動設定はパブリックIPを割り当てる設定であってはならない High アクセス制御 対応必須 対応必須
[ AutoScaling.6 ] Auto Scaling グループは複数のインスタンスタイプを複数のアベイラビリティーゾーンで使用すべき Medium 可用性 対応必須 無効化
[ AutoScaling.9 ] EC2 Auto ScalingグループはEC2起動テンプレートを使用する必要がある。 Medium 設定チェック 対応必須 対応必須
[ Backup.1 ] AWS Backup のリカバリポイントは保管時の暗号化を有効化する必要があります Medium 保管時の暗号化 対応必須 通知のみ
[ CloudFront.1 ] CloudFrontのディストリビューションでは、デフォルトのルートオブジェクトが設定されている必要があります Critical アクセス制御 対応必須 対応必須
[ CloudFront.3 ] CloudFrontのディストリビューションでは、トランジット時に暗号化が必要です Medium 通信の暗号化 対応必須 対応必須
[ CloudFront.4 ] CloudFrontのディストリビューションでは、オリジンフェイルオーバーを設定する必要があります Low 可用性 無効化 無効化
[ CloudFront.5 ] CloudFrontのディストリビューションはログを有効にする必要がある Medium ログ取得 対応必須 無効化
[ CloudFront.6 ] CloudFrontのディストリビューションはAWS WAFを有効にする必要があります Medium 保護 対応必須 対応必須
[ CloudFront.7 ] CloudFrontはカスタムSSL/TLS証明書を使用する必要があります Medium 通信の暗号化 対応必須 対応必須
[ CloudFront.8 ] CloudFrontのディストリビューションでは、SNIを使用する設定にする必要があります Low 通信の暗号化 無効化 無効化
[ CloudFront.9 ] CloudFront ディストリビューションはカスタムオリジンへのトラフィックを暗号化します Medium 通信の暗号化 対応必須 対応必須
[ CloudFront.10 ] CloudFrontディストリビューションは、エッジロケーションとカスタムオリジン間で非推奨のSSLプロトコルを使用しないでください Medium 通信の暗号化 対応必須 対応必須
[ CloudFront.12 ] CloudFront ディストリビューションは、存在しない S3 オリジンをポイントしない必要があります。 High 設定チェック 対応必須 対応必須
[ CloudFront.13 ] CloudFrontのディストリビューションはOrigin Access Control(OAC)を使用する必要があります。 Medium 設定チェック 対応必須 対応必須
[ CloudTrail.1 ] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります High ログ取得 対応必須 対応必須
[ CloudTrail.2 ] CloudTrail では、保管時の暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 対応必須
[ CloudTrail.4 ] CloudTrailのログファイルの検証が有効であること Low ログ取得 対応必須 対応必須
[ CloudTrail.5 ] CloudTrailのトレイルは、Amazon CloudWatch Logsと統合されるべきです Low ログ取得 無効化 無効化
[ CodeBuild.1 ] CodeBuild Bitbucket ソースリポジトリ URL には機密性の高い認証情報を含めないでください Critical 設定チェック 対応必須 対応必須
[ CodeBuild.2 ] CodeBuild プロジェクトの環境変数には、クリアテキストの認証情報を含めないでください Critical 設定チェック 対応必須 対応必須
[ CodeBuild.3 ] CodeBuild S3 ログは暗号化する必要があります Low 保管時の暗号化 対応必須 対応必須
[ CodeBuild.4 ] CodeBuildプロジェクトはロギングを有効化する必要があります Medium ログ取得 対応必須 通知のみ
[ CodeBuild.7 ] CodeBuild レポート グループのエクスポートは保管時に暗号化される必要があります Medium 保管時の暗号化 対応必須 対応必須
[ Cognito.1 ] Cognito ユーザープールでは、標準認証のフル機能強制モードで脅威保護を有効にする必要があります Medium 保護 対応必須 対応必須
[ Config.1 ] AWS Config を有効にする必要があります Medium ログ取得 対応必須 対応必須
[ DataFirehose.1 ] Firehose 配信ストリームは保管時に暗号化される必要があります Medium 保管時の暗号化 対応必須 通知のみ
[ DataSync.1 ] DataSyncタスクではログ記録が有効になっている必要があります Medium ログ取得 対応必須 通知のみ
[ DMS.1 ] Database Migration Service のレプリケーションインスタンスはパブリックであってはなりません Critical アクセス制御 対応必須 対応必須
[ DMS.6 ] DMSレプリケーションインスタンスのマイナーバージョンの自動アップグレードが有効であること Medium 脆弱性管理 無効化 無効化
[ DMS.7 ] ターゲットデータベースのDMSレプリケーションタスクでは、ロギングを有効する必要があります Medium ログ取得 対応必須 通知のみ
[ DMS.8 ] ソースデータベースのDMSレプリケーションタスクでは、ロギングを有効する必要があります Medium ログ取得 対応必須 通知のみ
[ DMS.9 ] DMSエンドポイントはSSLを使用する必要があります Medium 通信の暗号化 対応必須 対応必須
[ DMS.10 ] Neptune データベースの DMS エンドポイントでは IAM 認証を有効にする必要があります Medium アクセス制御 無効化 無効化
[ DMS.11 ] MongoDB の DMS エンドポイントでは認証機能を有効にする必要があります Medium アクセス制御 対応必須 対応必須
[ DMS.12 ] Redis の DMS エンドポイントでは TLS を有効にする必要があります Medium 通信の暗号化 対応必須 対応必須
[ DocumentDB.1 ] Amazon DocumentDB クラスターは、保管時の暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 通知のみ
[ DocumentDB.2 ] Amazon DocumentDB クラスターには、適切なバックアップ保持期間が必要です Medium バックアップ 対応必須 無効化
[ DocumentDB.3 ] Amazon DocumentDB 手動クラスタースナップショットはパブリックにできません Critical アクセス制御 対応必須 対応必須
[ DocumentDB.4 ] Amazon DocumentDB クラスターでは、監査ログを CloudWatch Logs に発行する必要があります Medium ログ取得 対応必須 無効化
[ DocumentDB.5 ] Amazon DocumentDB では、削除保護が有効になっている必要があります Medium 設定チェック 対応必須 無効化
[ DynamoDB.1 ] DynamoDBのテーブルは、需要に応じて自動的に容量をスケールする必要があります Medium 可用性 無効化 無効化
[ DynamoDB.2 ] DynamoDBテーブルはポイントインタイムリカバリを有効にしておく必要があります。 Medium バックアップ 対応必須 無効化
[ DynamoDB.3 ] DynamoDB Accelerator (DAX)のクラスタは、保管時に暗号化されている必要があります。 Medium 保管時の暗号化 対応必須 通知のみ
[ DynamoDB.6 ] DynamoDB テーブルでは削除保護を有効にする必要があります。 Medium 設定チェック 対応必須 無効化
[ DynamoDB.7 ] DynamoDB Accelerator クラスターは転送中に暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ EC2.1 ] Amazon EBS スナップショットはパブリックに復元可能であってはなりません。 Critical アクセス制御 対応必須 対応必須
[ EC2.2 ] VPC のデフォルトのセキュリティグループはインバウンドトラフィックまたはアウトバウンドトラフィックを許可しない必要があります High アクセス制御 対応必須 対応必須
[ EC2.3 ] アタッチされた EBS ボリュームは、保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ EC2.4 ] 停止した EC2 インスタンスは、指定した期間後に削除する必要があります Medium コスト最適化 対応必須 通知のみ
[ EC2.6 ] VPC フローログ記録はすべての VPC で有効にする必要があります Medium ログ取得 無効化 無効化
[ EC2.7 ] EBS のデフォルト暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 対応必須
[ EC2.8 ] EC2 インスタンスでは、Instance Metadata Service Version 2 (IMDSv2) を使用する必要があります High 設定チェック 対応必須 対応必須
[ EC2.9 ] EC2インスタンスはパブリックIPv4アドレスを持つべきではない High アクセス制御 対応必須 対応必須
[ EC2.10 ] Amazon EC2はVPCエンドポイントを使用するように設定する必要があります。 Medium アクセス制御 無効化 無効化
[ EC2.15 ] EC2のサブネットはパブリックIPアドレスを自動的に割り当ててはいけない Medium アクセス制御 対応必須 対応必須
[ EC2.16 ] 未使用のNACLを削除すること Low アクセス制御 対応必須 通知のみ
[ EC2.17 ] EC2インスタンスは複数のENIを使用してはならない Low 設定チェック 無効化 無効化
[ EC2.18 ] セキュリティグループは、許可されたポートに対する無制限の受信トラフィックのみを許可する必要がある High アクセス制御 対応必須 対応必須
[ EC2.19 ] セキュリティグループは、リスクの高いポートへの無制限のアクセスを許可してはならない Critical アクセス制御 対応必須 対応必須
[ EC2.20 ] AWS サイト間VPN 接続の両方の VPN トンネルが稼働している必要があります Medium 設定チェック 対応必須 対応必須
[ EC2.21 ] ネットワークACLは 0.0.0.0/0 からポート22または3389へのインバウンド許可ルールを追加してはいけない Medium アクセス制御 無効化 無効化
[ EC2.23 ] EC2 Transit Gateway はVPCアタッチメントのリクエストを自動承諾すべきではない High アクセス制御 対応必須 対応必須
[ EC2.24 ] 準仮想化(PV)のEC2インスタンスは使うべきではありません Medium 設定チェック 対応必須 対応必須
[ EC2.25 ] EC2の起動テンプレートは、ネットワークインターフェイスにパブリックIPを割り当てるべきではありません High アクセス制御 対応必須 対応必須
[ EC2.51 ] EC2 Client VPN エンドポイントでは、クライアント接続ログ記録が有効になっている必要があります Low ログ取得 対応必須 対応必須
[ EC2.55 ] VPC は ECR API のインターフェイスエンドポイントを使用して構成する必要があります Medium 保護 無効化 無効化
[ EC2.56 ] VPC は Docker Registry のインターフェイスエンドポイントを使用して構成する必要があります Medium 保護 無効化 無効化
[ EC2.57 ] VPC は Systems Manager のインターフェイスエンドポイントを使用して構成する必要があります Medium 保護 無効化 無効化
[ EC2.58 ] VPC は Systems Manager Incident Manager Contacts のインターフェイスエンドポイントを使用して構成する必要があります Medium 保護 無効化 無効化
[ EC2.60 ] VPC は Systems Manager Incident Manager のインターフェイスエンドポイントを使用して構成する必要があります Medium 保護 無効化 無効化
[ EC2.170 ] EC2 起動テンプレートでは、Instance Metadata Service Version 2 (IMDSv2) を使用する必要があります Low 保護 対応必須 対応必須
[ EC2.171 ] EC2 VPN接続は、ロギングを有効にする必要があります Medium ログ取得 対応必須 通知のみ
[ EC2.172 ] EC2 VPC ブロックパブリックアクセス設定は、インターネットゲートウェイトラフィックをブロックする必要があります Medium アクセス制御 無効化 無効化
[ ECR.1 ] ECRプライベートリポジトリは、イメージスキャンを設定する必要があります High 脆弱性管理 通知のみ 通知のみ
[ ECR.2 ] ECRプライベートリポジトリは、タグのイミュータビリティを設定する必要があります Medium 保護 対応必須 無効化
[ ECR.3 ] ECRリポジトリに少なくとも1つのライフサイクルポリシーが設定されている必要があります Medium コスト最適化 対応必須 通知のみ
[ ECS.1 ] Amazon ECSのタスク定義には、安全なネットワークモードとユーザー定義が必要です High アクセス制御 対応必須 対応必須
[ ECS.2 ] Amazon ECSサービスは、パブリックIPアドレスを自動的に割り当ててはいけません High アクセス制御 対応必須 対応必須
[ ECS.3 ] ECS タスクの定義では、ホストのPID Namespaceを共有しないでください High アクセス制御 対応必須 対応必須
[ ECS.4 ] ECSコンテナは、非特権モードで実行する必要がある High アクセス制御 対応必須 対応必須
[ ECS.5 ] ECSコンテナは、ルートファイルシステムへのアクセスを読み取り専用に制限する必要があります High アクセス制御 対応必須 対応必須
[ ECS.8 ] シークレットはコンテナ環境変数へ渡すべきではない High 認証情報管理 対応必須 対応必須
[ ECS.9 ] ECS タスク定義にはログ構成が必要です High ログ取得 対応必須 通知のみ
[ ECS.10 ] Fargateサービスは最新のプラットフォームバージョンで実行する必要があります Medium 脆弱性管理 通知のみ 通知のみ
[ ECS.12 ] ECSクラスタはContainer Insightsを有効にする必要があります Medium ログ取得 対応必須 通知のみ
[ ECS.16 ] ECSタスクセットは、パブリックIPアドレスを自動的に割り当てるべきではありません High アクセス制御 対応必須 対応必須
[ EFS.1 ] Elastic File System は、AWS KMS を使用して保管時のファイルデータを暗号化するように設定する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ EFS.2 ] Amazon EFSボリュームはバックアッププランに入れておくべき Medium バックアップ 対応必須 無効化
[ EFS.3 ] EFS アクセスポイントは、ルートディレクトリを適用する必要があります Medium アクセス制御 無効化 無効化
[ EFS.4 ] EFSアクセスポイントは、ユーザーIDを指定する必要があります Medium アクセス制御 無効化 無効化
[ EFS.6 ] EFS マウントターゲットをパブリックサブネットに関連付けるべきではありません Medium アクセス制御 対応必須 対応必須
[ EFS.7 ] EFSファイルシステムでは自動バックアップを有効にする必要があります Medium バックアップ 対応必須 無効化
[ EFS.8 ] EFS ファイルシステムは保管時に暗号化されている必要があります Medium 保管時の暗号化 対応必須 対応必須
[ EKS.1 ] EKS クラスターエンドポイントは、パブリックアクセス可能であってはなりません High アクセス制御 対応必須 対応必須
[ EKS.2 ] EKSクラスターは、サポートされているKubernetesバージョンで実行する必要があります High 脆弱性管理 対応必須 対応必須
[ EKS.3 ] EKS クラスターは暗号化された Kubernetes シークレットを使用する必要があります Medium 保管時の暗号化 無効化 無効化
[ EKS.8 ] EKS クラスターでは、監査ログ記録が有効になっている必要があります Medium ログ取得 対応必須 対応必須
[ ElastiCache.1 ] ElastiCache for Redisクラスターでは、自動バックアップをスケジュールする必要があります。 High バックアップ 対応必須 無効化
[ ElastiCache.2 ] ElastiCache for Redisキャッシュクラスターのマイナーバージョンの自動アップグレードが有効であること High 脆弱性管理 無効化 無効化
[ ElastiCache.3 ] ElastiCache for Redisのレプリケーショングループで、自動フェイルオーバーを有効にしてください Medium 可用性 対応必須 無効化
[ ElastiCache.4 ] ElastiCache for Redisのレプリケーショングループで、保管時の暗号化を有効化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ ElastiCache.5 ] ElastiCache for Redisのレプリケーショングループで、転送時の暗号化を有効化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ ElastiCache.6 ] バージョン 6.0 より前の Redis レプリケーション グループ用 ElastiCache では、Redis AUTH を使用する必要があります Medium アクセス制御 対応必須 対応必須
[ ElastiCache.7 ] ElastiCache クラスターは、デフォルトのサブネットグループを使うべきではありません High アクセス制御 対応必須 対応必須
[ ElasticBeanstalk.1 ] Elastic Beanstalk環境では、拡張ヘルスレポートを有効にするべきです Low ログ取得 対応必須 無効化
[ ElasticBeanstalk.2 ] Elastic Beanstalkのマネージドプラットフォーム更新を有効にする必要があります High 脆弱性管理 対応必須 対応必須
[ ElasticBeanstalk.3 ] Elastic BeanstalkではログをCloudWatchに出力する必要があります High ログ取得 対応必須 無効化
[ ELB.1 ] Application Load Balancer は、すべての HTTP リクエストを HTTPS にリダイレクトするように設定する必要があります Medium 通信の暗号化 対応必須 対応必須
[ ELB.2 ] SSL/HTTPSリスナーを持つ CLBは、AWS Certificate Managerが提供する証明書を使用する必要がある Medium 通信の暗号化 対応必須 対応必須
[ ELB.3 ] Classic Load Balancer のリスナーは HTTPS または TLS 終端で設定する必要があります。 Medium 通信の暗号化 対応必須 対応必須
[ ELB.4 ] Application Load Balancer が HTTP ヘッダーを削除するように設定されている必要があります Medium 保護 対応必須 対応必須
[ ELB.5 ] Application/Classic Load Balancer のロギングを有効にする必要があります。 Medium ログ取得 対応必須 無効化
[ ELB.6 ] Application、Gateway、および Network Load Balancer の削除保護を有効にしてください Medium 設定チェック 対応必須 無効化
[ ELB.7 ] Classic Load Balancer では Connection Draining を有効にする必要があります Medium 可用性 対応必須 対応必須
[ ELB.8 ] HTTPS/SSLリスナーを持つ CLBは、強力な設定が可能な事前定義されたセキュリティポリシーを使用する必要がある Medium 通信の暗号化 対応必須 対応必須
[ ELB.9 ] CLBはクロスゾーン負荷分散を有効にする必要がある Medium 可用性 対応必須 無効化
[ ELB.10 ] Classic Load Balancer は、複数のAvailability Zoneで動作させる必要があります Medium 可用性 対応必須 無効化
[ ELB.12 ] Application Load Balancerは、防御的または最も厳格で構成する必要があります Medium 保護 対応必須 対応必須
[ ELB.13 ] Application/Network/Gateway Load Balancer は複数のアベイラビリティーゾーンにまたがる必要があります Medium 可用性 対応必須 無効化
[ ELB.14 ] Classic Load Balancerは、防御的または最も厳格で構成する必要があります Medium 保護 対応必須 対応必須
[ EMR.1 ] Amazon Elastic MapReduce クラスターのプライマリーノードにはパブリック IP を使用できません High アクセス制御 対応必須 対応必須
[ EMR.2 ] Amazon EMR ブロックのパブリック アクセス設定を有効にする必要があります Critical アクセス制御 対応必須 対応必須
[ EMR.3 ] Amazon EMR セキュリティ設定は保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ EMR.4 ] Amazon EMR セキュリティ設定は転送中に暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ ES.1 ] ElasticSearch ドメインでは、保管時の暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 対応必須
[ ES.2 ] Amazon Elasticsearch Serviceのドメインはパブリック公開してはいけません Critical アクセス制御 対応必須 対応必須
[ ES.3 ] Amazon Elasticsearchのドメインは、ノード間で送信されるデータを暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ ES.4 ] Amazon Elasticsearch ServiceのドメインエラーのCloudWatch Logsへのロギングが有効であること Medium ログ取得 対応必須 無効化
[ ES.5 ] Elasticsearchドメインは監査ログを有効にすべきである Medium ログ取得 対応必須 無効化
[ ES.6 ] Elasticsearchドメインは少なくとも3つのデータノードを持つべきである Medium 可用性 対応必須 無効化
[ ES.7 ] Elasticsearchドメインには、少なくとも3つの専用マスターノードを設定する必要がある Medium 可用性 対応必須 無効化
[ ES.8 ] Elasticsearchドメインへの接続は最新の TLS セキュリティ ポリシーを使用して暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ EventBridge.3 ] EventBridge カスタムイベントバスには、リソースベースのポリシーがアタッチされている必要があります Low アクセス制御 無効化 無効化
[ FSx.1 ] FSx for OpenZFS ファイルシステムは、タグをバックアップとボリュームにコピーするように構成する必要があります Low 設定チェック 無効化 無効化
[ FSx.2 ] FSx for Lustre ファイルシステムは、タグをバックアップとボリュームにコピーするように構成する必要があります Low 設定チェック 無効化 無効化
[ Glue.2 ] AWS Glueジョブのログ記録を有効にする必要があります Medium ログ取得 対応必須 無効化
[ Glue.3 ] AWS Glue の機械学習変換は保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ GuardDuty.1 ] GuardDuty を有効にする必要があります High 保護 対応必須 対応必須
[ GuardDuty.5 ] GuardDuty EKS 監査ログのモニタリングを有効にする必要があります High 保護 対応必須 対応必須
[ GuardDuty.6 ] GuardDuty Lambda Protection を有効にする必要があります High 保護 対応必須 対応必須
[ GuardDuty.7 ] GuardDuty EKS ランタイム監視を有効にする必要があります Medium 保護 対応必須 対応必須
[ GuardDuty.8 ] EC2向けGuardDuty Malware Protectionを有効にする必要があります High 保護 対応必須 対応必須
[ GuardDuty.9 ] GuardDuty RDS Protection を有効にする必要があります High 保護 対応必須 対応必須
[ GuardDuty.10 ] GuardDuty S3 Protection を有効にする必要があります High 保護 対応必須 対応必須
[ IAM.1 ] IAM ポリシーは完全な「*」管理権限を許可してはなりません High アクセス制御 対応必須 対応必須
[ IAM.2 ] IAM ユーザーには IAM ポリシーをアタッチしないでください Low アクセス制御 無効化 無効化
[ IAM.3 ] IAM ユーザーのアクセスキーは、90 日以内にローテーションする必要があります Medium 認証情報管理 対応必須 対応必須
[ IAM.4 ] IAM ルートユーザーアクセスキーは存在してはなりません Critical アクセス制御 対応必須 対応必須
[ IAM.5 ] MFA は、コンソールパスワードを持つすべての IAM ユーザーに対して有効にする必要があります Medium アクセス制御 対応必須 対応必須
[ IAM.6 ] ハードウェア MFA はルートユーザーに対して有効にする必要があります Critical アクセス制御 対応必須 対応必須
[ IAM.7 ] IAM ユーザーのパスワードポリシーには、強力な設定が必要です Medium アクセス制御 対応必須 対応必須
[ IAM.8 ] 使用されていない IAM ユーザー認証情報は削除する必要があります Medium アクセス制御 対応必須 対応必須
[ IAM.21 ] 作成したIAMカスタマーマネージメントポリシーでは、サービスに対するワイルドカードアクションを許可してはならない Low アクセス制御 無効化 無効化
[ Inspector.1 ] Amazon Inspector EC2スキャンを有効にする必要があります High 脆弱性管理 無効化 無効化
[ Inspector.2 ] Amazon Inspector ECRスキャンを有効にする必要があります High 脆弱性管理 無効化 無効化
[ Inspector.3 ] Amazon Inspector Lambda コードスキャンを有効にする必要があります High 脆弱性管理 無効化 無効化
[ Inspector.4 ] Amazon Inspector Lambda 標準スキャンを有効にする必要があります High 脆弱性管理 無効化 無効化
[ Kinesis.1 ] Kinesis Data Streams のサーバーサイド暗号化を有効化する必要があります。 Medium 保管時の暗号化 対応必須 対応必須
[ Kinesis.3 ] Kinesisストリームは適切なデータ保持期間が必要です Medium バックアップ 無効化 無効化
[ KMS.1 ] IAM カスタマー管理ポリシーでは、すべての KMS キーで復号アクションを許可してはなりません Medium アクセス制御 無効化 無効化
[ KMS.2 ] IAM プリンシパルには、すべての KMS キーで復号アクションを許可する IAM インラインポリシーがあってはなりません Medium アクセス制御 無効化 無効化
[ KMS.3 ] AWS KMSのキーは意図せずに削除してはいけない Critical 保護 通知のみ 通知のみ
[ KMS.5 ] KMSキーはパブリックに公開すべきではありません Critical アクセス制御 対応必須 対応必須
[ Lambda.1 ] Lambda 関数は、他のアカウントによるパブリックアクセスを禁止する必要があります Critical アクセス制御 対応必須 対応必須
[ Lambda.2 ] Lambda 関数はサポートされているランタイムを使用する必要があります Medium 脆弱性管理 対応必須 対応必須
[ Lambda.5 ] VPC Lambda 関数は、複数のAvailability Zoneで動作させる必要があります Medium 可用性 通知のみ 無効化
[ Macie.1 ] Amazon Macieを有効にする必要があります Medium 保護 無効化 無効化
[ Macie.2 ] Amazon Macie の自動機密データ検出を有効にする必要があります High 保護 無効化 無効化
[ MQ.2 ] Active MQ ブローカーは監査ログをCloudWatchにストリーミングすべきです Medium ログ取得 対応必須 無効化
[ MQ.3 ] Amazon MQ ブローカーは自動マイナーバージョンアップグレードを有効にすべきです Low 脆弱性管理 無効化 無効化
[ MSK.1 ] MSK クラスターはブローカー ノード間の転送中に暗号化される必要があります Medium 通信の暗号化 対応必須 対応必須
[ MSK.3 ] MSK Connectコネクタは、転送時に暗号化される必要があります Medium 通信の暗号化 対応必須 対応必須
[ Neptune.1 ] Neptune DBクラスターは、保管中に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ Neptune.2 ] Neptune DBクラスターでは、監査ログをCloudWatch Logsに発行する必要があります Medium ログ取得 対応必須 無効化
[ Neptune.3 ] Neptune DBクラスタースナップショットはパブリックにしないでください Critical アクセス制御 対応必須 対応必須
[ Neptune.4 ] Neptune DBクラスターでは、削除保護が有効になっている必要があります Low 設定チェック 対応必須 無効化
[ Neptune.5 ] Neptune DBクラスターでは、自動バックアップが有効になっている必要があります Medium バックアップ 対応必須 無効化
[ Neptune.6 ] Neptune DBクラスタースナップショットは、保管中に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ Neptune.7 ] Neptune DBクラスターでは、IAM データベース認証が有効になっている必要があります Medium アクセス制御 無効化 無効化
[ Neptune.8 ] Neptune DBクラスターでは、タグをスナップショットにコピーするように設定する必要があります Low 設定チェック 無効化 無効化
[ NetworkFirewall.2 ] Network Firewallのログ記録を有効にする必要があります Medium ログ取得 対応必須 無効化
[ NetworkFirewall.3 ] Network Firewallポリシーには、1つ以上のルールグループが関連付けられている必要があります Medium 設定チェック 対応必須 対応必須
[ NetworkFirewall.4 ] Network Firewallポリシーのデフォルトのステートレスアクションは、完全なパケットに対してドロップまたは転送される必要があります Medium 設定チェック 対応必須 対応必須
[ NetworkFirewall.5 ] Network Firewallポリシーのデフォルトのステートレスアクションは、フラグメント化されたパケットに対してドロップまたは転送される必要があります Medium 設定チェック 対応必須 対応必須
[ NetworkFirewall.6 ] ステートレス Network Firewall ルールグループは空であってはならない Medium 設定チェック 対応必須 対応必須
[ NetworkFirewall.9 ] Network Firewall は削除保護を有効にする必要があります Medium 設定チェック 対応必須 無効化
[ Opensearch.1 ] OpenSearchドメインでは、保管時の暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 対応必須
[ Opensearch.2 ] OpenSearchドメインはパブリック公開してはいけません Critical アクセス制御 対応必須 対応必須
[ Opensearch.3 ] OpenSearchドメインは、ノード間で送信されるデータを暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ Opensearch.4 ] OpenSearchのドメインエラーのCloudWatch Logsへのロギングが有効であること Medium ログ取得 対応必須 無効化
[ Opensearch.5 ] OpenSearchドメインは監査ログを有効にすべきである Medium ログ取得 対応必須 無効化
[ Opensearch.6 ] OpenSearchドメインは少なくとも3つのデータノードを持つべきである Medium 可用性 対応必須 無効化
[ Opensearch.7 ] OpenSearchドメインでは、きめ細やかなアクセスコントロールを有効にする必要がある High アクセス制御 無効化 無効化
[ Opensearch.8 ] OpenSearchドメインへの接続は最新の TLS セキュリティ ポリシーを使用して暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ Opensearch.10 ] OpenSearchドメインには最新のソフトウェアアップデートがインストールされている必要があります Low 脆弱性管理 対応必須 対応必須
[ Opensearch.11 ] OpenSearchドメインは少なくとも 3 つの専用プライマリノードが必要です Medium 可用性 無効化 無効化
[ PCA.1 ] AWS プライベート CA ルート認証局を無効にする必要があります Low アクセス制御 無効化 無効化
[ RDS.1 ] RDS スナップショットはプライベートにする必要があります Critical アクセス制御 対応必須 対応必須
[ RDS.2 ] RDS DB インスタンスは、PubliclyAccessible 設定によって判断される、パブリックアクセスを禁止する必要があります Critical アクセス制御 対応必須 対応必須
[ RDS.3 ] RDS DB インスタンスでは、保管時の暗号化を有効にする必要があります Medium 保管時の暗号化 対応必須 対応必須
[ RDS.4 ] RDS クラスタースナップショットとデータベーススナップショットは保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ RDS.5 ] RDS DB インスタンスは複数のアベイラビリティーゾーンで設定する必要があります Medium 可用性 対応必須 無効化
[ RDS.6 ] RDS DB インスタンスおよびクラスターに対して拡張モニタリングを設定する必要があります Low ログ取得 無効化 無効化
[ RDS.7 ] RDS クラスターでは、削除保護を有効にする必要があります Low 設定チェック 対応必須 無効化
[ RDS.8 ] RDS DB インスタンスでは、削除保護を有効にする必要があります Low 設定チェック 対応必須 無効化
[ RDS.9 ] RDS DB インスタンスはログを CloudWatch Logs に発行する必要があります Medium ログ取得 対応必須 無効化
[ RDS.10 ] RDSインスタンスに対してIAM認証を設定する必要があります。 Medium アクセス制御 無効化 無効化
[ RDS.11 ] RDSインスタンスの自動バックアップは有効にする必要があります Medium バックアップ 対応必須 無効化
[ RDS.12 ] RDSクラスターにIAM認証を設定する必要があります Medium アクセス制御 無効化 無効化
[ RDS.13 ] RDSのマイナーバージョンの自動アップグレードが有効であること High 脆弱性管理 無効化 無効化
[ RDS.14 ] Amazon Auroraクラスターはバックトラックを有効にする必要があります Medium バックアップ 無効化 無効化
[ RDS.15 ] RDS DBクラスターは複数のアベイラビリティーゾーンに対して構成されるべきである Medium 可用性 対応必須 無効化
[ RDS.16 ] RDS DBクラスターは、スナップショットにタグをコピーするように構成されるべきである Low 設定チェック 無効化 無効化
[ RDS.17 ] RDS DBインスタンスは、スナップショットにタグをコピーするように設定する必要があります。 Low 設定チェック 無効化 無効化
[ RDS.18 ] RDSインスタンスはVPC内に配置すべきである High アクセス制御 対応必須 対応必須
[ RDS.19 ] 既存のRDSイベント通知を設定する際は『重要なクラスターイベント』を含めるべきです Low 設定チェック 無効化 無効化
[ RDS.20 ] 既存のRDSイベント通知を設定する際は『重要なデータベースインスタンスイベント』を含めるべきです Low 設定チェック 無効化 無効化
[ RDS.21 ] RDSイベント通知で『重要なデータベースパラメータグループイベント』を設定する必要があります Low 設定チェック 無効化 無効化
[ RDS.22 ] RDSイベント通知で『重要なデータベースセキュリティグループイベント』を設定する必要があります Low 設定チェック 無効化 無効化
[ RDS.23 ] RDSのデータベースとクラスタは、データベースエンジンのデフォルトポートを使用してはいけません Low アクセス制御 無効化 無効化
[ RDS.24 ] RDS DBクラスターでは、カスタムの管理者ユーザー名を使用する必要があります Medium アクセス制御 無効化 無効化
[ RDS.25 ] RDSのDBインスタンスでは、カスタムの管理者ユーザー名を使用する必要があります Medium アクセス制御 無効化 無効化
[ RDS.27 ] RDS DBクラスターは保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ RDS.34 ] Aurora MySQLのDBクラスターでは、監査ログをCloudWatch Logsに発行する必要があります Medium ログ取得 対応必須 無効化
[ RDS.35 ] RDS DBクラスターのマイナーバージョンの自動アップグレードが有効であること Medium 脆弱性管理 無効化 無効化
[ RDS.36 ] RDS for PostgreSQL DBインスタンスはCloudWatch Logsにログを出力する必要があります Medium ログ取得 対応必須 無効化
[ RDS.37 ] Aurora PostgreSQL DBクラスタはCloudWatch Logsにログを出力する必要があります Medium ログ取得 対応必須 無効化
[ RDS.38 ] RDS for PostgreSQL DB インスタンスは転送中に暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ RDS.39 ] RDS for MySQL DB インスタンスは転送中に暗号化する必要があります Medium 通信の暗号化 対応必須 対応必須
[ Redshift.1 ] Amazon Redshiftクラスタはパブリックアクセスを禁止すべき Critical アクセス制御 対応必須 対応必須
[ Redshift.2 ] Amazon Redshiftクラスタへの接続は、トランジット中に暗号化されている必要があります。 Medium 通信の暗号化 対応必須 対応必須
[ Redshift.3 ] Amazon Redshiftクラスタは自動スナップショットを有効にする必要があります。 Medium バックアップ 対応必須 無効化
[ Redshift.4 ] Amazon Redshiftクラスターは監査ログを有効にする必要があります Medium ログ取得 対応必須 無効化
[ Redshift.6 ] Amazon Redshiftはメジャーバージョンへの自動アップグレードを有効にすべき Medium 脆弱性管理 無効化 無効化
[ Redshift.7 ] Redshiftクラスターは Enhanced VPC Routing を使用する必要があります Medium アクセス制御 対応必須 対応必須
[ Redshift.8 ] Amazon Redshiftクラスターでは、デフォルトのAdminユーザ名を使用してはいけません Medium アクセス制御 無効化 無効化
[ Redshift.9 ] Redshiftクラスターはデフォルトのデータベース名を使うべきではありません Medium 設定チェック 無効化 無効化
[ Redshift.10 ] Redshift クラスターは保存時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ Redshift.15 ] Redshift セキュリティグループは制限されたオリジンからのみクラスターポートへの進入を許可する必要があります High アクセス制御 対応必須 対応必須
[ Redshift.16 ] Redshift クラスターサブネットグループには、複数のアベイラビリティーゾーンからのサブネットが必要です Medium 可用性 通知のみ 通知のみ
[ Route53.2 ] Route 53 パブリックホストゾーンではDNSクエリログを取得してください Medium ログ取得 通知のみ 通知のみ
[ S3.1 ] S3 汎用バケットではパブリックアクセスブロック設定が有効になっている必要があります Medium アクセス制御 対応必須 対応必須
[ S3.2 ] S3 汎用バケットはパブリック読み取りアクセスを禁止する必要があります Critical アクセス制御 対応必須 対応必須
[ S3.3 ] S3 汎用バケットはパブリック書き込みアクセスを禁止する必要があります Critical アクセス制御 対応必須 対応必須
[ S3.5 ] S3 汎用バケットでは、SSL を使用するリクエストが必要です Medium 通信の暗号化 対応必須 対応必須
[ S3.6 ] S3 汎用バケットポリシーは他のAWSアカウントへのアクセスを制限する必要がある High アクセス制御 対応必須 対応必須
[ S3.8 ] S3 汎用バケットはパブリックアクセスをブロックする必要がある High アクセス制御 対応必須 対応必須
[ S3.9 ] S3 汎用バケットではサーバーアクセスログを有効にする必要がある Medium ログ取得 無効化 無効化
[ S3.12 ] ACL は S3 汎用バケットへのユーザーアクセスの管理には使用すべきではない Medium アクセス制御 対応必須 対応必須
[ S3.13 ] S3 汎用バケットにはライフサイクル設定が必要です Low コスト最適化 無効化 無効化
[ S3.19 ] S3 アクセスポイントではブロックパブリックアクセス設定を有効にする必要があります Critical アクセス制御 対応必須 対応必須
[ S3.24 ] S3マルチリージョンアクセスポイントは、パブリックアクセスのブロック設定を有効にする必要があります High アクセス制御 対応必須 対応必須
[ SageMaker.1 ] Amazon SageMaker ノートブックインスタンスにインターネットへの直接アクセスを設定しないようにします High アクセス制御 対応必須 対応必須
[ SageMaker.2 ] Amazon SageMaker ノートブックインスタンスはカスタム VPC で起動する必要があります High アクセス制御 対応必須 対応必須
[ SageMaker.3 ] ユーザーは Amazon SageMaker ノートブックインスタンスへのルートアクセス権限を持つべきではありません High アクセス制御 無効化 無効化
[ SageMaker.4 ] SageMakerエンドポイントの本番稼働用バリアントの初期インスタンス数は1より大きい必要があります Medium 可用性 通知のみ 無効化
[ SageMaker.5 ] SageMaker モデルはインバウンドトラフィックをブロックする必要があります Medium アクセス制御 対応必須 対応必須
[ SecretsManager.1 ] Secrets Manager のシークレットでは、自動ローテーションを有効にする必要があります Medium 認証情報管理 無効化 無効化
[ SecretsManager.2 ] 自動ローテーションで設定された Secrets Manager シークレットが、正常にローテーションされていることを確認します Medium 認証情報管理 対応必須 対応必須
[ SecretsManager.3 ] 未使用のSecrets Managerシークレットは削除する必要があります Medium 認証情報管理 対応必須 対応必須
[ SecretsManager.4 ] Secrets Managerのシークレットは、指定された日数内でローテーションされるべきである Medium 認証情報管理 無効化 無効化
[ ServiceCatalog.1 ] Service Catalog ポートフォリオは AWS 組織内でのみ共有する必要があります High アクセス制御 対応必須 対応必須
[ SNS.4 ] SNS トピックアクセスポリシーはパブリックアクセスを許可するべきではありません High アクセス制御 対応必須 対応必須
[ SQS.1 ] Amazon SQSのキューは保管中に暗号化されている必要があります Medium 保管時の暗号化 対応必須 対応必須
[ SSM.1 ] EC2 インスタンスは、AWS Systems Manager で管理する必要があります Medium 脆弱性管理 対応必須 対応必須
[ SSM.2 ] SSM で管理される EC2 インスタンスでは、パッチのインストール後、パッチコンプライアンスステータスが COMPLIANT である必要があります High 脆弱性管理 無効化 無効化
[ SSM.3 ] SSM によって管理される EC2 インスタンスでは、関連付けコンプライアンスステータスが COMPLIANT である必要があります Low 脆弱性管理 無効化 無効化
[ SSM.4 ] SSMドキュメントはパブリック公開してはいけません Critical アクセス制御 対応必須 対応必須
[ StepFunctions.1 ] Step Functions ステートマシンのログはオンになっている必要があります Medium ログ取得 無効化 無効化
[ Transfer.2 ] Transfer Family サーバーはエンドポイント接続に FTP プロトコルを使用しないでください Medium 通信の暗号化 対応必須 対応必須
[ WAF.1 ] AWS WAF Classicのグローバルweb ACLロギングを有効にする必要があります。 Medium ログ取得 対応必須 無効化
[ WAF.2 ] AWS WAF ClassicのRegional ルールは、少なくとも1つの条件が必要です Medium 設定チェック 対応必須 対応必須
[ WAF.3 ] AWS WAF ClassicのRegional ルールグループには、少なくとも1つのルールが必要です Medium 設定チェック 対応必須 対応必須
[ WAF.4 ] AWS WAF ClassicのRegional web ACLには、少なくとも1つのルールまたはルールグループが必要です Medium 設定チェック 対応必須 対応必須
[ WAF.6 ] AWS WAF Classicのグローバルルールには、少なくとも1つの条件が必要です Medium 設定チェック 対応必須 対応必須
[ WAF.7 ] AWS WAF Classicのグローバルルールグループには、少なくとも1つのルールが必要です Medium 設定チェック 対応必須 対応必須
[ WAF.8 ] AWS WAF Classicのglobal web ACLには、少なくとも1つのルールまたはルールグループが必要です Medium 設定チェック 対応必須 対応必須
[ WAF.10 ] AWS WAFのweb ACLには、少なくとも1つのルールまたはルールグループが必要です Medium 設定チェック 対応必須 対応必須
[ WAF.12 ] AWS WAF ルールでは CloudWatch メトリクスが有効になっている必要があります Medium ログ取得 対応必須 無効化
[ WorkSpaces.1 ] WorkSpacesユーザーボリュームは保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須
[ WorkSpaces.2 ] WorkSpacesルートボリュームは保管時に暗号化する必要があります Medium 保管時の暗号化 対応必須 対応必須

繰り返しになりますが、これはあくまで私の一例ですので、「このカテゴライズには違和感があるなぁ」とか「このカテゴリ追加したい」とか「このコントロールは無効化したい」などの調整は自由に行ってください。

ただ、上記の定義があると、自分たちの対応方針を決めていきやすいと思いますので是非参考にしてください。

カテゴライズの解説

各カテゴリについてどういう内容のコントロールを内包し、どういう戦略で対応方針を検討すべきかまとめていきます。

通信の暗号化

  • 基本方針
    • TLS利用のチェック項目ですべての環境で基本必須
    • VPCの内部だけの通信でも簡単にTLS利用できる事がほとんどのため必須とする
  • コントロール例
    • [ CloudFront.3 ] CloudFrontのディストリビューションでは、トランジット時に暗号化が必要です
    • [ S3.5 ] S3 汎用バケットでは、SSL を使用するリクエストが必要です
    • [ APIGateway.2 ] API Gateway REST APIステージでは、バックエンド認証にSSL証明書を使用するように設定する必要があります
      • これはクライアント証明書が必要となり設定のためのコストが高いため任意でよい

保管時の暗号化

  • 基本方針
    • 本番環境では必須、保護の必要がないデータであれば開発環境などは任意
    • データの保護は責任共有モデル上すべてユーザーの責任なのですべてを暗号化することが基本
  • コントロール例
    • [ EC2.3 ] アタッチされた EBS ボリュームは、保管時に暗号化する必要があります
    • [ CloudTrail.2 ] CloudTrail では、保管時の暗号化を有効にする必要があります
    • [ EKS.3 ] EKS クラスターは暗号化された Kubernetes シークレットを使用する必要があります
      • これはEBS側で暗号化できている上追加コストがかかるため任意

ログ取得

  • 基本方針
    • 本番環境では必須、開発環境などでも活用したいものも多いが任意とする
    • 他のログで代替えできるものは任意とする
  • コントロール例
    • [ CloudTrail.1 ] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります
    • [ ELB.5 ] Application/Classic Load Balancer のロギングを有効にする必要があります
    • [ CloudTrail.5 ] CloudTrailのトレイルは、Amazon CloudWatch Logsと統合されるべきです
      • これはやらなくてよい。S3に保存できてさえいればコスパがよく使える

可用性

  • 基本方針
    • 本番環境では必須、それ以外は任意
    • 本番環境でもリソースにより任意とする
  • コントロール例
    • [ AutoScaling.2 ] EC2 Auto Scalingグループは複数のアベイラビリティーゾーンにまたがって配置される必要があります
    • [ DynamoDB.1 ] DynamoDBのテーブルは、需要に応じて自動的に容量をスケールする必要があります
      • これは任意
      • アプリケーションの思想にかなり依存するため

バックアップ

  • 基本方針
    • 本番環境では必須、それ以外は任意
    • 組織やシステムのBCDRとも足並みを揃える
  • コントロール例
    • [ RDS.11 ] RDSインスタンスの自動バックアップは有効にする必要があります
    • [ DynamoDB.2 ] DynamoDBテーブルはポイントインタイムリカバリを有効にしておく必要があります
    • [ Kinesis.3 ] Kinesisストリームは適切なデータ保持期間が必要です
      • これは必要ない。一時的なデータの保持期間であるため

アクセス制御

  • 基本方針
    • すべての環境で必須
    • パブリックインターネットからのアクセスを制限したり認証が必要な操作に関する制限
  • コントロール例
    • [ EC2.19 ] セキュリティグループは、リスクの高いポートへの無制限のアクセスを許可してはならない
    • [ RDS.1 ] RDS スナップショットはプライベートにする必要があります
    • [ EC2.21 ] ネットワークACLは 0.0.0.0/0 からポート22または3389へのインバウンド許可ルールを追加してはいけない
      • これは煩雑な運用になるため任意

認証情報管理

  • 基本方針
    • すべての環境で必須
    • 運用コストが上がるものは任意とする
  • コントロール例
    • [ ECS.8 ] シークレットはコンテナ環境変数へ渡すべきではない
    • [ SecretsManager.1 ] Secrets Manager のシークレットでは、自動ローテーションを有効にする必要があります
      • これは任意
      • RDSなどネイティブに連携できるものはやってよいが、うまく自動ローテーションできないものも多いため

設定チェック

  • 基本方針
    • 基本全て必須だが、項目ごとの重要度の違いが激しい
    • AWSのサービスや機能固有の、知らないとハマりやすい設定などが対象
  • コントロール例
    • [ AutoScaling.3 ] Auto Scaling グループは、EC2インスタンスが Instance Metadata Service Version 2 (IMDSv2) を必要とするように設定すべき
    • [ CloudFront.13 ] CloudFrontのディストリビューションはOrigin Access Control(OAC)を使用する必要があります
    • [ EC2.17 ] EC2インスタンスは複数のENIを使用してはならない
      • これは任意。かなり要件に依存するため

保護

  • 基本方針
    • すべての環境で必須
    • 環境の保護に必要なサービスや機能の有効化が対象
  • コントロール例
    • [ GuardDuty.1 ] GuardDuty を有効にする必要があります
    • [ CloudFront.6 ] CloudFrontのディストリビューションはAWS WAFを有効にする必要があります
    • [ KMS.3 ] AWS KMSのキーは意図せずに削除してはいけない
      • これは通知は受け取るべきだが基本対応の必要がない珍しい用途のコントロール

脆弱性管理

  • 基本方針
    • 基本全て必須だが、脆弱性の更新を含む内容は慎重に扱う必要がある
  • コントロール例
    • [ RDS.13 ] RDSのマイナーバージョンの自動アップグレードが有効であること
    • アプリケーションに影響がある動作のため慎重に扱う必要がある
    • [ Inspector.1 ] Amazon Inspector EC2スキャンを有効にする必要があります
      • サーバー上のOS/ミドルウェアの脆弱性管理のツールはAmazon Inspector以外の選択肢もあるので、組織の方針に合わせる

コスト最適化

  • 基本方針
    • 必要な環境のみ
    • 対象のリソースによっては極力実施したほうが良いものもある
  • コントロール例
    • [ EC2.4 ] 停止した EC2 インスタンスは、指定した期間後に削除する必要があります
    • [ ECR.3 ] ECRリポジトリに少なくとも1つのライフサイクルポリシーが設定されている必要があります
    • [ S3.13 ] S3 汎用バケットにはライフサイクル設定が必要です
      • 使うならデータの要件を整理してから使う

まとめ

AWS Security Hub CSPMの運用のコツとしてカテゴライズの方法を解説しました。

コントロールの項目はたくさんあり対応も大変ですが、カテゴライズして大体の方針が決まれば進めやすくなります。是非真似してみなさんのAWS Security Hub CSPM運用を快適にしてください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.