CloudFormation ドリフト検出の検出パターンを調べてみた

CloudFormation ドリフト検出の検出パターンを調べてみた:

スタック構成後に行われた手動変更を検出する CloudFormation ドリフト検出が発表されました。

実際どういう変更を検出するのか、EC2 リソースに対していくつかパターンを試してみました。

2018年12月時点です。

新 – CloudFormation ドリフト検出 | Amazon Web Services ブログ


パターン検証用 CFn テンプレートサンプル

AWSTemplateFormatVersion: 2010-09-09 
Resources: 
  SecurityGroup: 
    Type: AWS::EC2::SecurityGroup 
    Properties: 
      GroupDescription: SampleSecurityGroup 
      SecurityGroupIngress: 
        - IpProtocol: tcp 
          FromPort: 22 
          ToPort: 22 
          CidrIp: 0.0.0.0/0 
  Instance: 
    Type: AWS::EC2::Instance 
    Properties: 
      ImageId: ami-0a2de1c3b415889d2 
      InstanceType: t2.micro 
      SecurityGroups: 
        - !Ref SecurityGroup 
      KeyName: Keypair 
      Monitoring: !Ref AWS::NoValue 
      Tags: 
        - Key: Sample 
          Value: test tag sample 


1. 設定した値の変更は検出するか?


A. 検出する (NOT_EQUAL)

期待通り設定値が同値ではない(NOT_EQUAL)となります。

t2.micro => t2.nano 変更 = 検出(NOT_EQUAL)


2. 設定していない値の変更は検出するか?


A. 検出しない

未設定のデフォルト値を変更しても検出されません。

Monitoring 未設定 => 有効化 = 検知せず

Tags: に key: Name 新規追加 = 検知せず


3. 設定したリストへの値の追加は検出するか?


A. 検出する (ADD)

設定済みのリスト値に項目を追加すると検出(ADD)となります。

SecurityGroupIngress に http:80 追加 = 検出(ADD)


4. 設定したリストへの値の削除は検出するか?


A. 検出する (REMOVE)

設定済みのリスト値の項目を削除すると検出(REMOVE)となります。

Tags: Sample 削除 = 検出(REMOVE)


5. AWS::NoValue 値の変更は検出するか?


A. 検出しない

明示的なデフォルト値の AWS::NoValue の変更は検出するかと思っていましたが、検出しませんでした。

Monitoring: !Ref AWS::NoValue => true 変更 = 検知せず


6. EC2 ステータスの変更は検出するか?


A. 検出しない

インスタンスの状態は検出対象外です。


まとめ

試した感じだとデフォルト値の変更は検知しないので、検出したい項目は明示的に値を入れるべきという感じです。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)