スタックの作成 - AWS CloudFormation

スタックの作成

スタックを作成するには、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"