Configuração da alternância automática de segredos do AWS Secrets Manager que não são do banco de dados - 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 de segredos do AWS Secrets Manager que não são do banco de dados

Este tutorial descreve como configurar Função do Lambda de alternância para segredos não de banco de dados. Alternância é o processo de atualizar periodicamente um segredo. 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.

Para obter informações sobre segredos do banco de dados, consulte Alternância automática para segredos de banco de dados (console).

Atenção

Para ativar a alternância automática, é necessário ter permissão para criar um perfil de execução do IAM para a função de alternância do Lambda e anexar uma política de permissão a ela. Ambas as permissões iam:CreateRole e iam:AttachRolePolicy são necessárias. Conceder essas permissões permite que uma identidade conceda a ela mesma quaisquer permissões.

Etapa 1: criar uma função de alternância genérica

Para começar, crie uma função de alternância do Lambda. Ela não terá o código dentro dela para alternar seu segredo, então você escreverá isso em uma etapa posterior. Para obter informações sobre como uma função de alternância funciona, consulte Função de alternância do Lambda.

Nas regiões com suporte, é possível usar o AWS Serverless Application Repository para criar a função a partir de um modelo. Para obter uma lista de regiões com suporte, consulte Perguntas frequentes sobre o AWS Serverless Application Repository. Em outras regiões, você cria a função do zero e copia o código do modelo na função.

Para criar uma função de alternância genérica
  1. Para determinar se há suporte para AWS Serverless Application Repository em sua região, consulte endpoints e cotas do AWS Serverless Application Repository na Referência geral da AWS.

  2. Execute um destes procedimentos:

    • Se houver suporte para AWS Serverless Application Repository em sua região:

      1. No console do Lamba, escolha Aplicações e, em seguida, Criar aplicação.

      2. Na página Criar aplicação, escolha a guia Aplicação sem servidor.

      3. Na caixa de pesquisa, em Aplicações públicas, insira SecretsManagerRotationTemplate.

      4. Selecione Mostrar aplicações que criam perfis do IAM ou políticas de recursos personalizados.

      5. Escolha o bloco SecretsManagerRotationTemplate.

      6. Na página Analisar, configurar e implantar, no quadro Configurações da aplicação, preencha os campos obrigatórios.

        • Em endpoint, insira o endpoint da sua região, incluindo https://. Para uma lista de endpoints , consulte AWS Secrets Manager endpoints.

        • Para colocar a função do Lambda em uma VPC, inclua vpcSecurityGroupIds e vpcSubnetIds.

      7. Escolha Implantar.

    • Se não houver suporte para o AWS Serverless Application Repository em sua região:

      1. No console do Lambda, selecione Funções e, em seguida, Criar função.

      2. Na página Create function (Criar função), faça o seguinte:

        1. Escolha Criar do zero.

        2. Em Function name (Nome da função), insira um nome para sua função de alternância.

        3. Em Runtime, escolha Python 3.9.

        4. Escolha a opção Criar função.

Etapa 2: programar o código da função 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. Para obter informações sobre o que uma função de alternância faz, incluindo dicas sobre como escrever sua própria função de alternância, consulte Função de alternância do Lambda. É possível utilizar Modelos de função de alternância como referência.

Etapa 3: configurar o segredo para alternância

Nesta etapa, você define uma programação de alternância para seu segredo e conecta a função de alternância para o segredo.

