Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック(サービスリンクロールを利用しているか?)」を無効化する(全リージョン)

Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック(サービスリンクロールを利用しているか?)」を無効化する(全リージョン)

思ってたよりも簡単にできました。
Clock Icon2024.12.23

Security Hubには、「AWS Configで使用するロールは、サービスリンクロール(AWSServiceRoleForConfig)になっているか?」というチェック項目があります。一方でクラスメソッドメンバーズでは、AWS Configに独自ロール(cm-config-role-all-regions)を設定しています。

この違いにより Config.1 のコントロールのステータスが FAILED になりますが、設定を変更できるようになっています。

本記事では、上記の設定変更を全リージョンで実施するスクリプトを作ってみました。

おすすめの方

  • Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック」を全リージョンで無効化したい方
  • Security Hub でコントロールのパラメータを変更したい方

スクリプト実行前の様子を確認する

Config.1のコントロールがFAILEDになっています。

01_security_hub_config1

パラメータも True です。

02_security_hub_config1

Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック」を全リージョンで無効化するスクリプト

app.py
import boto3

AWS_ACCOUNT_ID = "123456789012"

ec2 = boto3.client("ec2")

def main():
    update_all_region(AWS_ACCOUNT_ID)

def update_all_region(aws_account_id: str):
    print("############################################")
    print(f"AWS ACCOUNT ID: {aws_account_id}")

    regions = ec2.describe_regions()["Regions"]
    for region in regions:
        region_name = region["RegionName"]
        print(region_name)

        update_security_control(region_name)

def update_security_control(region_name: str):
    securyti_hub = boto3.client("securityhub", region_name=region_name)

    resp = securyti_hub.update_security_control(
        SecurityControlId="Config.1",
        Parameters={
            "includeConfigServiceLinkedRoleCheck": {
                "ValueType": "CUSTOM",
                "Value": {
                    "Boolean": False,
                },
            }
        },
        LastUpdateReason="クラスメソッドメンバーズに加入しているため",
    )

if __name__ == "__main__":
    main()

スクリプト実行後の様子を確認する

パラメータが False に変わっていました。

11_security_hub_config1

しばらーく待つと、コントロールが PASS になった

バッチリですね。

21_security_hub_config1

さいごに

Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック」を全リージョンで無効化するスクリプトを作成してみました。参考になれば幸いです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.