☁️

AWS Config カスタムルールを使用してRDSを監視する

2021/04/19に公開

概要

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のコンソールから「再評価」を実行
評価結果を確認

GitHubで編集を提案

Discussion