Permissões da função de execução da função de alternância do Lambda para AWS Secrets Manager - 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á.

Permissões da função de execução da função de alternância do Lambda para AWS Secrets Manager

O Secrets Manager usa uma função do Lambda para alternar segredos. Para que a função Lambda seja executada, o Lambda assume uma função de execução do IAM e fornece essas credenciais ao código da função Lambda. Para obter instruções sobre como configurar a alternância automática, consulte:

Os exemplos a seguir mostram políticas em linha para funções de execução da função de alternância do Lambda. Para criar uma função de execução e anexá-la a uma política de permissões, consulte AWS LambdaFunção de execução.

Política para uma função de execução da função de alternância do Lambda

A política de exemplo a seguir permite que a função de alternância:

  • Execute operações do Secrets Manager para o SecretARN

  • Criar uma nova senha.

  • Definir a configuração necessária se seu banco de dados ou serviço for executado em uma VPC. Consulte Configuring a Lambda function to access resources in a VPC (Configurar uma função do Lambda para acessar recursos em uma VPC).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "SecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface" ], "Resource": "*", "Effect": "Allow" } ] }

Declaração de política para chaves gerenciadas pelo cliente

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, para que a função de alternância tenha acesso apenas para descriptografar o segredo que é responsável pela rotação. O exemplo a seguir mostra uma instrução a ser adicionada à política de função de execução para descriptografar o segredo usando a chave KMS.

{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "KMSKeyARN" "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "SecretARN" } } }

Para usar a função de alternância para vários segredos criptografados com uma chave gerenciada pelo cliente, adicione uma declaração como o exemplo a seguir para permitir que o perfil de execução decifre o segredo.

{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "KMSKeyARN" "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": [ "arn1", "arn2" ] } } }

Declaração de política para a estratégia de usuários alternados

Para obter informações sobre a estratégia de alternância de usuários alternados, consulte Estratégia de alternância.

Para um segredo que contém credenciais do Amazon RDS, se você estiver usando a estratégia de usuários alternativos e o segredo do superusuário for gerenciado pelo Amazon RDS, você também deverá permitir que a função de alternância chame APIs somente de leitura no Amazon RDS para que ela possa obter as informações de conexão do banco de dados. Recomendamos que você anexe a política gerenciada da AWS AmazonRDSReadOnlyAccess.

O exemplo de política a seguir permite que a função:

  • Execute operações do Secrets Manager para o SecretARN

  • Recupere as credenciais no segredo do superusuário. O Secrets Manager usa as credenciais no segredo do superusuário para atualizar as credenciais no segredo que está sendo alternado.

  • Criar uma nova senha.

  • Definir a configuração necessária se seu banco de dados ou serviço for executado em uma VPC. Para obter mais informações, consulte Configuração de uma função do Lambda para acessar recursos em uma VPC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "SecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "SuperuserSecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface" ], "Resource": "*", "Effect": "Allow" } ] }