Para configurar a alternância e criar uma função de alternância em branco
  1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

  2. Na página Secrets (Segredos), escolha o segredo.

  3. Na página Secret details (Detalhes do segredo), na seção Rotation configuration (Configuração da alternância), escolha Edit rotation (Editar alternância). Na caixa de diálogo Edit rotation configuration (Editar configuração da alternância), siga estas etapas:

    1. Ative a Automatic rotation (Alternância automática).

    2. Em Rotation schedule (Programação da alternância), insira sua programação no fuso horário UTC no Schedule expression builder (Desenvolvedor de expressão programada) ou como uma Schedule expression (Expressão programada). O Secrets Manager armazena sua programação como uma expressão rate() ou cron(). A janela de alternância começa automaticamente à 0h, a menos que você especifique um horário de início. Você pode alternar um segredo com intervalos a partir de quatro horas. Para ter mais informações, consulte Programação de alternância.

    3. (Opcional) Em Window duration (Duração da janela), escolha a duração da janela em que deseja que o Secrets Manager alterne o seu segredo, por exemplo, 3h, por uma janela de três horas. A janela não pode se estender até a próxima janela de alternância. Se você não especificar Window duration (Duração da janela) para uma programação de alternância em horas, a janela será automaticamente encerrada após uma hora. Para uma programação de alternância em dias, a janela terminará automaticamente no final do dia.

    4. (Opcional) Escolha Rotate immediately when the secret is stored (Alternar imediatamente quando o segredo for armazenado) para alternar o seu segredo assim que as suas alterações forem salvas. Se você desmarcar a caixa de seleção, a primeira alternância começará no cronograma definido.

    5. Em Função de alternância, escolha a função do Lambda criada na etapa 1.

    6. Escolha Salvar.

Etapa 4: permitir que a função de alternância acesse o Secrets Manager e seu banco de dados ou serviço

A função de alternância do Lambda necessita de permissão para acessar o segredo no Secrets Manager e precisa de permissão para acessar seu banco de dados ou serviço. Nesta etapa, você concede essas permissões à função de execução do Lambda. Se o segredo for criptografado com uma chave KMS diferente da Chave gerenciada pela AWS aws/secretsmanager, você precisará conceder à função de execução do Lambda permissão para usar a chave. Você pode usar o contexto de criptografia SecretARN para limitar o uso da função de descriptografia, de modo que a função de rotação tenha acesso apenas para descriptografar o segredo que é responsável pela rotação. Para obter exemplos de políticas, consulte Permissões para alternância.

Para obter instruções, consulte Função de execução do Lambda no Guia do desenvolvedor do AWS Lambda.

Etapa 5: Permitir que o Secrets Manager invoque a função de alternância

Para permitir que o Secrets Manager invoque a função de alternância na programação de alternância que você configurou, você precisa conceder a permissão lambda:InvokeFunction ao diretor do serviço Secrets Manager na política de recursos da função do Lambda.

Na política de recursos para sua função de alternância, recomendamos incluir a chave de contexto aws:SourceAccount para ajudar a evitar que o Lambda seja usado como um confused deputy. Para alguns produtos da AWS, para evitar o cenário de “confused deputy”, a AWS recomenda usar as chaves de condição globais aws:SourceArn e aws:SourceAccount. No entanto, se você incluir a condição aws:SourceArn em sua política de função de alternância, a função de alternância só poderá ser usada para alternar o segredo especificado por esse ARN. 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 anexar uma política de recursos a uma função Lambda, consulte Usar políticas baseadas em recursos para o Lambda.

A política a seguir permite que o Secrets Manager invoque uma função do Lambda.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } }, "Resource": "LambdaRotationFunctionARN" } ] }

Etapa 6: configurar acesso à rede para a função de alternância

Nesta etapa, você permite que a função de alternância se conecte ao Secrets Manager e ao serviço ou banco de dados ao qual o segredo se destina. A função de alternância deve ser capaz de acessar ambos para ser capaz de alternar o segredo. Consulte Acesso à rede para a função de alternância do Lambda.

Próximas etapas

Ao configurar a alternância na Etapa 3, você define uma programação para a alternância do segredo. Se a alternância falhar quando estiver programada, o Secrets Manager tentará a alternância várias vezes. Você também pode iniciar uma roalternância tação imediatamente seguindo as instruções em Alternar um segredo imediatamente.

Se a alternância falhar, consulte Solucionar problemas de alternância.