CloudFormation でよく使うAWS CLIコマンド

紹介するコマンド

※作業PCにテンプレートがあることを前提に紹介します。
(テンプレートがs3バケットにある場合コマンドを割愛します)
①スタックの作成
②スタックの削除
③スタックの実行結果の確認
④テンプレートの検証

スタックの作成

【テンプレートの中にIAMのロール名の指定がない場合】

aws cloudformation create-stack --stack-name [スタック名] --template-body [テンプレのパス] --parameters [パラメーター]

【テンプレートの中にIAMのロール名の指定がある場合】
–capabilities CAPABILITY_NAMED_IAMオプションが必要になります。

aws cloudformation create-stack --stack-name [スタック名] --template-body [テンプレのパス] --capabilities CAPABILITY_NAMED_IAM --parameters [パラメーター]

スタックの削除

aws cloudformation delete-stack --stack-name [スタック名]

スタックの実行結果の確認

aws cloudformation list-stack-resources --stack-name [スタック名]

テンプレートの検証

aws cloudformation validate-template --template-body [テンプレのパス]

注意点【重要!】

公式より抜粋

NoEcho 属性を使用しても、以下に保存されている情報はマスクされません。

Metadata テンプレートセクション。CloudFormation は、Metadata セクションに含める情報の変換、変更、または編集を行いません。詳細については、「メタデータ」を参照してください。

Outputs テンプレートセクション。詳細については、「出力」を参照してください。

リソース定義の Metadata 属性。詳細については、「メタデータ属性」を参照してください。

パスワードやシークレットなどの機密情報を含めるには、これらのメカニズムを使用しないことを強くお勧めします。

機密情報は、AWS CloudFormation テンプレートに直接埋め込まずに、スタックテンプレートの動的パラメータを使用して CloudFormation の外部 (AWS Systems Manager のパラメータストアや AWS Secrets Manager など) に保存して管理し、これを参照することをお勧めします。

詳細については、「テンプレートに認証情報を埋め込まない」のベストプラクティスを参照してください。

参考

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html

Last modified: 2021-03-18

Author