![見出し画像](https://assets.st-note.com/production/uploads/images/82938812/rectangle_large_type_2_a92662960f52032fac434d3ddecf9652.png?width=1200)
【保存版】AWS CloudFormationのスタックの変更とスタックポリシーの設定をしてみよう!
こんにちは、CryptoGamesの高橋です。
クリスペというサービスを行っている会社です。
本日はCloudFormationスタックの変更と、スタックポリシーの設定を行っていこうと思います。
はじめる前に
AWSのサービスには料金がかかります。
事前に確認を行い、テスト終了後はクリーンアップを忘れずに行なうようにお願いします。
1 CloudFormationテンプレートを用意する
まずは、下のようなyml形式のテンプレートファイルをデスクトップなどに用意しましょう。
「VPC」の自動化のためのものです。
![](https://assets.st-note.com/img/1658103463276-jQbLgT9ZnB.png?width=1200)
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」から「スタックの作成」
![](https://assets.st-note.com/img/1658103496865-qvxA77apPq.png?width=1200)
「テンプレートファイルのアップロード」から、前章のテンプレートファイルを選択します。
![](https://assets.st-note.com/img/1658099094817-87aFAC1GLJ.png?width=1200)
「スタックの名前」に任意の名前を入れて、「次へ」
![](https://assets.st-note.com/img/1658099102597-cLzsZMi9Dt.png?width=1200)
「スタックオプションの設定」は特に設定せずに、「次へ」
![](https://assets.st-note.com/img/1658099110836-MHLLff4IY2.png?width=1200)
問題がなさそうでしたら、「スタックの作成」
![](https://assets.st-note.com/img/1658099118010-0gsmVt0oBF.png?width=1200)
すると、下のようにうまく「myVPC」というVPCができました。
![](https://assets.st-note.com/img/1658099126984-XxiQ2nAgIx.png?width=1200)
3 スタックを更新する
では、スタックを更新してみましょう。
下の「デザイナーでテンプレートを編集する」で「デザイナーで表示」
![](https://assets.st-note.com/img/1658099134238-jTbgt5JnI4.png?width=1200)
デザイナーが表示されました。
ここでは名前を「VPCModified」に修正しました。
右上の更新ボタンを押しましょう。
![](https://assets.st-note.com/img/1658099141804-eUulTMmc1w.png?width=1200)
下の検証ボタンを押して、コード上、問題がないかを確認します。
![](https://assets.st-note.com/img/1658099150464-YWz5C0aYW1.png?width=1200)
それができましたら、下のボタンを押しましょう。
![](https://assets.st-note.com/img/1658099163106-nL4wVbaovG.png?width=1200)
この状態で、「次へ」
![](https://assets.st-note.com/img/1658099170840-B1aT7ouqH1.png?width=1200)
「スタックの詳細を指定」も特に変えずに「次へ」
![](https://assets.st-note.com/img/1658099184524-6b801YfNu8.png?width=1200)
「スタックオプションの設定」も特に変えずに「次へ」
![](https://assets.st-note.com/img/1658099199406-538MWZfnKY.png?width=1200)
問題がなければ、「スタックの更新」
![](https://assets.st-note.com/img/1658099208859-rbBkDUiIaQ.png?width=1200)
すると、「イベント」で下のように新しいイベントが開始されました。
![](https://assets.st-note.com/img/1658099220379-0xkSInXMNh.png?width=1200)
リソースをみると「論理ID」が変更されています。
これで更新できたことが確認できました。
![](https://assets.st-note.com/img/1658099236029-rcix9T7YDK.png?width=1200)
4 スタックポリシー付きのスタックを作成する
4ー1 スタックポリシーのファイルを用意する
今回は更新処理を禁止するスタックポリシーを作成します。
下のようなjsonファイルをデスクトップなどに保存しましょう。
{
"Statement" : [
{
"Effect" : "Deny",
"Action" : "Update:*",
"Principal" : "*",
"Resource" : "*"
}
]
}
![](https://assets.st-note.com/img/1658104511271-PIm0Wq23Ok.png?width=1200)
4ー2 スタックを作成する
では、あらためて、更新処理を禁止したスタックポリシー付きのスタックを作ってみましょう。
基本的には第2章と同じ手順です。
![](https://assets.st-note.com/img/1658099245034-sjsY2OHrDV.png?width=1200)
スタックの名前を任意に設定します。
![](https://assets.st-note.com/img/1658099253386-rVTdbLTN9h.png?width=1200)
「スタックポリシー」で、4ー1で作成したファイルをアップロードします。
![](https://assets.st-note.com/img/1658099261249-Qq7m1HGKNS.png?width=1200)
問題なければ、「スタックの作成」
![](https://assets.st-note.com/img/1658099270398-f29duwzJuc.png?width=1200)
5 スタックを更新してみる(エラーが出ることの確認)
では、スタックポリシーが効いているか、更新処理を行ってみましょう。
やり方は第3章と同じです。
![](https://assets.st-note.com/img/1658099278163-pKkcLoObfn.png?width=1200)
先ほどと同様、「デザイナーで編集」を選択
![](https://assets.st-note.com/img/1658099285035-7iG9gHbRka.png?width=1200)
修正ができたら、下のボタンを押します。
![](https://assets.st-note.com/img/1658099292438-eakrVXrV4o.png?width=1200)
あとは、そのまま進んでいくだけです
![](https://assets.st-note.com/img/1658099301482-3pviQseoAE.png?width=1200)
![](https://assets.st-note.com/img/1658099311283-eXkExIV2K1.png?width=1200)
![](https://assets.st-note.com/img/1658099318342-qrB7mRCKEk.png?width=1200)
![](https://assets.st-note.com/img/1658099326679-irF2fgsWcm.png?width=1200)
「スタックの更新」を押すと、下のように「UPDATE_ROLLBACK_IN_PROGRESS」としてエラーが出ました。
![](https://assets.st-note.com/img/1658099333895-FlAdxSCHBw.png?width=1200)
スタックポリシーが効いていることが確認できました。
最後に
終わった後は、不要なものは必ずクリーンアップを行なってください。
料金が継続的にかかってしまうため、忘れないよう、十分ご注意ください。
今回は以上です。
最後まで、ありがとうございました。
いいなと思ったら応援しよう!
![ユウキ](https://assets.st-note.com/production/uploads/images/52347520/profile_e7d36b385c74618d7fec56da47f68a35.jpeg?width=600&crop=1:1,smart)