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:
-
Die
authentication
-Eigenschaft desAWS::CloudFormation::Init
-Schlüssels.files
-
Die
uris
- oderbuckets
Eigenschaft derAWS::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 Eigenschaftenusername
,password
unduris
angeben.Wenn Sie
"S3"
angeben, müssen Sie die EigenschaftenaccessKeyId
,secretKey
undbuckets
(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ürhttp://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
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 mitmyRole
ü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"