Alternância automática de senhas para os usuários - Amazon ElastiCache

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

Com AWS Secrets Manager, você pode substituir as credenciais codificadas em seu código (incluindo senhas) por uma API chamada 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 senhas ElastiCache (RedisOSS) (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?

Como ElastiCache usa segredos

O Valkey 7.2 tem um conjunto de recursos equivalente ao Redis OSS 7.0. No Redis OSS 6, ElastiCache introduzido Controle de acesso baseado em funções () RBAC para proteger o cluster Valkey ou RedisOSS. Esse recurso permite que certas conexões sejam limitadas em termos dos comandos que podem ser executados e das chaves que podem ser acessadas. ComRBAC, enquanto o cliente cria um usuário com senhas, os valores da senha precisam ser inseridos manualmente em texto simples 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.

O uso de segredos tem um custo. Para obter informações sobre preços, consulte Preços do AWS.

Como ElastiCache os usuários são associados ao segredo

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 ElastiCache lateral.

{ "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

Para ativar a rotação automática de senhas do Secrets Manager, você criará uma função Lambda que interagirá com o usuário modificado API para atualizar as senhas do usuário.

Para obter informações sobre como isso funciona, consulte Como funciona a alternância.

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 aws:SourceArn condição em sua política de função de rotação, a função de rotação só poderá ser usada para alternar o segredo especificado por elaARN. 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.

Como criar um ElastiCache usuário e associá-lo ao Secrets Manager

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" }
  2. 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" }
  3. Configurar uma função do Lambda para alternar sua senha

    1. Faça login no AWS Management Console e abra o console Lambda em https://console.aws.amazon.com/lambda/

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

    3. Escolha a guia Configuration (Configuração).

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

    5. Escolha Salvar.

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

      1. SECRETS_ MANAGER _ ENDPOINT — https://secretsmanager. REGION.amazonaws.com

      2. SECRET_ ARN — O nome de recurso da Amazon (ARN) do segredo que você criou na Etapa 2.

      3. USER_ NAME — Nome de ElastiCache usuário do usuário,

      4. Escolha Salvar.

    7. Escolha Permissions (Permissões)

    8. Em Função de execução, escolha o nome da função Lambda para visualizar no IAM console.

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

      ElastiCache

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

      Secrets Manager 

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxx:secret:XXXX" }, { "Effect": "Allow", "Action": "secretsmanager:GetRandomPassword", "Resource": "*" } ] }
  4. Configurar a alternância de segredos do Secrets Manager

    1. Usando o AWS Management Console, consulte Configurar a rotação automática para AWS segredos do Secrets Manager usando o console

      Para obter mais informações sobre como configurar uma programação de alternância, consulte Programe expressões nas alternâncias do Secrets Manager.

    2. Usando o AWS CLI, consulte Configurar a rotação automática para AWS Secrets Manager usar o AWS Command Line Interface