見出し画像

【保存版】AWS CloudFormationのスタックの変更とスタックポリシーの設定をしてみよう!

こんにちは、CryptoGamesの高橋です。

クリスペというサービスを行っている会社です。

本日はCloudFormationスタック変更と、スタックポリシーの設定を行っていこうと思います。

はじめる前に


AWSのサービスには料金がかかります。

事前に確認を行い、テスト終了後クリーンアップを忘れずに行なうようにお願いします。

1 CloudFormationテンプレートを用意する

まずは、下のようなyml形式テンプレートファイルをデスクトップなどに用意しましょう。

「VPC」の自動化のためのものです。

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  myVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      Tags:
        - Key: 'Name'
          Value: 'my-vpc'

詳細はこちらのnoteをご参照ください。

2 スタックを作成する

では、前章のテンプレートをもとにスタックを作成しましょう。

「CloudFormation」から「スタックの作成」

「テンプレートファイルのアップロード」から、前章のテンプレートファイルを選択します。

「スタックの名前」に任意の名前を入れて、「次へ」

「スタックオプションの設定」は特に設定せずに、「次へ」

問題がなさそうでしたら、「スタックの作成」

すると、下のようにうまく「myVPC」というVPCができました。

3 スタックを更新する

では、スタックを更新してみましょう。

下の「デザイナーでテンプレートを編集する」「デザイナーで表示」

デザイナーが表示されました。

ここでは名前を「VPCModified」に修正しました。

右上の更新ボタンを押しましょう。

下の検証ボタンを押して、コード上、問題がないかを確認します。

それができましたら、下のボタンを押しましょう。

この状態で、「次へ」

「スタックの詳細を指定」も特に変えずに「次へ」

「スタックオプションの設定」も特に変えずに「次へ」

問題がなければ、「スタックの更新」

すると、「イベント」で下のように新しいイベントが開始されました。

リソースをみると「論理ID」が変更されています。

これで更新できたことが確認できました。

4 スタックポリシー付きのスタックを作成する

4ー1 スタックポリシーのファイルを用意する

今回は更新処理禁止するスタックポリシーを作成します。

下のようなjsonファイルをデスクトップなどに保存しましょう。

{
    "Statement" : [
        {
            "Effect" : "Deny",
            "Action" : "Update:*",
            "Principal" : "*",
            "Resource" : "*"
        }
    ]
}

4ー2 スタックを作成する

では、あらためて、更新処理を禁止したスタックポリシー付きのスタックを作ってみましょう。

基本的には第2章と同じ手順です。

スタックの名前を任意に設定します。

「スタックポリシー」で、4ー1で作成したファイルをアップロードします。

問題なければ、「スタックの作成」

5 スタックを更新してみる(エラーが出ることの確認)

では、スタックポリシーが効いているか、更新処理を行ってみましょう。

やり方は第3章と同じです。

先ほどと同様、「デザイナーで編集」を選択

修正ができたら、下のボタンを押します。

あとは、そのまま進んでいくだけです

「スタックの更新」を押すと、下のように「UPDATE_ROLLBACK_IN_PROGRESS」としてエラーが出ました。

スタックポリシーが効いていることが確認できました。

最後に

終わった後は、不要なものは必ずクリーンアップを行なってください。

料金が継続的にかかってしまうため、忘れないよう、十分ご注意ください。

今回は以上です。

最後まで、ありがとうございました。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