紹介するコマンド
※作業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