🐧
AWS Config関連でよく使う処理をまとめてみた(Python)
はじめに
こんにちは、クラスメソッド サービスグロースチームの筧です。
最近、AWSアカウントの初期設定を Lambda で実施する機会がありました。今回は AWS Config 関連の処理についてブログ向けに汎化してご紹介します。各設定値はサンプルですので、ご利用の環境に合わせて変更ください。
テンプレート
AWS Config 関連の処理をまとめたプログラムが以下になります。ConfigService
クラスを呼び出して、必要な設定を実施ください。
以下は抜粋です。
src/services/aws_config.py(抜粋)
import logging
import re
from typing import Dict, List
import boto3.session
from botocore.config import Config
from mypy_boto3_config.client import ConfigServiceClient
logger = logging.getLogger()
logger.setLevel(logging.INFO)
class ConfigService:
def __init__(self):
self.session = boto3.session.Session()
def put_configuration_recorder(
self,
role_arn: str,
resource_types: List,
region_name: str,
name="default",
all_supported=False,
include_global_resource_types=False,
) -> None:
"""
refs: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/config.html#ConfigService.Client.put_configuration_recorder
"""
try:
client: ConfigServiceClient = self.session.client(
"config",
region_name=str(region_name),
config=Config(),
)
client.put_configuration_recorder(
ConfigurationRecorder={
"name": name,
"roleARN": role_arn,
"recordingGroup": {
"allSupported": all_supported,
"includeGlobalResourceTypes": include_global_resource_types,
"resourceTypes": resource_types,
},
}
)
except Exception as e:
logger.error(e)
return
else:
return
使い方
以下のブログで同様の紹介をしているので参照ください。
あとがき
最後まで読んでいただきありがとうございます。以下はハマりやすいのでご注意ください。
boto3からAWS Configの有効化を実施する場合にはstart_configuration_recorder()を使う必要があったりして、マネジメントコンソールからだと見えない部分が多いので注意が必要です。
他サービスについても今後スニペットを紹介予定なのでお楽しみに。
それではまた!
Discussion