概要
AWS Config カスタムルールを使用してRDSを監視したい
更に言えば特定のインスタンスタイプ以外は違反としたい
前提
AWS Config有効化
こちらを参考にしました。
CloudFormationによるAWS Configの有効化 - Qiita
本題
lambda関数
blueprintのconfig-rule-change-triggeredをベースに判定部分を修正します。
function evaluateChangeNotificationCompliance( configurationItem: { configuration: { dBInstanceClass: string | null; readReplicaSourceDBInstanceIdentifier: string | null; }; resourceType: string; }, ruleParameters: { desiredInstanceType: string | null } ) { checkDefined(configurationItem, "configurationItem"); checkDefined( configurationItem.configuration, "configurationItem.configuration" ); checkDefined(ruleParameters, "ruleParameters"); // 実チェックの部分 if (configurationItem.resourceType !== "AWS::RDS::DBInstance") { return "NOT_APPLICABLE"; } else if ( ruleParameters.desiredInstanceType === configurationItem.configuration.dBInstanceClass ) { return "COMPLIANT"; } return "NON_COMPLIANT"; }
ロールは
- AmazonRDSFullAccess
- AWSConfigRulesExecutionRole
- CloudWatchLogsFullAccess
を雰囲気で追加しています。
AWS Config カスタムルール
ルール追加
カスタムルールの追加
名前:適当
トリガータイプ:設定変更
変更範囲:リソース、RDS:DBInstance
ルールのパラメータ
キー:desiredInstanceType
値:db.t3.micro(任意のインスタンスタイプ)
実行
AWS Configのコンソールから「再評価」を実行
評価結果を確認