

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

# Alternância automática de senhas para os usuários
<a name="User-Secrets-Manager"></a>

Com AWS Secrets Manager, você pode substituir as credenciais codificadas em seu código (incluindo senhas) por uma chamada de API para o Secrets Manager para recuperar o segredo programaticamente. Isso ajuda a garantir que o segredo não será comprometido por alguém que esteja examinando seu código, pois o segredo simplesmente não está ali. Além disso, configure o Secrets Manager para alterar automaticamente o segredo para você de acordo com a programação que você especificar. Isso permite substituir segredos de longo prazo por outros de curto prazo, ajudando a reduzir de maneira significativa o risco de comprometimento.

Usando o Secrets Manager, você pode alternar automaticamente suas ElastiCache senhas do OSS do Redis (ou seja, segredos) usando uma AWS Lambda função fornecida pelo Secrets Manager.

Para obter mais informações sobre AWS Secrets Manager, consulte [O que éAWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)

## Como ElastiCache usa segredos
<a name="how-elasticache-uses-secrets"></a>

O Valkey 7.2 e superiores têm um conjunto de atributos equivalente ao Redis OSS 7.0. No Redis OSS 6, ElastiCache introduzido [Regras de controle de acesso com base em função (RBAC)](Clusters.RBAC.md) para proteger o cluster Valkey ou Redis OSS. Esse recurso permite que certas conexões sejam limitadas em termos dos comandos que podem ser executados e das chaves que podem ser acessadas. Com o RBAC, enquanto o cliente cria um usuário com senhas, os valores da senha precisam ser inseridos manualmente em texto sem formatação e ficam visíveis para o operador. 

Com o Secrets Manager, as aplicações buscam a senha do Secrets Manager em vez de inseri-la manualmente e armazená-la na configuração da aplicação. Para obter informações sobre como fazer isso, consulte [Como ElastiCache os usuários são associados ao segredo](#How-User-Secrets-Manager-Associate).

O uso de segredos tem um custo. Para obter informações sobre preços, consulte [Preços do AWS](https://aws.amazon.com/secrets-manager/pricing/).

## Como ElastiCache os usuários são associados ao segredo
<a name="How-User-Secrets-Manager-Associate"></a>

O Secrets Manager manterá uma referência para o usuário associado no campo `SecretString` do segredo. Não haverá nenhuma referência ao segredo do ElastiCache lado de fora.

```
{
    "password": "strongpassword",
    "username": "user1",
    "user_arn": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" //this is the bond between the secret and the user
}
```

## Função de alternância do Lambda
<a name="lambda-rotation-function"></a>

Para habilitar a alternância automática de senhas do Secrets Manager, você criará uma função do Lambda que interagirá com a API [modify-user](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-user.html) para atualizar as senhas do usuário. 

Para obter informações sobre como isso funciona, consulte [Como funciona a alternância](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html#rotate-secrets_how).

**nota**  
Para alguns AWS serviços, para evitar o cenário confuso de substituto,AWS recomenda que você use as chaves de condição `aws:SourceArn` e as chaves de condição `aws:SourceAccount` globais. No entanto, se você incluir a condição `aws:SourceArn` em sua política de função de alternância, a função de alternância só poderá ser usada para alternar o segredo especificado por esse ARN. Recomendamos que inclua apenas a chave de contexto `aws:SourceAccount`, de modo que possa usar a função de alternância para vários segredos.

Para quaisquer problemas que você possa encontrar, consulte [Solucionar problemas de rotação do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html).

## Como criar um ElastiCache usuário e associá-lo ao Secrets Manager
<a name="User-Secrets-Manager-Associate"></a>

As seguintes etapas ilustram como criar um usuário e associá-lo ao Secrets Manager:

1. **Criar um usuário inativo**

   Para Linux, macOS ou Unix:

   ```
   aws elasticache create-user \
    --user-id user1 \
    --user-name user1 \
    --engine "REDIS" \
    --no-password \ // no authentication is required
    --access-string "*off* +get ~keys*" // this disables the user
   ```

   Para Windows:

   ```
   aws elasticache create-user ^
    --user-id user1 ^
    --user-name user1 ^
    --engine "REDIS" ^
    --no-password ^ // no authentication is required
    --access-string "*off* +get ~keys*" // this disables the user
   ```

   Você verá uma resposta semelhante ao seguinte:

   ```
   {
       "UserId": "user1",
       "UserName": "user1",
       "Status": "active",
       "Engine": "redis",
       "AccessString": "off ~keys* -@all +get",
       "UserGroupIds": [],
       "Authentication": {
           "Type": "no_password"
       },
       "ARN": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1"
   }
   ```

1. **Criar um segredo**

   Para Linux, macOS ou Unix:

   ```
   aws secretsmanager create-secret \
   --name production/ec/user1 \
   --secret-string \
   '{
      "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", 
       "username":"user1"
    }'
   ```

   Para Windows:

   ```
   aws secretsmanager create-secret ^
   --name production/ec/user1 ^
   --secret-string ^
   '{
      "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", 
       "username":"user1"
    }'
   ```

   Você verá uma resposta semelhante ao seguinte:

   ```
   {
    "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois",
    "Name": "production/ec/user1",
    "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95"
   }
   ```

1. **Configurar uma função do Lambda para alternar sua senha**

   1. Faça login no Console de gerenciamento da AWS e abra o console Lambda em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/elasticache/)

   1. No painel de navegação, escolha **Functions** (Funções) e escolha a função que você criou. Escolha o nome da função, não a caixa de seleção à esquerda.

   1. Escolha a guia **Configuration** (Configuração).

   1. Em **General configuration** (Configuração geral), escolha **Edit** (Editar) e defina **Timeout** (Tempo limite) para pelo menos 12 minutos.

   1. Escolha **Salvar**.

   1. Escolha **Environment variables** (Variáveis de ambiente) e defina o seguinte:

      1. SECRETS\$1MANAGER\$1ENDPOINT – https://secretsmanager. **REGION**.amazonaws.com

      1. SECRET\$1ARN – O nome de recurso da Amazon (ARN) do segredo que você criou na etapa 2.

      1. USER\$1NAME — Nome de usuário do ElastiCache usuário,

      1. Escolha **Salvar**.

   1. Escolha **Permissions** (Permissões)

   1. Em **Execution role** (Função de execução), escolha o nome da função do Lambda para exibição no console do IAM.

   1. A função do Lambda precisará da seguinte permissão para modificar os usuários e definir a senha: 

      ElastiCache

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:DescribeUsers",
                      "elasticache:ModifyUser"
                  ],
                  "Resource": "arn:aws:elasticache:us-east-1:123456789012:user:user1"
              }
          ]
      }
      ```

------

      Secrets Manager 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "secretsmanager:GetSecretValue",
                      "secretsmanager:DescribeSecret",
                      "secretsmanager:PutSecretValue",
                      "secretsmanager:UpdateSecretVersionStage"
                  ],
                  "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:XXXX"
              },
              {
                  "Effect": "Allow",
                  "Action": "secretsmanager:GetRandomPassword",
                  "Resource": "*"
              }
          ]
      }
      ```

------

1. Configurar a alternância de segredos do Secrets Manager

   1. **Usando o Console de gerenciamento da AWS, consulte [Configurar a rotação automática para AWS segredos do Secrets Manager usando o console](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_turn-on-for-other.html)**

      Para obter mais informações sobre como configurar uma programação de alternância, consulte [Programe expressões nas alternâncias do Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_schedule.html).

   1. **Usando o AWS CLI, consulte [Configurar a rotação automática para AWS Secrets Manager usar o AWS Command Line Interface](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets-cli.html)**