

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `AWS::CloudFormation::Authentication`
<a name="aws-resource-authentication"></a>

Use o tipo de metadado `AWS::CloudFormation::Authentication` para especificar credenciais de autenticação para arquivos ou fontes especificados com o tipo de metadado [`AWS::CloudFormation::Init`](aws-resource-init.md).

Para incluir informações de autenticação para um arquivo ou fonte especificado com o `AWS::CloudFormation::Init`, use a propriedade `uris` se a fonte é um URI ou a propriedade `buckets` se a fonte é um bucket do Amazon S3. Para obter mais informações sobre arquivos, consulte [Arquivos](aws-resource-init.md#aws-resource-init-files). Para obter mais informações sobre fontes, consulte [Fontes](aws-resource-init.md#aws-resource-init-sources).

Você também pode especificar as informações de autenticação para arquivos diretamente no tipo de metadado `AWS::CloudFormation::Init`. A chave de arquivos do recurso contém uma propriedade nomeada `authentication`. Você pode usar a propriedade `authentication` para associar informações de autenticação definidas em um tipo de metadado diretamente a um arquivo.`AWS::CloudFormation::Authentication`

Para arquivos, o CloudFormation busca informações de autenticação na seguinte ordem:

1. A propriedade `authentication` da chave `AWS::CloudFormation::Init` `files`.

1. A propriedade `uris` ou `buckets` do metadado `AWS::CloudFormation::Authentication`.

Para fontes, o CloudFormation buscará informações de autenticação na propriedade `uris` ou `buckets` do metadado `AWS::CloudFormation::Authentication`.

**Topics**
+ [Sintaxe](#aws-resource-cloudformation-authentication-syntax)
+ [Propriedades](#w2aac19c23c15c19)
+ [Exemplos](#aws-resource-authentication-examples)

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

Para declarar essa entidade no modelo do CloudFormation, use a seguinte sintaxe:

Esteja ciente das seguintes considerações ao usar o tipo de metadado `AWS::CloudFormation::Authentication`:
+ Ao contrário da maioria dos recursos do CloudFormation, o tipo de metadado `AWS::CloudFormation::Authentication` não contêm um bloco chamado *Propriedades*, mas sim uma lista de blocos nomeados pelo usuário, cada um com as próprias propriedades de autenticação.

  Nem todas as propriedades são adequadas a cada tipo de autenticação. Para obter mais informações, consulte o [tipo](#cfn-cloudformation-authentication-type) de propriedade.
+ Ao contrário da maioria dos recursos do CloudFormation, os nomes das propriedades `AWS::CloudFormation::Authentication` usam letras minúsculas concatenadas.

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

## Propriedades
<a name="w2aac19c23c15c19"></a>

`accessKeyId`  <a name="cfn-cloudformation-authentication-accesskeyid"></a>
Especifica o ID da chave de acesso para autenticação S3.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade `type` estiver definida como `S3`.  
*Tipo:* string

`buckets`  <a name="cfn-cloudformation-authentication-buckets"></a>
Uma lista delimitada por vírgulas de buckets Amazon S3 a serem associados às credenciais de autenticação S3.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade `type` estiver definida como `S3`.  
*Tipo*: lista de valores de strings

`password`  <a name="cfn-cloudformation-authentication-password"></a>
Especifica a senha para autenticação básica.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade de tipo estiver definida como `basic`.  
*Tipo:* string

`secretKey`  <a name="cfn-cloudformation-authentication-secretkey"></a>
Especifica a chave secreta para a autenticação S3.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade `type` estiver definida como `S3`.  
*Tipo:* string

`type`  <a name="cfn-cloudformation-authentication-type"></a>
Especifica se o esquema de autenticação usa um nome de usuário e uma senha (básico) ou um ID de chave de acesso e chave secreta (S3).  
Se você especificar `basic`, especifique as propriedades `username`, `password`e `uris`.  
Se você especificar `S3`, especifique as propriedades `accessKeyId`, `secretKey`e `buckets` (opcional).  
*Obrigatório*: sim  
*Valores válidos*: `basic` \| `S3`

`uris`  <a name="cfn-cloudformation-authentication-uris"></a>
Uma lista delimitada por vírgulas de URIs a serem associados às credenciais de autenticação básicas. A autorização se aplica a URIs especificados e a todos os URIs mais específicos. Por exemplo, se você especificar `http://www.example.com`, a autorização também se aplicará a `http://www.example.com/test`.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade `type` estiver definida como `basic`.  
*Tipo*: lista de valores de strings

`username`  <a name="cfn-cloudformation-authentication-username"></a>
Especifica o nome de usuário para autenticação básica.  
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade de tipo estiver definida como `basic`.  
*Tipo:* string

`roleName`  <a name="cfn-cloudformation-authentication-rolename"></a>
Descreve a função para a autenticação baseada em função.  
Essa função deve estar contida no perfil de instância anexado à instância do EC2. Um perfil de instância pode conter apenas uma função do IAM.
*Obrigatório:* condicional. Pode ser especificada somente se a propriedade `type` estiver definida como `S3`.  
*Tipo*: string

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

**Topics**
+ [Autenticação de servidor Web do EC2](#aws-resource-cloudformation-authentication-example1)
+ [Especificar a autenticação básica e S3](#aws-resource-cloudformation-authentication-example2)
+ [Perfis do IAM](#aws-resource-cloudformation-authentication-example3)

### Autenticação de servidor Web do EC2
<a name="aws-resource-cloudformation-authentication-example1"></a>

Este trecho de modelo mostra como obter um arquivo de um bucket S3 privado em uma instância EC2. As credenciais usadas para autenticação são definidas no metadado `AWS::CloudFormation::Authentication` e referenciadas pelo metadado `AWS::CloudFormation::Init` na seção *arquivos*.

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

### Especificar a autenticação básica e S3
<a name="aws-resource-cloudformation-authentication-example2"></a>

O exemplo do trecho de modelo inclui dois tipos de autenticação: *básica* e *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}
```

### Perfis do IAM
<a name="aws-resource-cloudformation-authentication-example3"></a>

O exemplo a seguir mostra como usar as funções do IAM:
+ `myRole` é um recurso [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html).
+ A instância do Amazon EC2 que executa `cfn-init` está associada a `myRole` por meio de um perfil da instância.
+ O exemplo especifica a autenticação usando a propriedade `buckets`, como na autenticação Amazon S3. Você também pode especificar a autenticação por nome.

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