AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::CloudFormation::Authentication

使用 AWS::CloudFormation::Authentication 资源可为通过 AWS::CloudFormation::Init 资源指定的文件或源指定身份验证凭证。

要包含您使用 AWS::CloudFormation::Init 指定的文件或源的身份验证信息,如果源是 URI,请使用 uris 属性;如果源是 Amazon S3 存储桶,请使用 buckets 属性。更多有关文件信息,请参阅 文件。更多有关来源的信息,请参阅

您也可以直接在 AWS::CloudFormation::Init 资源中指定文件的验证信息。资源的文件密钥包含名为 authentication 属性。您可以直接使用 authentication 属性来关联在 AWS::CloudFormation::Authentication 资源中指定的验证信息和文件。

对于文件,AWS CloudFormation 将以下列顺序查找验证信息:

  1. AWS::CloudFormation::Init files 密钥的 authentication 属性。

  2. AWS::CloudFormation::Authentication 资源的 urisbuckets 资源的属性。

对于来源,AWS CloudFormation 将在 AWS::CloudFormation::Authentication 资源的 urisbuckets 属性中查找验证信息。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

与大部分 AWS CloudFormation 资源不同的是,类型 AWS::CloudFormation::Authentication 不包含名为“Properties”的块,相反,它包含用户命名的块列表,各自包含其相应验证信息。

并非所有属性都从属于各个验证类型;请参阅类型属性了解详细信息。

JSON

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

YAML

Type: "AWS::CloudFormation::Authentication" String: accessKeyId: String buckets: - 字符串 password: String secretKey: String type: String uris: - 字符串 username: String roleName: String

属性

accessKeyId

指定 S3 验证的访问密钥 ID。

Required: Conditional 仅当 type 属性设为 "S3" 时才可以指定。

Type: String

buckets

要与 S3 验证凭证关联的 Amazon S3 存储段列表(以逗号分隔)。

Required: Conditional 仅当 type 属性设为 "S3" 时才可以指定。

Type: List of String values

password

指定基础验证密码。

Required: Conditional 仅当 type 属性设为 "basic" 时才可以指定。

Type: String

secretKey

指定 S3 验证的访问密钥 ID。

Required: Conditional 仅当 type 属性设为 "S3" 时才可以指定。

Type: String

type

指定身份验证方案是使用用户名和密码(“basic”),还是使用访问密钥 ID 和私有密钥(“S3”)。

如果您指定 "basic",则指定 usernamepassworduris 属性。

如果您指定 "S3",则指定 accessKeyIdsecretKeybuckets(可选)属性。

Required: Yes

Type: String 有效值为“basic”或“S3”

uris

要与基础级验证凭证关联的 URI 列表(以逗号分隔)。该授权适用于指定的 URI 和任何更多特定 URI。例如,如果您指定 http://www.example.com,则授权也将应用于 http://www.example.com/test

Required: Conditional 仅当 type 属性设为 "basic" 时才可以指定。

Type: List of String values

username

指定用于基本身份验证的用户名。

Required: Conditional 仅当 type 属性设为 "basic" 时才可以指定。

Type: String

roleName

描述基于角色的身份验证的角色。

重要

EC2 实例必须能使用实例配置文件访问此角色。

Required: Conditional 仅当 type 属性设为 "S3" 时才可以指定。

Type: String.

示例

EC2 Web 服务器身份验证

本模板片段显示了如何从 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" : "CfnKeys" }, "secretKey" : { "Fn::GetAtt": [ "CfnKeys", "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: 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 身份验证

以下示例模板片段包含基本S3 身份验证类型。

JSON

"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

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 角色:

  • myRoleAWS::IAM::Role 资源。

  • 运行 cfn-init 的 Amazon EC2 实例通过实例配置文件与 myRole 关联。

  • 与 Amazon S3 身份验证中一样,此示例使用 buckets 属性指定身份验证。也可通过名称来指定身份验证。

JSON

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

YAML

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

本页内容: