AWS Secrets Manager modelos de função de rotação - 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á.

AWS Secrets Manager modelos de função de rotação

Para usar os modelos, consulte:

Os modelos suportam o Python 3.9.

Para escrever sua própria função de rotação, consulte Escrever uma função de rotação.

Amazon RDS e Amazon Aurora

Usuário único do Db2 do Amazon RDS

Usuários em alternância do Db2 do Amazon RDS

Usuário único do MariaDB do Amazon RDS

Usuários alternados do MariaDB do Amazon RDS

Usuário único do Amazon RDS e do Amazon Aurora MySQL

Usuários em alternância do Amazon RDS e do Amazon Aurora MySQL

Usuário único do Oracle do Amazon RDS

Usuários alternados do Oracle do Amazon RDS

Usuário único do Amazon RDS e do Amazon Aurora PostgreSQL

Usuários em alternância do Amazon RDS e do Amazon Aurora PostgreSQL

Usuário único do Microsoft SQLServer do Amazon RDS

Usuários alternados do Microsoft SQLServer do Amazon RDS

Amazon DocumentDB (compatível com MongoDB)

Usuário único do Amazon DocumentDB

Usuários alternados do Amazon DocumentDB

Amazon Redshift

Usuário único do Amazon Redshift

Usuários alternados do Amazon Redshift

Amazon ElastiCache

Para usar esse modelo, consulte Rotação automática de senhas para usuários no Guia do ElastiCache usuário da Amazon.

Outros tipos de segredo

O Secrets Manager fornece esse modelo como ponto de partida para você criar uma função de alternância para qualquer tipo de segredo.

Ao escrever sua função, tenha cuidado quanto à inclusão de instruções de depuração ou registro em log. Essas declarações podem fazer com que as informações em sua função sejam gravadas na Amazon CloudWatch, então você precisa garantir que o registro não inclua nenhuma informação confidencial coletada durante o desenvolvimento.

Por motivos de segurança, o Secrets Manager só permite que uma função de alternância do Lambda alterne o segredo diretamente. A função de alternância não pode chamar uma segunda função do Lambda para alternar o segredo.

Para exemplos de instruções de log, consulte o código-fonte dos AWS Secrets Manager modelos de função de rotação.

Se você usa binários e bibliotecas externos, por exemplo, para se conectar a um recurso, precisará gerenciar a correção e a manutenção deles. up-to-date

Para sugestões de depuração, consulte Testing and debugging serverless applications (Teste e depuração de aplicações com tecnologia sem servidor).

Existem quatro etapas para alternar um segredo, que correspondem aos quatro métodos a seguir de uma função de alternância do Lambda.

create_secret

Em create_secret, você primeiro verifica se existe um segredo chamando get_secret_value com o ClientRequestToken aprovado. Se não houver segredo, você cria um novo segredo com create_secret e o token como VersionId. Em seguida, você pode gerar um novo valor de segredo com get_random_password. Você deve garantir que o novo valor do segredo inclua apenas caracteres válidos para o banco de dados ou serviço. Exclua caracteres usando o parâmetro ExcludeCharacters. Chame put_secret_value para armazená-lo com o rótulo de teste AWSPENDING. Armazenar o novo valor do segredo em AWSPENDING ajuda a garantir a idempotência. Se a alternância falhar por qualquer motivo, você poderá consultar esse valor de segredo em chamadas subsequentes. Consulte How do I make my Lambda function idempotent? (Como torno minha função Lambda idempotente?).

Ao testar sua função, use o AWS CLI para ver os estágios da versão: chame describe-secrete examineVersionIdsToStages.

set_secret

Em set_secret, você altera a credencial no banco de dados ou serviço para corresponder ao novo valor do segredo na versão AWSPENDING do segredo.

Se você transmitir instruções para um serviço que interprete instruções, como um banco de dados, use a parametrização de consulta. Para obter mais informações, consulte Query Parameterization Cheat Sheet (Folha de referência de parametrização para consulta) no site do OWASP.

A função de alternância é um representante privilegiado que tem autorização para acessar e modificar as credenciais do cliente no segredo do Secrets Manager e no recurso de destino. Para evitar um possível ataque “confused deputy”, você precisa garantir que um invasor não possa usar a função para acessar outros recursos. Antes de atualizar a credencial:

  • Verifique se a credencial na versão AWSCURRENT do segredo é válida. Se a credencial AWSCURRENT não for válida, abandone a tentativa de alternância.

  • Verifique se os valores dos segredos AWSCURRENT e AWSPENDING são para o mesmo recurso. Para obter um nome de usuário e uma senha, verifique se os nomes de usuário AWSCURRENT e AWSPENDING são os mesmos.

  • Verifique se o recurso do serviço de destino é o mesmo. Para um banco de dados, verifique se os nomes de host AWSCURRENT e AWSPENDING são os mesmos.

test_secret

Em test_secret, você testa a versão AWSPENDING do segredo usando-a para acessar o banco de dados ou serviço.

finish_secret

Em finish_secret, você usa update_secret_version_stage para mover o rótulo de preparação AWSCURRENT da versão do segredo anterior para a nova versão do segredo. O Secrets Manager adiciona automaticamente o rótulo de preparação AWSPREVIOUS à versão anterior para reter a última versão válida do segredo.