Por que minha função de rotação Secrets Manager Lambda falhou com o erro “O mecanismo de banco de dados deve ser definido como 'postgres'/'mysql'”?

3 minuto de leitura
0

Minha função de rotação do AWS Lambda falhou no AWS Secrets Manager com o erro “O mecanismo de banco de dados deve ser definido como 'postgres'/'mysql'”.

Breve descrição

Você pode receber esse erro se estiver usando uma função de rotação multiusuário do AWS Lambda para credenciais de usuário.

Observação: esse erro se aplica somente a dois tipos de banco de dados do Amazon Relational Database Service (Amazon RDS), que são a edição compatível com o Amazon Aurora PostgreSQL e a edição compatível com o Amazon Aurora MySQL.

O erro ocorre na etapa setSecret da função de rotação do Lambda para as credenciais do banco de dados do Amazon RDS.

Resolução

Edite a função de rotação Lambda se você fez alterações no código da função ou crie uma nova rotação se não tiver feito alterações.

Opção 1: Edite o código da função de rotação

  1. Abra o console do Lambda.

  2. No painel de navegação, escolha Funções e, em seguida, escolha o nome da função do Lambda.

  3. Escolha a lista suspensa Ações, escolha a função Exportar e escolha Baixar pacote de implantação.

  4. Extraia os arquivos do arquivo .zip baixado.

  5. No IDE do Visual Studio Code, abra o arquivo lambda_function.py.

  6. Na função auxiliar get\ _secret\ _dict(), substitua if secret_dict['engine'] != 'mysql': pelo seguinte código:

    supported_engines = ["mysql", "aurora-mysql"]
    if secret_dict['engine'] not in supported_engines:
  7. Compacte o conteúdo da pasta .zip pelo arquivo lambda\ _function.py atualizado.

  8. No console do Lambda, na guia Código, escolha a lista suspensa Carregar de, escolha o arquivo .zip e, em seguida, escolha a nova pasta .zip da etapa 7.

Opção 2: Crie uma nova função de rotação

  1. Abra o console do Secrets Manager.
  2. Na página Segredos, escolha seu nome secreto.
  3. Na página Detalhes do segredo, na seção Configuração de rotação, escolha Editar rotação.
  4. Na caixa de diálogo Editar configuração de rotação, siga as instruções na **etapa 3e.**para configurar o segredo da rotação.
  5. Em Usar credenciais separadas para alternar esse segredo, escolha Sim.
  6. Em Segredos, escolha o segredo para as credenciais do banco de dados principal do Amazon RDS ou do Amazon Aurora.
  7. Escolha Salvar.
  8. (Opcional) Se a função de rotação Lambda anterior estiver anexada a vários segredos, você poderá usar a nova função para esses segredos.
    Para cada segredo, abra a página de Detalhes do segredo e, na seção Configuração de rotação, escolha Editar rotação. Na caixa de diálogo Editar configuração de rotação, para a função de rotação Lambda, escolha a nova função de rotação e escolha Salvar.
  9. Depois de mudar todos os segredos para a nova função de rotação do Lambda, no console do Lambda, exclua a função Lambda de rotação anterior.

Informações relacionadas

Como crio uma função de rotação com um segredo do AWS Secrets Manager para um banco de dados sem suporte?

Melhore a segurança das credenciais do banco de dados primário do Amazon RDS usando o AWS Secrets Manager

AWS OFICIAL
AWS OFICIALAtualizada há 10 meses