AWS::CloudFormation::Authentication - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS::CloudFormation::Authentication

Utilisez la ressource AWS::CloudFormation::Authentication pour spécifier les informations d'identification pour l'authentification des fichiers ou des sources que vous spécifiez avec la ressource AWS::CloudFormation::Init.

Pour inclure des informations d'authentification pour un fichier ou une source que vous spécifiezAWS::CloudFormation::Init, utilisez la uris propriété si la source est un URI ou la buckets propriété si la source est un compartiment Amazon S3. Pour en savoir plus sur les fichiers, consultez Dépôt de . Pour plus d'informations sur les sources, consultez Sources.

Vous pouvez également spécifier des informations d'authentification pour les fichiers directement dans la ressource AWS::CloudFormation::Init. La clé « files » de la ressource contient une propriété nommée authentication. Vous pouvez utiliser la propriété authentication pour associer des informations d'authentification définies dans une ressource directement à un fichier.AWS::CloudFormation::Authentication

Pour les fichiers, AWS CloudFormation recherche les informations d'authentification dans l'ordre suivant :

  1. Propriété authentication de la clé AWS::CloudFormation::Init files.

  2. Propriété uris ou buckets de la ressource AWS::CloudFormation::Authentication.

Pour les sources, CloudFormation recherche les informations d'authentification dans la buckets propriété uris or de la AWS::CloudFormation::Authentication ressource.

Syntaxe

Pour déclarer cette entité dans votre CloudFormation modèle, utilisez la syntaxe suivante :

Vous devez être conscient des considérations suivantes lors de l'utilisation du type AWS::CloudFormation::Authentication :

  • Contrairement à la plupart CloudFormation des ressources, le AWS::CloudFormation::Authentication type ne contient pas de bloc appelé Propriétés, mais une liste de blocs nommés par l'utilisateur, chacun contenant ses propres propriétés d'authentification.

    Toutes les propriétés ne s'appliquent pas toutes à chaque type d'authentification. Pour en savoir plus, consultez la propriété type.

  • Contrairement à la plupart CloudFormation des ressources, les noms de propriétés utilisent des minuscules en majuscules.

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

Propriétés

accessKeyId

Spécifie l'ID de clé d'accès pour l'authentification S3.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété type est définie sur S3.

Type : chaîne

buckets

Liste CSV des compartiments Amazon S3 à associer aux informations d'identification de l'authentification S3.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété type est définie sur S3.

Type : liste de valeurs de chaîne

password

Spécifie le mot de passe pour l'authentification de base.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété « type » est définie sur basic.

Type : chaîne

secretKey

Spécifie la clé secrète pour l'authentification S3.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété type est définie sur S3.

Type : chaîne

type

Spécifie si le schéma d'authentification utilise un nom d'utilisateur et un mot de passe (de base) ou un identifiant de clé d'accès et une clé secrète (S3).

Si vous définissez basic, spécifiez les propriétés username, password et uris.

Si vous définissez S3, spécifiez les propriétés accessKeyId, secretKey et buckets (facultatives).

Obligatoire : oui

Valeurs valides : basic | S3

uris

Une liste séparée par des virgules à associer URIs aux informations d'authentification de base. L'autorisation s'applique à ce qui est spécifié URIs et à tout autre élément plus spécifiqueURI. Par exemple, si vous spécifiez http://www.example.com, l'autorisation s'applique également à http://www.example.com/test.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété type est définie sur basic.

Type : liste de valeurs de chaîne

username

Spécifie le nom d'utilisateur pour l'authentification basic.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété « type » est définie sur basic.

Type : chaîne

roleName

Décrit le rôle pour l'authentification basée sur les rôles.

Important

Ce rôle doit figurer dans le profil d'instance attaché à l'EC2instance. Un profil d'instance ne peut contenir qu'un seul IAM rôle.

Obligatoire : selon les conditions. Peut être spécifié uniquement si la propriété type est définie sur S3.

Type : chaîne.

Exemples

Note

Contrairement à la plupart des autres ressources, le type AWS::CloudFormation::Authentication définit une liste des blocs nommés par l'utilisateur, chacune d'entre eux contenant des propriétés d'authentification qui utilisent la notation camel minuscule.

EC2authentification du serveur Web

Cet extrait de modèle montre comment obtenir un fichier à partir d'un compartiment S3 privé au sein d'une EC2 instance. Les informations d'identification utilisées pour l'authentification sont définies dans la ressource AWS::CloudFormation::Authentication et référencées par la ressource AWS::CloudFormation::Init dans la section files.

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

Spécification de l'authentification Basic et de l'authentification S3

L'exemple d'extrait de modèle suivant inclut à la fois les types d'authentification basic et 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}

IAMrôles

L'exemple suivant montre comment utiliser IAM les rôles :

  • myRoleest une ressource AWS: IAM : :Role.

  • L'EC2instance Amazon qui s'exécute cfn-init est associée myRole via un profil d'instance.

  • L'exemple spécifie l'authentification à l'aide de la propriété buckets, comme dans l'authentification Amazon S3. Vous pouvez également spécifier l'authentification par nom.

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