

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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`
<a name="aws-resource-authentication"></a>

Utilisez le type de métadonnées `AWS::CloudFormation::Authentication` pour spécifier les informations d’identification destinées aux fichiers ou aux sources que vous spécifiez à l’aide du type de métadonnées [`AWS::CloudFormation::Init`](aws-resource-init.md).

Pour inclure les informations d'authentification d'un fichier ou d'une source que vous spécifiez avec `AWS::CloudFormation::Init`, utilisez la propriété `uris` si la source est un URI ou la propriété `buckets` si la source est un compartiment Amazon S3. Pour en savoir plus sur les fichiers, consultez [Fichiers](aws-resource-init.md#aws-resource-init-files). Pour plus d'informations sur les sources, consultez [Sources](aws-resource-init.md#aws-resource-init-sources).

Vous pouvez également spécifier des informations d’authentification pour les fichiers directement dans le type de métadonnées `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 les informations d’authentification définies dans le type de métadonnées `AWS::CloudFormation::Authentication` directement à un fichier.

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

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

1. La propriété `uris` ou `buckets` des métadonnées `AWS::CloudFormation::Authentication`.

Pour les sources, CloudFormation recherche les informations d'authentification dans la `buckets` propriété `uris` or des `AWS::CloudFormation::Authentication` métadonnées.

**Topics**
+ [Syntaxe](#aws-resource-cloudformation-authentication-syntax)
+ [Propriétés](#w2aac19c23c15c19)
+ [Exemples](#aws-resource-authentication-examples)

## Syntaxe
<a name="aws-resource-cloudformation-authentication-syntax"></a>

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

Tenez compte des éléments suivants lorsque vous utilisez le type de métadonnées `AWS::CloudFormation::Authentication` :
+ Contrairement à la plupart CloudFormation des ressources, le type de `AWS::CloudFormation::Authentication` métadonnées 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 à chaque type d’authentification. Pour plus d’informations, consultez la propriété [type](#cfn-cloudformation-authentication-type).
+ Contrairement à la plupart CloudFormation des ressources, les noms de `AWS::CloudFormation::Authentication` propriétés utilisent des minuscules en majuscules.

### JSON
<a name="aws-resource-cloudformation-authentication-syntax.json"></a>

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

### YAML
<a name="aws-resource-cloudformation-authentication-syntax.yaml"></a>

```
AWS::CloudFormation::Authentication
{{String}}:
  accessKeyId: {{String}}
  buckets:
    - {{String}}
  password: {{String}}
  secretKey: {{String}}
  type: {{String}}
  uris:
    - {{String}}
  username: {{String}}
  roleName: {{String}}
```

## Propriétés
<a name="w2aac19c23c15c19"></a>

`accessKeyId`  <a name="cfn-cloudformation-authentication-accesskeyid"></a>
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`  <a name="cfn-cloudformation-authentication-buckets"></a>
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`  <a name="cfn-cloudformation-authentication-password"></a>
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`  <a name="cfn-cloudformation-authentication-secretkey"></a>
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`  <a name="cfn-cloudformation-authentication-type"></a>
Spécifie si le schéma d’authentification utilise un nom d’utilisateur et un mot de passe (authentification de base) ou un ID de clé d’accès et une clé secrète (authentification 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`  <a name="cfn-cloudformation-authentication-uris"></a>
Une liste séparée par des virgules à associer URIs aux informations d'authentification de base. L'autorisation s'applique à l'URI spécifié URIs et à tout autre URI spécifique. 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`  <a name="cfn-cloudformation-authentication-username"></a>
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`  <a name="cfn-cloudformation-authentication-rolename"></a>
Décrit le rôle pour l'authentification basée sur les rôles.  
Ce rôle doit figurer dans le profil d'instance attaché à l' EC2 instance. Un profil d'instance ne peut contenir qu'un seul rôle IAM.
*Obligatoire :* selon les conditions. Peut être spécifié uniquement si la propriété `type` est définie sur `S3`.  
*Type* : chaîne.

## Exemples
<a name="aws-resource-authentication-examples"></a>

**Topics**
+ [EC2 authentification du serveur Web](#aws-resource-cloudformation-authentication-example1)
+ [Spécification de l'authentification Basic et de l'authentification S3](#aws-resource-cloudformation-authentication-example2)
+ [Rôles IAM](#aws-resource-cloudformation-authentication-example3)

### EC2 authentification du serveur Web
<a name="aws-resource-cloudformation-authentication-example1"></a>

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 les métadonnées `AWS::CloudFormation::Authentication` et référencés par les métadonnées `AWS::CloudFormation::Init` dans la section *fichiers*.

#### JSON
<a name="aws-resource-cloudformation-authentication-example1.json"></a>

```
"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
<a name="aws-resource-cloudformation-authentication-example1.yaml"></a>

```
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
<a name="aws-resource-cloudformation-authentication-example2"></a>

L'exemple d'extrait de modèle suivant inclut à la fois les types d'authentification *basic* et *S3*.

#### JSON
<a name="aws-resource-cloudformation-authentication-example2.json"></a>

```
"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
<a name="aws-resource-cloudformation-authentication-example2.yaml"></a>

```
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}
```

### Rôles IAM
<a name="aws-resource-cloudformation-authentication-example3"></a>

L'exemple suivant montre comment utiliser les rôles IAM:
+ `myRole` est une [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html).
+ L' EC2 instance 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
<a name="aws-resource-cloudformation-authentication-example3.json"></a>

```
"AWS::CloudFormation::Authentication": {
    "rolebased" : {
        "type": "S3",
        "buckets": [{ "Fn::Sub": "${BucketName}" }],
        "roleName": { "Ref": "myRole" }
    }
}
```

#### YAML
<a name="aws-resource-cloudformation-authentication-example3.yaml"></a>

```
AWS::CloudFormation::Authentication:
  rolebased:
    type: S3
    buckets:
      - !Sub ${BucketName}
    roleName: !Ref myRole
```