Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック(サービスリンクロールを利用しているか?)」を無効化する(全リージョン)
思ってたよりも簡単にできました。
2024.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になっています。

パラメータも True です。

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 に変わっていました。

しばらーく待つと、コントロールが PASS になった
バッチリですね。

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






