AWS Config で記録されるリソースを限定する

概要

やりたいこと

AWS Config にかかる費用が高い。
原因は AWS リソースの設定変更が多いため。

AWS Config をなるべく安く使いたい。

AWS Config と AWS Config Rules の関係

AWS Config と AWS Config Rules の簡単紹介。

  • AWS Config : AWS リソースの設定変更を記録する
  • AWS Config Rules : 設定不備の監視を行う

この AWS Config Rules を利用するためには AWS Config を有効化する必要がある。
ただし、AWS Config による記録をしなくても、限定的に AWS Config Rules を利用することができる。

まず、 AWS Config Rules のトリガータイプには2種類ある。

  • 設定変更 : 設定変更時にルール評価
  • 定期的 : 指定した間隔でルール評価

Config の設定レコーダーがオフになっている場合、 AWS Config Rules は以下のように挙動となる。

  • 設定変更 : ルール評価が実行されない
  • 定期的 : 引き続き指定した間隔で評価が実行される

しかし、 AWS Config では記録する AWS リソースを選択することができる。
ルール評価したい AWS リソースのみを記録しておけばいい。

AWS Config で記録するリソースを選択する

AWS Config が記録するリソースを選択することができる。

CloudFormation では RecordingGroup で指定できる

Config Rules が何のリソースを監視しているかは、公式ドキュメントから確認する。

CloudFormation

AWS Config

ホワイトリスト形式なので、記録に残すリソースは下記より選択しないといけない。

今回は S3 Bucket のみを記録するよう設定。

  ConfigRecorder:
    Type: AWS::Config::ConfigurationRecorder
    DependsOn: ConfigRecorderRole
    DeletionPolicy: Delete
    Properties:
      RoleARN: !GetAtt ConfigRecorderRole.Arn
      Name: !Sub "configuration-recorder-${AWS::Region}"
      RecordingGroup:
        AllSupported: false
        IncludeGlobalResourceTypes: false
        ResourceTypes: 
          - AWS::S3::Bucket

修正前。すべてのリソースが記録されるようになっている。

修正後。記録するものが S3 Bucket のみとなっている。

この状態で AWS Config Rules が設定変更時に検知ができることも確認。

参考

AWS Config で記録するリソースの選択

AWS::Config::ConfigurationRecorder RecordingGroup

AWS Config ルールのトリガーの指定