

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::SecretsManager`Transformação
<a name="transform-aws-secretsmanager"></a>

Este tópico descreve como usar a transformação `AWS::SecretsManager` e o tipo de recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) para especificar uma função do Lambda para executar a alternância de segredos.

A transformação `AWS::SecretsManager` é uma macro do CloudFormation que, quando referenciada em seu modelo de pilha, gera automaticamente uma função do Lambda para alternância de segredos quando você cria ou atualiza uma pilha usando um conjunto de alterações. A função do Lambda é colocada em uma pilha aninhada no modelo processado. Ela usa um modelo de função do repositório [Funções do Lambda de alternância do AWS Secrets Manager](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas) com base no valor da propriedade [RotationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationtype) do recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html).

## Usage
<a name="aws-secretsmanager-usage"></a>

Para usar a transformação `AWS::SecretsManager`, é necessário declará-la no nível superior do seu modelo do CloudFormation. Não é possível usar `AWS::SecretsManager` como uma transformação incorporada em nenhuma outra seção de modelo.

A declaração deve usar a string literal `AWS::SecretsManager-2020-07-23` ou `AWS::SecretsManager-2024-09-16` como seu valor. Você não pode usar um parâmetro ou uma função para especificar um valor de transformação.

### Sintaxe
<a name="aws-secretsmanager-syntax"></a>

Para declarar essa transformação no modelo do CloudFormation, use a seguinte sintaxe:

#### JSON
<a name="aws-secretsmanager-syntax.json"></a>

```
{
  "Transform":"AWS::SecretsManager-{{2020-07-23}}",
  "Resources":{
    {{...}}
  }
}
```

#### YAML
<a name="aws-secretsmanager-syntax.yaml"></a>

```
Transform: AWS::SecretsManager-{{2020-07-23}}
Resources:
  {{...}}
```

A transformação `AWS::SecretsManager` é uma declaração independente sem parâmetros adicionais. Em vez disso, você configura a propriedade [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html) do recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) em seu modelo de pilha. A propriedade [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html) especifica a função do Lambda para executar a rotação de segredos.

## Novos recursos no `AWS::SecretsManager-2024-09-16`
<a name="aws-secretsmanager-new-version"></a>

A versão mais recente da transformação `AWS::SecretsManager` (`AWS::SecretsManager-2024-09-16`) apresenta os seguintes aperfeiçoamentos:
+ **Atualizações automáticas do Lambda**: quando você atualiza as pilhas do CloudFormation, as funções do Lambda agora atualizam automaticamente as configurações de runtime e as dependências internas. Isso garante que você esteja usando as versões mais seguras e confiáveis do código que gerencia a alternância de segredos no Secrets Manager.
+ **Compatibilidade com atributos adicionais**: a nova transformação é compatível com atributos de recurso adicionais para o tipo de recurso `AWS::SecretsManager::RotationSchedule` quando é usada com a propriedade `HostedRotationLambda`, incluindo o atributo `DependsOn`.
**nota**  
Ambas as versões oferecem suporte aos atributos `DeletionPolicy` e `UpdateReplacePolicy`.

Para saber mais sobre essa nova versão da transformação `AWS::SecretsManager`, consulte [Introdução a uma versão aprimorada da transformação AWS Secrets Manager: AWS::SecretsManager-2024-09-16](https://aws.amazon.com/blogs/security/introducing-an-enhanced-version-of-the-aws-secrets-manager-transform-awssecretsmanager-2024-09-16/) no Blog de Segurança da AWS.

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

Os exemplos a seguir mostram como usar a transformação `AWS::SecretsManager` (`AWS::SecretsManager-2024-09-16`) e o recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) em seu modelo. Neste exemplo, o CloudFormation gerará automaticamente uma função do Lambda para a alternância de segredos de usuário único do MySQL.

O segredo está configurado para alternar automaticamente todos os dias à meia-noite (UTC). O processo de alternância pode levar até 2 horas para ser concluído. A atualização do cronograma de alternância não iniciará uma alternância imediata.

### JSON
<a name="aws-secretsmanager-example.json"></a>

```
{
  "AWSTemplateFormatVersion":"2010-09-09",
  "Transform":"AWS::SecretsManager-2024-09-16",
  "Resources":{

  {{...}}

    "{{MySecretRotationSchedule}}":{
      "Type":"AWS::SecretsManager::RotationSchedule",
      "DependsOn":"{{logical name of AWS::SecretsManager::SecretTargetAttachment resource}}",
      "Properties":{
        "SecretId":{
          "Ref":"{{logical name of AWS::SecretsManager::Secret resource}}"
        },
        "HostedRotationLambda":{
          "RotationType":"MySQLSingleUser",
          "RotationLambdaName":"{{name of Lambda function to be created}}",
          "VpcSecurityGroupIds":{
            "Fn::GetAtt":[
              "{{logical name of AWS::EC2::SecurityGroup resource}}",
              "GroupId"
            ]
          },
          "VpcSubnetIds":{
            "Fn::Join":[
              ",",
              [
                {
                  "Ref":"{{logical name of primary subnet}}"
                },
                {
                  "Ref":"{{logical name of secondary subnet}}"
                }
              ]
            ]
          }
        },
        "RotationRules":{
          "ScheduleExpression":"cron(0 0 * * ? *)",
          "Duration":"2h"
        },
        "RotateImmediatelyOnUpdate":false
      }
    }
  }
}
```

### YAML
<a name="aws-secretsmanager-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::SecretsManager-2024-09-16
Resources:

  {{...}}

  {{MySecretRotationSchedule}}:
    Type: AWS::SecretsManager::RotationSchedule
    DependsOn: {{logical name of AWS::SecretsManager::SecretTargetAttachment resource}}
    Properties:
      SecretId: !Ref {{logical name of AWS::SecretsManager::Secret resource}}
      HostedRotationLambda:
        RotationType: MySQLSingleUser
        RotationLambdaName: {{name of Lambda function to be created}}
        VpcSecurityGroupIds: !GetAtt {{logical name of AWS::EC2::SecurityGroup resource}}.GroupId
        VpcSubnetIds:
          Fn::Join:
          - ","
          - - Ref: {{logical name of primary subnet}}
            - Ref: {{logical name of secondary subnet}}
      RotationRules:
        ScheduleExpression: cron(0 0 * * ? *)
        Duration: 2h
      RotateImmediatelyOnUpdate: false
```

## Recursos relacionados
<a name="aws-secretsmanager-related-resources"></a>

Para ver exemplos completos de modelos do CloudFormation que você pode usar para configurar alternâncias de segredos, consulte a seção [Exemplos](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html#aws-resource-secretsmanager-rotationschedule--examples) do recurso `AWS::SecretsManager::RotationSchedule`.

Para obter mais informações sobre o uso de macros, consulte [Executar processamento personalizado em modelos do CloudFormation com macros de modelo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) no *Guia do usuário do AWS CloudFormation*.