HAPPY HACKING Oouchi's BLOG

PSE(ポンコツエンジニア)の技術ブログ

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

f:id:ooooouchi:20200517022708p:plain

概要

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