Configuração da alternância automática usando a 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á.

Configuração da alternância automática usando a AWS CLI

Esta seção descreve como configurar Função do Lambda de alternância usando a AWS CLI. 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). Para todos os outros tipos de segredos, consulte Alternância automática para segredos não de banco de dados (console).

Para configurar a alternância usando a AWS CLI, se você estiver fazendo a alternância de um segredo de banco de dados, primeiro você precisa escolher uma estratégia de alternância. 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.

Pré-requisito para segredos de banco de dados: escolha uma estratégia de alternância

Para obter informações sobre as estratégias oferecidas pelo Secrets Manager, consulte Estratégias de alternância da função do 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á:

  • Criar um segredo 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 ter mais informações, consulte Estrutura JSON de segredos do AWS Secrets Manager.

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

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 Função do Lambda de alternância. 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.

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

  2. Salve o arquivo em um arquivo ZIP denominado my-function.zip junto com quaisquer dependências necessárias.

Etapa 2: Criar a função do Lambda

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, 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 alternância do 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 o perfil chame o serviço para o qual o segredo se destina, por exemplo, para criar uma nova senha.

  2. Crie o perfil de execução do Lambda e aplique a política de confiança criada 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 alternância do Lambda.

Etapa 4: configurar o segredo para alternância

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 Programação de alternância.

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 Solução de problemas de alternância do AWS Secrets Manager.