AWS::CloudFormation::Authentication - AWS CloudFormation

これは新しい AWS CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『AWS CloudFormation ユーザーガイド』を参照してください。

AWS::CloudFormation::Authentication

AWS::CloudFormation::Authentication メタデータタイプを使用して、AWS::CloudFormation::Init メタデータタイプで指定したファイルまたはソースの認証情報を指定します。

AWS::CloudFormation::Init で指定したソースまたはファイルの認証情報を含めるには、ソースが URI の場合は uris プロパティを使用し、ソースが Amazon S3 バケットの場合は buckets プロパティを使用します。files の詳細については、「ファイル」を参照してください。sources の詳細については、「[Sources] (出典)」を参照してください。

ファイルの認証情報は、AWS::CloudFormation::Init メタデータタイプに直接指定することもできます。リソースの files キーには、authentication というプロパティが含まれます。authentication プロパティを使用すると、AWS::CloudFormation::Authentication メタデータタイプに定義された認証情報をファイルに直接関連付けることができます。

ファイルの場合、AWS CloudFormation は次の順序で認証情報を検索します。

  1. authentication AWS::CloudFormation::Init キーの files プロパティ。

  2. AWS::CloudFormation::Authentication メタデータの uris または buckets プロパティ。

ソースの場合、CloudFormation は、AWS::CloudFormation::Authentication メタデータの uris プロパティまたは buckets プロパティ内で認証情報を検索します。

構文

CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

AWS::CloudFormation::Authentication メタデータタイプを使用するときは、以下の考慮事項に注意してください。

  • ほとんどの CloudFormation リソースとは異なり、AWS::CloudFormation::Authentication メタデータタイプには、[プロパティ] という名前のブロックが含まれません。その代わりに、ユーザーによって名前が付けられたブロックのリストが含まれます。各ブロックには、それぞれ独自の認証プロパティが含まれます。

    すべてのプロパティが各認証タイプに関連するわけではありません。詳細については、「type」プロパティを参照してください。

  • ほとんどの CloudFormation リソースとは異なり、AWS::CloudFormation::Authentication プロパティ名には小文字キャメル形式が使用されます。

JSON

{ "AWS::CloudFormation::Authentication" { "String" : { "accessKeyId" : String, "buckets" : [ String, ... ], "password" : String, "secretKey" : String, "type" : String, "uris" : [ String, ... ], "username" : String, "roleName" : String } } }

YAML

AWS::CloudFormation::Authentication String: accessKeyId: String buckets: - String password: String secretKey: String type: String uris: - String username: String roleName: String

プロパティ

accessKeyId

S3 認証のためのアクセスキー ID を指定します。

必須: 条件的。type プロパティが S3 に設定されている場合にのみ指定できます。

タイプ: 文字列

buckets

S3 認証情報に関連付ける Amazon S3 バケットのコンマ区切りのリスト。

必須: 条件的。type プロパティが S3 に設定されている場合にのみ指定できます。

タイプ: 文字列値のリスト

password

基本認証のためのパスワードを指定します。

必須: 条件的。type プロパティが basic に設定されている場合にのみ指定できます。

タイプ: 文字列

secretKey

S3 認証のためのシークレットキーを指定します。

必須: 条件的。type プロパティが S3 に設定されている場合にのみ指定できます。

タイプ: 文字列

type

認証スキームでユーザー名とパスワード (基本) またはアクセスキー ID とシークレットキー (S3) のどちらを使用するかを指定します。

basic を指定した場合は、usernamepassword および uris の各プロパティを指定します。

S3 を指定した場合は、accessKeyIdsecretKey、および buckets (オプション) の各プロパティを指定します。

必須: はい

有効な値: basic | S3

uris

基本認証情報に関連付ける URI のコンマ区切りのリスト。認可は、指定された URI と、すべてのより限定された URI に適用されます。たとえば、http://www.example.com と指定した場合、認可は http://www.example.com/test にも適用されます。

必須: 条件的。type プロパティが basic に設定されている場合にのみ指定できます。

タイプ: 文字列値のリスト

username

基本認証のためのユーザー名を指定します。

必須: 条件的。type プロパティが basic に設定されている場合にのみ指定できます。

タイプ: 文字列

roleName

ロールベースの認証のためのロールを記述します。

重要

このロールは、EC2 インスタンスにアタッチされているインスタンスプロファイルに含まれている必要があります。インスタンスプロファイルに含めることができる IAM ロールは 1 つのみです。

必須: 条件的。type プロパティが S3 に設定されている場合にのみ指定できます。

:文字列

EC2 ウェブサーバー認証

このテンプレートスニペットでは、EC2 インスタンス内のプライベート S3 バケットからファイルを取得する方法を示します。認証情報は AWS::CloudFormation::Authentication メタデータに定義され、files セクションの AWS::CloudFormation::Init メタデータによって参照されます。

JSON

"WebServer": { "Type": "AWS::EC2::Instance", "DependsOn" : "BucketPolicy", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "httpd" : [] } }, "files" : { "/var/www/html/index.html" : { "source" : { "Fn::Join" : [ "", [ "http://s3.amazonaws.com/", { "Ref" : "BucketName" }, "/index.html" ] ] }, "mode" : "000400", "owner" : "apache", "group" : "apache", "authentication" : "S3AccessCreds" } }, "services" : { "sysvinit" : { "httpd" : { "enabled" : "true", "ensureRunning" : "true" } } } } }, "AWS::CloudFormation::Authentication" : { "S3AccessCreds" : { "type" : "S3", "accessKeyId" : { "Ref" : "AccessKeyID" }, "secretKey" : { "Ref" : "SecretAccessKey" } } } }, "Properties": { EC2 Resource Properties ... } }

YAML

WebServer: Type: AWS::EC2::Instance DependsOn: BucketPolicy Metadata: AWS::CloudFormation::Init: config: packages: yum: httpd: [] files: /var/www/html/index.html: source: !Join - '' - - 'http://s3.amazonaws.com/' - !Ref BucketName - '/index.html' mode: '000400' owner: apache group: apache authentication: S3AccessCreds services: sysvinit: httpd: enabled: 'true' ensureRunning: 'true' AWS::CloudFormation::Authentication: S3AccessCreds: type: S3 accessKeyId: !Ref AccessKeyID secretKey: !Ref SecretAccessKey Properties: EC2 Resource Properties ...

基本認証と S3 認証の指定

次のサンプルテンプレートスニペットには、basic 認証タイプと S3 認証タイプの両方が含まれています。

JSON

"AWS::CloudFormation::Authentication" : { "testBasic" : { "type" : "basic", "username" : { "Ref" : "UserName" }, "password" : { "Ref" : "Password" }, "uris" : [ "example.com/test" ] }, "testS3" : { "type" : "S3", "accessKeyId" : { "Ref" : "AccessKeyID" }, "secretKey" : { "Ref" : "SecretAccessKey" }, "buckets" : [{ "Fn::Sub": "${BucketName}" }] } }

YAML

AWS::CloudFormation::Authentication: testBasic: type: basic username: !Ref UserName password: !Ref Password uris: - 'example.com/test' testS3: type: S3 accessKeyId: !Ref AccessKeyID secretKey: !Ref SecretAccessKey buckets: - !Sub ${BucketName}

IAM ロール

次の例に、IAM ロールの使用法を示します。

  • myRole は、AWS::IAM::Role リソースです。

  • cfn-init を実行している Amazon EC2 インスタンスは、インスタンスプロファイルを介して myRole に関連付けられます。

  • 例では、buckets プロパティを使用して認証を指定しています (Amazon S3 認証と同様)。また、認証を名前で指定することもできます。

JSON

"AWS::CloudFormation::Authentication": { "rolebased" : { "type": "S3", "buckets": [{ "Fn::Sub": "${BucketName}" }], "roleName": { "Ref": "myRole" } } }

YAML

AWS::CloudFormation::Authentication: rolebased: type: S3 buckets: - !Sub ${BucketName} roleName: !Ref myRole