

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configure a rotação automática usando o AWS CLI
<a name="rotate-secrets_turn-on-cli"></a>

Este tutorial descreve como configurar [Função do Lambda de alternância](rotate-secrets_lambda.md) usando AWS CLI o. Ao alternar um segredo, você atualiza as credenciais no segredo e no banco de dados ou serviço para o qual o segredo se destina. 

Você também pode usar o console para configurar a alternância. Para obter informações sobre segredos do banco de dados, consulte [Alternância automática para segredos de banco de dados (console)](rotate-secrets_turn-on-for-db.md). Para todos os outros tipos de segredos, consulte [Alternância automática para segredos não de banco de dados (console)](rotate-secrets_turn-on-for-other.md).

Para configurar a rotação usando o AWS CLI, se você estiver rotacionando um segredo de banco de dados, primeiro você precisa escolher uma estratégia de rotação. Se você escolher a estratégia de usuários alternados, deverá armazenar um segredo separado com credenciais para um superusuário do banco de dados. Em seguida, você programa o código da função de alternância. O Secrets Manager fornece modelos nos quais você pode basear sua função. Em seguida, você cria uma função Lambda com seu código e define permissões para a função Lambda e para a função de execução do Lambda. A próxima etapa é garantir que a função do Lambda possa acessar o Secrets Manager e seu banco de dados ou serviço utilizando a rede. Por fim, você configura o segredo para a alternância.

**Topics**
+ [Pré-requisito para segredos de banco de dados: escolha uma estratégia de alternância](#rotate-secrets_turn-on-cli_step1)
+ [Etapa 1: escrever o código da função de alternância](#rotate-secrets_turn-on-cli_write)
+ [Etapa 2: criar a função do Lambda](#w2aac21c11c25c15)
+ [Etapa 3: configurar o acesso à rede](#w2aac21c11c25c17)
+ [Etapa 4: configurar o segredo para alternância](#w2aac21c11c25c19)
+ [Próximas etapas](#w2aac21c11c25c21)

## Pré-requisito para segredos de banco de dados: escolha uma estratégia de alternância
<a name="rotate-secrets_turn-on-cli_step1"></a>

Para obter informações sobre as estratégias oferecidas pelo Secrets Manager, consulte [Estratégias de alternância da função do Lambda](rotation-strategy.md).

### Opção 1: estratégia de usuário único
<a name="w2aac21c11c25c11b5"></a>

Se você escolher a *estratégia de usuário único*, poderá continuar com a Etapa 1. 

### Opção 2: estratégia de usuários alternados
<a name="w2aac21c11c25c11b7"></a>

Se você escolher a *estratégia de usuários alternados*, deverá:
+ [Criar um segredo](create_secret.md#create_secret_cli) e armazenar nele as credenciais de superusuário do banco de dados. Você precisa de um segredo com credenciais de superusuário porque a rotação da alternância de usuários clona o primeiro usuário e a maioria dos usuários não tem essa permissão. 
+ Adicionar o ARN do segredo do superusuário ao segredo original. Para obter mais informações, consulte [Estrutura JSON de segredos AWS Secrets Manager](reference_secret_json_structure.md). 

Observe que o Amazon RDS Proxy não oferece suporte à estratégia de usuários alternados.

## Etapa 1: escrever o código da função de alternância
<a name="rotate-secrets_turn-on-cli_write"></a>

Para alternar um segredo, você precisa de uma função de alternância. Uma função de alternância corresponde a uma função Lambda a qual o Secrets Manager chama para alternar o segredo. Para obter mais informações, consulte [Função do Lambda de alternância](rotate-secrets_lambda.md). Nesta etapa, você escreve o código que atualiza o segredo e o serviço ou banco de dados para o qual o segredo se destina.

O Secrets Manager fornece modelos para segredos de banco de dados do Amazon RDS, Amazon Aurora, Amazon Redshift e Amazon DocumentDB em [Modelos de função de alternância](reference_available-rotation-templates.md). 

**Para escrever o código da função de alternância**

1. Execute um destes procedimentos:
   + Verifique a lista de [modelos de função de alternância](reference_available-rotation-templates.md). Se houver um que corresponda à sua estratégia de serviço e alternância, copie o código. 
   + Para outros tipos de segredos, você escreve sua própria função de alternância. Para instruções, consulte [Função de alternância do Lambda](rotate-secrets_lambda-functions.md). 

1. Salve o arquivo em um arquivo ZIP {{my-function.zip}} junto com todas as dependências necessárias.

## Etapa 2: criar a função do Lambda
<a name="w2aac21c11c25c15"></a>

Nesta etapa, você cria a função do Lambda usando o arquivo ZIP criado na Etapa 1. Você também define o [perfil de execução do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html), que é o perfil que o Lambda assume quando a função é invocada.

**Para criar uma função de alternância e uma função de execução do Lambda**

1. Crie uma política de confiança para a função de execução do Lambda e salve-a como um arquivo JSON. Para obter mais informações e exemplos, consulte [Permissões da função de execução da função de rotação Lambda para AWS Secrets Manager](rotating-secrets-required-permissions-function.md). A política deve:
   + Permitir que a função chame as operações do Secrets Manager no segredo. 
   + Permita que o perfil chame o serviço para o qual o segredo se destina, por exemplo, para criar uma nova senha. 

1. Crie o perfil de execução do Lambda e aplique a política de confiança criada na etapa anterior chamando [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html).

   ```
   aws iam create-role \
       --role-name {{rotation-lambda-role}} \
       --assume-role-policy-document file://{{trust-policy.json}}
   ```

1. Crie a função Lambda do arquivo ZIP chamando [https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html).

   ```
   aws lambda create-function \
     --function-name {{my-rotation-function}} \
     --runtime python3.12 \
     --zip-file fileb://{{my-function.zip}} \
     --handler lambda_function.lambda_handler \
     --role arn:aws:iam::{{123456789012}}:role/service-role/{{rotation-lambda-role}}
   ```

1. Defina uma política de recursos na função Lambda para permitir que o Secrets Manager a invoque chamando [https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html).

   ```
   aws lambda add-permission \
     --function-name {{my-rotation-function}} \
     --action lambda:InvokeFunction \
     --statement-id SecretsManager \
     --principal secretsmanager.amazonaws.com \
     --source-account {{123456789012}}
   ```

## Etapa 3: configurar o acesso à rede
<a name="w2aac21c11c25c17"></a>

Para obter mais informações, consulte [Acesso à rede para função AWS Lambda de rotação](rotation-function-network-access.md).

## Etapa 4: configurar o segredo para alternância
<a name="w2aac21c11c25c19"></a>

Para ativar a alternância automática do seu segredo, determine [https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/rotate-secret.html](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/rotate-secret.html). Você pode definir uma programação de alternância com uma expressão de programação `cron()` ou `rate()` e pode definir a duração da janela de alternância. Para obter mais informações, consulte [Programação de alternância](rotate-secrets_schedule.md).

```
aws secretsmanager rotate-secret \
    --secret-id MySecret \
    --rotation-lambda-arn arn:aws:lambda:{{{{aws-region}}}}:{{123456789012}}:function:{{my-rotation-function}} \
    --rotation-rules "{\"ScheduleExpression\": \"{{cron(0 16 1,15 * ? *)}}\", \"Duration\": \"{{2h}}\"}"
```

## Próximas etapas
<a name="w2aac21c11c25c21"></a>

Consulte [Solucionar problemas de rotação AWS Secrets Manager](troubleshoot_rotation.md).