スタックの作成
スタックを作成するには、aws cloudformation create-stack
コマンドを実行します。スタック名、有効なテンプレートの場所、入力パラメーターが必要です。
パラメーターは、空白で区切られ、キー名は大文字と小文字が区別されます。aws cloudformation create-stack
を実行するときにパラメータ名の入力を間違えると、AWS CloudFormation はスタックを作成せず、テンプレートにそのパラメータが含まれていないことをレポートします。
注記
手動でテンプレートを Amazon S3 または AWS Systems Manager のいずれかにアップロードすることで、独自のバケットを使用してアクセス権限を管理できます。その場合は、スタックを作成または更新するたびに、テンプレートファイルの Amazon S3 または AWS Systems Manager を指定します。
デフォルトでは、aws cloudformation describe-stacks
からパラメーターの値が返されます。パスワードなど、機密を要するパラメータ値が返されないようにするには、AWS CloudFormation テンプレートで、NoEcho
プロパティを TRUE
に設定します。
重要
NoEcho
属性を使用しても、以下に保存されている情報はマスクされません。
-
Metadata
テンプレートセクション。CloudFormation は、Metadata
セクションに含める情報の変換、変更、または編集を行いません。詳細については、「メタデータ」を参照してください。 -
Outputs
テンプレートセクション。詳細については、「出力」を参照してください。 -
リソース定義の
Metadata
属性。詳細については、「Metadata 属性」を参照してください。
パスワードやシークレットなどの機密情報を含めるには、これらのメカニズムを使用しないことを強くお勧めします。
重要
機密情報は、CloudFormation テンプレートに直接埋め込むのではなく、スタックテンプレートの動的パラメータを使用して CloudFormation の外部 (AWS Systems Manager パラメータストアや AWS Secrets Manager など) に保存して管理した上で 参照することをお勧めします。
詳細については、「テンプレートに認証情報を埋め込まない のベストプラクティス」を参照してください。
次の例は、myteststack
スタックを作成します。
PROMPT>
aws cloudformation create-stack \ --stack-name myteststack \ --template-body file:///home/testuser/mytemplate.json \ --parameters ParameterKey=Parm1,ParameterValue=test1 ParameterKey=Parm2,ParameterValue=test2
CloudFormation は、次の出力を返します。
{ "StackId" : "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/330b0120-1771-11e4-af37-50ba1b98bea6" }
次の例では、AWS Systems Manager ドキュメント内に myteststack
スタックを作成します。
PROMPT>
aws cloudformation create-stack\
--stack-name myteststack\
--template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"