Configure a rotação automática usando o AWS CLI - AWS Secrets Manager

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

Este tutorial descreve como configurar Rotação por função Lambda 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 configurar a rotação usando o console. Para obter informações sobre segredos do banco de dados, consulte Alternância automática para segredos de banco de dados (console). Para todos os outros tipos de segredos, consulte Rotação automática para segredos que não são do banco de dados (console).

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 Lambda possa acessar o Secrets Manager e seu banco de dados ou serviço pela rede. Por fim, você configura o segredo para a alternância.

Pré-requisito para segredos do banco de dados: escolha uma estratégia de rotação

Para obter informações sobre as estratégias oferecidas pelo Secrets Manager, consulteEstratégias de rotação da função Lambda.

Opção 1: estratégia de usuário único

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

Se você escolher a estratégia de usuários alternados, deverá:

  • Crie um segredo de banco de dados e armazene nele as credenciais de superusuário do banco de dados. Você precisa de um segredo com as credenciais de superusuário porque a rotação alternada de usuários clona o primeiro usuário, e a maioria dos usuários não tem essa permissão.

  • Adicione o ARN do segredo do superusuário ao segredo original. Para ter mais informações, consulte Estrutura JSON de segredos AWS Secrets Manager.

Observe que o Amazon RDS Proxy não suporta a estratégia de usuários alternados.

Etapa 1: escrever o código da função de rotação

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 ter mais informações, consulte Rotação por função Lambda. 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 os segredos dos bancos de dados Amazon RDS, Amazon Aurora, Amazon Redshift e Amazon DocumentDB em. Modelos de função de alternância

Para escrever o código da função de rotação
  1. Execute um destes procedimentos:

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

Nesta etapa, você cria a função Lambda usando o arquivo ZIP criado na Etapa 1. Você também define a função de execução do Lambda, que é a função 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 exemplos e mais informações, consultePermissões da função de execução da função de rotação Lambda para AWS Secrets Manager. A política deve:

    • Permitir que a função chame as operações do Secrets Manager no segredo.

    • Permita que a função chame o serviço ao qual o segredo se destina, por exemplo, para criar uma nova senha.

  2. Crie a função de execução do Lambda e aplique a política de confiança que você criou na etapa anterior chamando. iam create-role

    aws iam create-role \ --role-name rotation-lambda-role \ --assume-role-policy-document file://trust-policy.json
  3. Crie a função Lambda do arquivo ZIP chamando lambda create-function.

    aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://my-function.zip \ --handler .handler \ --role arn:aws:iam::123456789012:role/service-role/rotation-lambda-role
  4. Defina uma política de recursos na função Lambda para permitir que o Secrets Manager a invoque chamando lambda add-permission.

    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

Para ter mais informações, consulte Acesso à rede para a função de rotação Lambda.

Etapa 4: configurar o segredo para rotação

Para ativar a alternância automática do seu segredo, determine rotate-secret. 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 ter mais informações, consulte Cronogramas de rotação.

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

Próximas etapas

Consulte Solucionar problemas de rotação AWS Secrets Manager.