AWS::CloudFormation::Authentication - AWS CloudFormation

AWS::CloudFormation::Authentication

Verwenden Sie die AWS::CloudFormation::Authentication-Ressource, um die Authentifizierungsinformationen für Dateien oder Quellen anzugeben, die Sie mit der AWS::CloudFormation::Init-Ressource angeben.

Um Authentifizierungsinformationen für eine Datei oder Quelle zu berücksichtigen, die Sie mit AWS::CloudFormation::Init angegeben haben, verwenden Sie die uris-Eigenschaft, wenn die Quelle ein URI ist, oder die buckets-Eigenschaft, wenn die Quelle ein Amazon S3-Bucket ist. Weitere Informationen über Dateien finden Sie unter Datei-. Weitere Informationen zu Quellen finden Sie unter Quellen.

Sie können Authentifizierungsinformationen für Dateien auch direkt in der AWS::CloudFormation::Init-Ressource angeben. Der Dateischlüssel der Ressource enthält eine Eigenschaft mit dem Namen authentication. Mithilfe der authentication-Eigenschaft können Sie Authentifizierungsinformationen, die in einer AWS::CloudFormation::Authentication-Ressource angegeben sind, direkt einer Datei zuweisen.

Für Dateien sucht AWS CloudFormation in der folgenden Reihenfolge nach Authentifizierungsinformationen:

  1. Die authentication-Eigenschaft des AWS::CloudFormation::Init-Schlüssels.files

  2. Die uris- oder bucketsEigenschaft der AWS::CloudFormation::Authentication-Ressource.

Für Quellen sucht CloudFormation nach Authentifizierungsinformationen in der uris- oder buckets-Eigenschaft der AWS::CloudFormation::Authentication-Ressource.

Syntax

Um diese Entität in Ihrer CloudFormation-Vorlage zu deklarieren, verwenden Sie die folgende Syntax:

Sie sollten bei der Verwendung des AWS::CloudFormation::Authentication-Typs Folgendes beachten:

  • Im Gegensatz zu den meisten CloudFormation-Ressourcen enthält der AWS::CloudFormation::Authentication-Typ keinen Block mit dem Namen Properties, sondern eine Liste der vom Benutzer benannten Blöcke, die jeweils eigene Authentifizierungseigenschaften haben.

    Nicht alle Eigenschaften gelten für jeden Authentifizierungstyp; weitere Details finden Sie unter der type-Eigenschaft.

  • Im Gegensatz zu den meisten CloudFormation-Ressourcen verwenden Eigenschaftennamen die Binnenmajuskel.

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: - String password: String secretKey: String type: String uris: - String username: String roleName: String

Properties

accessKeyId

Gibt die Zugriffsschlüssel-ID für die S3-Authentifizierung an.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft type auf "S3" festgelegt ist.

Type: String

buckets

Eine durch Komma getrennte Liste mit Amazon S3-Buckets, die den S3-Authentifizierungsinformationen zugewiesen werden müssen.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft type auf "S3" festgelegt ist.

Type: List of String values

password

Gibt das Passwort für die Authentifizierung an.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft "type" auf "basic" festgelegt ist.

Type: String

secretKey

Gibt den geheimen Schlüssel für die S3-Authentifizierung an.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft type auf "S3" festgelegt ist.

Type: String

type

Gibt an, ob das Authentifizierungsschema einen Benutzernamen und ein Passwort ("basic") oder eine Zugriffsschlüssel-ID und einen geheimen Schlüssel ("S3") verwendet.

Wenn Sie "basic" angeben, müssen Sie die Eigenschaften username, passwordund uris angeben.

Wenn Sie "S3" angeben, müssen Sie die Eigenschaften accessKeyId, secretKeyund buckets (optional) angeben.

Required: Yes

Valid values: basic | S3

uris

Eine durch Komma getrennte Liste der URIs, die den grundlegenden Authentifizierungsinformationen zugewiesen werden müssen. Die Berechtigung gilt für die angegebenen URIs und alle spezielleren URIs. Wenn Sie beispielsweise http://www.example.com angeben, gilt die Autorisierung auch für http://www.example.com/test.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft type auf "basic" festgelegt ist.

Type: List of String values

username

Gibt den Benutzernamen für die Authentifizierung an.

Required: Conditional Kann nur angegeben werden, wenn die Eigenschaft "type" auf "basic" festgelegt ist.

Type: String

roleName

Beschreibt die Rolle für eine auf Rollen basierende Authentifizierung.

Wichtig

Diese Rolle muss in dem Instance-Profil enthalten sein, das an die EC2-Instance angefügt ist. Ein Instance-Profil kann nur eine IAMRolle enthalten.

Required: Conditional aus. Kann nur angegeben werden, wenn die Eigenschaft type auf "S3" festgelegt ist.

Type: String

Beispiele

Anmerkung

Im Gegensatz zu den meisten Ressourcen definiert der AWS::CloudFormation::Authentication-Typ eine Liste der vom Benutzer benannte Blöcke, von denen jeder Authentifizierungseigenschaften mit der Binnenmajuskel-Benennung enthalten.

EC2 Webserver-Authentifizierung

Dieser Vorlagenausschnitt zeigt, wie eine Datei von eine privaten S3-Bucket in einer EC2 Instance abgerufen wird. Die Anmeldeinformationen für die Authentifizierung werden in der AWS::CloudFormation::Authentication-Ressource definiert, und die AWS::CloudFormation::Init-Ressource verweist im Abschnitt Files darauf.

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 ...

Angabe der Basic- und S3-Authentifizierung

Das folgende Beispiel eines Vorlagenausschnitt enthält die Authentifizierungstypen basic und 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" : "SecretAccessKeyID" }, "buckets" : [ "DOC-EXAMPLE-BUCKET1" ] } }

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: "SecretAccessKeyID" buckets: - "myawsbucket"

IAM-Rollen

Im folgenden Beispiel wird gezeigt, wie IAM-Rollen verwendet werden:

  • myRole ist eine AWS::IAM::Role-Ressource.

  • Die Amazon EC2-Instance, auf der cfn-init ausgeführt wird, ist mit myRole über ein Instance-Profil zugeordnet.

  • Das Beispiel zeigt, wie bei der Amazon S3-Authentifizierung, die Authentifizierung mit der buckets-Eigenschaft. Sie können auch die Authentifizierung mit Namen angeben.

JSON

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

YAML

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