メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::CloudFormation::Authentication

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

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

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

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

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

  2. AWS::CloudFormation::Authentication リソースの uris プロパティまたは buckets プロパティ。

ソースの場合、AWS::CloudFormation::Authentication リソースの uris プロパティまたは buckets プロパティ内で認証情報が検索されます。

トピック

構文

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

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

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

JSON

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

YAML

Copy
Type: "AWS::CloudFormation::Authentication" String: accessKeyId: String buckets: - 文字列 password: String secretKey: String type: String uris: - 文字列 username: String roleName: String

プロパティ

accessKeyId

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

Required: Conditionaltype プロパティが "S3" に設定されている場合にのみ指定できます。

Type: String

buckets

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

Required: Conditionaltype プロパティが "S3" に設定されている場合にのみ指定できます。

Type: List of String values

password

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

Required: Conditionaltype プロパティが "basic" に設定されている場合にのみ指定できます。

Type: String

secretKey

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

Required: Conditionaltype プロパティが "S3" に設定されている場合にのみ指定できます。

Type: String

type

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

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

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

Required: Yes

Type: String 有効な値は、"basic" または "S3" です。

uris

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

Required: Conditionaltype プロパティが "basic" に設定されている場合にのみ指定できます。

Type: List of String values

username

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

Required: Conditionaltype プロパティが "basic" に設定されている場合にのみ指定できます。

Type: String

roleName

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

重要

EC2 インスタンスは、インスタンスプロファイルを使用してこのロールにアクセスできる必要があります。

Required: Conditionaltype プロパティが "S3" に設定されている場合にのみ指定できます。

Type: String.

EC2 ウェブサーバー認証

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

JSON

Copy
"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" : "CfnKeys" }, "secretKey" : { "Fn::GetAtt": [ "CfnKeys", "SecretAccessKey" ] } } } }, "Properties": { EC2 Resource Properties ... } }

YAML

Copy
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: "CfnKeys" secretKey: Fn::GetAtt: - "CfnKeys" - "SecretAccessKey" Properties: EC2 Resource Properties ...

基本認証と S3 認証の指定

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

JSON

Copy
"AWS::CloudFormation::Authentication" : { "testBasic" : { "type" : "basic", "username" : { "Ref" : "UserName" }, "password" : { "Ref" : "Password" }, "uris" : [ "http://www.example.com/test" ] }, "testS3" : { "type" : "S3", "accessKeyId" : { "Ref" : "AccessKeyID" }, "secretKey" : { "Ref" : "SecretAccessKeyID" }, "buckets" : [ "myawsbucket" ] } }

YAML

Copy
AWS::CloudFormation::Authentication: testBasic: type: "basic" username: Ref: "UserName" password: Ref: "Password" uris: - "http://www.example.com/test" testS3: type: "S3" accessKeyId: Ref: "AccessKeyID" secretKey: Ref: "SecretAccessKeyID" buckets: - "myawsbucket"

IAM ロール

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

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

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

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

JSON

Copy
"AWS::CloudFormation::Authentication": { "rolebased" : { "type": "S3", "buckets": [ "myBucket" ], "roleName": { "Ref": "myRole" } } }

YAML

Copy
AWS::CloudFormation::Authentication: rolebased: type: "S3" buckets: - "myBucket" roleName: Ref: "myRole"

このページの内容: