AWS Security Hubにてコントロールを無効化する方法が2つあったので違いを調べてみた

2023.10.16

こんにちはカスタマーソリューション部のこーへいです!

今回はAWS Security Hub(以降Security Hub)にてコントロールを無効化する方法が2つあり、違いについて気になったので確かめてみました。

Security Hubとは

AWS Security Hubのメイン機能としては、「セキュリティ基準機能」と呼ばれるものが挙げられます。これは、Cloud Security Posture Management(CSPM)に相当するサービスで、「AWSリソースのセキュリティ設定がベストプラクティスから逸脱していないか」を自動でチェックします。

【初心者向け】AWS Security Hubとは?概要からメリット、料金まで解説より引用

上記の説明が分かりやすく、Security HubはAWSアカウント内に存在する危険な設定があった場合にユーザーにお知らせしてくれます。

例えばS3バケットが意図せずパブリック公開されていると、Security Hubがその状態を検知しユーザーに教えてくれるので、それに対してパブリック公開の設定を是正することで脅威イベントを未然に防ぐことが可能です。

気になった内容

Security Hubは、アカウント内の設定を網羅的にチェックしてくれていますが、チェックが不要な項目は無効化することができます。

項目を無効化する方法は2つあり、違いが気になったため検証してみました。

コントロール項目の無効化

「セキュリティ基準」から無効化する方法

左のナビゲーションバーから「セキュリティ基準」を選択し、コントロールを無効化するセキュリティ基準を選択します。

私の環境では「AWS 基礎セキュリティのベストプラクティス v1.0.0」と「CIS AWS Foundations Benchmark v1.2.0」を有効化していますが、今回は「AWS 基礎セキュリティのベストプラクティス v1.0.0」のコントロール項目を無効化します。

無効化対象のコントロール項目のタイトルを選択します。

「コントロールの無効化」を選択します。

ポップアップが表示されるので、無効化を選択しましょう(必要があれば無効化する理由も選択します)。

ちなみに青枠にて「単一の標準でのみ無効にする」という記載がありますが、これは「AWS 基礎セキュリティのベストプラクティス v1.0.0」のコントロール項目のみ無効にするという意味になります。後の手順との記載に差異があるので少し覚えておいてください。

左のナビゲーションバーから「コントロール」を選択し、無効化したコントロールを選択すると画面右にコントロールのステータスが表示されます。

  • 「AWS 基礎セキュリティのベストプラクティス v1.0.0」:無効
  • 「CIS AWS Foundations Benchmark v1.2.0」:有効

であることがわかります。

「コントロール」から無効化する方法

左のナビゲーションバーから「コントロール」を選択し、無効化するコントロールを選択します。

画面右を確認すると、どちらのセキュリティ基準でもコントロールは有効化状態です。

先ほどの画面で「コントロールの無効化」を選択することで、以下のポップアップが表示されます。

先ほどの青枠では「単一の標準でのみ無効にする」という記載がありましたが、今回は「すべての標準で無効にする」という記述がありますね。

恐らく「AWS 基礎セキュリティのベストプラクティス v1.0.0」と「CIS AWS Foundations Benchmark v1.2.0」の両方でコントロールが無効になると予想できます。

無効化すると画面右上にてどちらのセキュリティ基準も対象のコントロール項目を無効になっていることがわかりますね。

結論

つまりコントロール項目はセキュリティ基準毎にステータスが管理されていて、無効化する方法によって対象のセキュリティ基準の範囲が異なるみたいですね。

念の為、CLIでも調べてみました。

aws securityhub  --region ap-northeast-1 list-standards-control-associations --security-control-id CloudTrail.2

{
    "StandardsControlAssociationSummaries": [
        {
            "StandardsArn": "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
            "SecurityControlId": "CloudTrail.2",
            "SecurityControlArn": "arn:aws:securityhub:ap-northeast-1:778667326727:security-control/CloudTrail.2",
            "AssociationStatus": "ENABLED",
            "RelatedRequirements": [
                "CIS AWS Foundations 2.7"
            ],
            "UpdatedAt": "2023-10-15T03:53:03.158000+00:00",
            "StandardsControlTitle": "Ensure CloudTrail logs are encrypted at rest using KMS CMKs",
            "StandardsControlDescription": "AWS Key Management Service (KMS) is a managed service that helps create and control the encryption keys used to encrypt account data, and uses Hardware Security Modules (HSMs) to protect the security of encryption keys. CloudTrail logs can be configured to leverage server side encryption (SSE) and KMS customer created master keys (CMK) to further protect CloudTrail logs. It is recommended that CloudTrail be configured to use SSE-KMS."
        },
        {
            "StandardsArn": "arn:aws:securityhub:ap-northeast-1::standards/aws-foundational-security-best-practices/v/1.0.0",
            "SecurityControlId": "CloudTrail.2",
            "SecurityControlArn": "arn:aws:securityhub:ap-northeast-1:778667326727:security-control/CloudTrail.2",
            "AssociationStatus": "ENABLED",
            "RelatedRequirements": [],
            "UpdatedAt": "2023-10-15T03:53:03.158000+00:00",
            "StandardsControlTitle": "CloudTrail should have encryption at-rest enabled",
            "StandardsControlDescription": "This AWS control checks whether AWS CloudTrail is configured to use the server side encryption (SSE) AWS Key Management Service (AWS KMS) customer master key (CMK) encryption. The check will pass if the KmsKeyId is defined."
        }
    ]
}

StandardsArn(セキュリティ基準)毎にAssociationStatus(コントロール項目のステータス)が設定されていることがわかりました。

まとめ

今まで何となくコントロール項目を無効化していましたが、セキュリティ基準を2つ有効化した際に上記の無効化方法の違いが気になったので確認してみました。

セキュリティ基準毎にコントロールのステータスが管理されているということが理解できてよかったです。