Security Hub で Config.1 の「AWS Configで使用されるIAMロールのチェック(サービスリンクロールを利用しているか?)」を無効化する(全リージョン)
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ロールのチェック」を全リージョンで無効化するスクリプト
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ロールのチェック」を全リージョンで無効化するスクリプトを作成してみました。参考になれば幸いです。