AWS Security Hubのコントロール状態をCLIで確認してみた
こんにちは!製造ビジネステクノロジー部の小林です。
AWS Security Hubを運用していると、コンソール上でコントロールの有効/無効状態が正しく表示されないケースに遭遇することがあります。今回は、そのような状況での対処法として、AWS CLIを使った確認方法をご紹介します。
AWS CLIでの確認方法
スタンダードの一覧を取得する
このコマンドで、有効になっているスタンダードの一覧とそれらのARNを取得できます。
aws securityhub get-enabled-standards --region ap-northeast-1
私の環境での出力です。出力結果から、Security Hubで有効になっているスタンダードは「AWS Foundational Security Best Practices」のバージョン1.0.0ということがわかります。
{
"StandardsSubscriptions": [
{
"StandardsSubscriptionArn": "arn:aws:securityhub:ap-northeast-1:XXXXXXXXXXXX:subscription/aws-foundational-security-best-practices/v/1.0.0",
"StandardsArn": "arn:aws:securityhub:ap-northeast-1::standards/aws-foundational-security-best-practices/v/1.0.0",
"StandardsInput": {},
"StandardsStatus": "READY",
"StandardsControlsUpdatable": "READY_FOR_UPDATES"
}
]
}
特定のスタンダードのコントロール状態を確認する
先ほど取得したARNを使って、スタンダードに含まれるコントロールの状態を確認します。
aws securityhub describe-standards-controls \
--standards-subscription-arn "スタンダードのARN" \
--region ap-northeast-1
上記コマンドだと、指定したスタンダード(この場合は AWS Foundational Security Best Practices)に含まれるすべてのセキュリティコントロールの詳細情報を返してくれるため、特定のコントロールを探すのが大変ですね!
特定のコントロールの詳細を確認する
特定のコントロールを検索してみます。今回は、「DocumentDB.6」のコントロールについて検索してみます。
aws securityhub batch-get-security-controls \
--security-control-ids "DocumentDB.6" \
--region ap-northeast-1
コマンドaws securityhub batch-get-security-controls を使用すると、特定のコントロールの詳細情報を簡潔に取得できます。出力には以下の情報が含まれています。
{
"SecurityControls": [
{
"SecurityControlId": "DocumentDB.6",
"SecurityControlArn": "arn:aws:securityhub:ap-northeast-1:XXXXXXXXXXXX:security-control/DocumentDB.6",
"Title": "Amazon DocumentDB clusters should be encrypted in transit",
"Description": "This controls checks whether an Amazon DocumentDB cluster requires TLS for connections to the cluster. The control fails if the cluster parameter group associated with the cluster is not in sync, or the TLS cluster parameter in the group is set to 'disabled'.",
"RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/DocumentDB.6/remediation",
"SeverityRating": "MEDIUM",
"SecurityControlStatus": "ENABLED",
"UpdateStatus": "READY",
"Parameters": {}
}
]
}
出力結果「SecurityControlId: ENABLED」から、このセキュリティコントロール(DocumentDB.6)が現在有効になっていることが確認できます!
下記は出力結果の詳細にです。問題解決のための手順を示すドキュメントリンクがあるのはとてもありがたいですね。
- SecurityControlId: コントロールの識別コード(例:DocumentDB.6)
- Title: コントロールの目的を簡潔に説明するタイトル
- Description: コントロールの詳細な説明と評価方法
- SeverityRating: 重要度評価(LOW/MEDIUM/HIGH/CRITICAL)
- SecurityControlStatus: コントロールが有効か無効か(ENABLED/DISABLED)
- RemediationUrl: 問題解決のための手順を示すドキュメントリンク
まとめ
今回は、AWS Security Hubによるコントロールの有効/無効をCLIで確認する手順をご紹介しました。
Security Hubからアラートが発生した際、CLIを使って対象コントロールの詳細を確認することで、AWS公式ドキュメントに素早くアクセスできるのでとても便利だと感じました。
Security Hubの運用をされている方々のお役に立てれば幸いです。