4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-30

スタック構成後に行われた手動変更を検出する 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. 検出しない

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

まとめ

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

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?