Como oculto de um usuário do IAM as variáveis de ambiente e o texto não criptografado da minha função do Lambda?

2 minuto de leitura
0

Quero evitar que usuários do AWS Identity and Access Management (IAM) com acesso à minha função do AWS Lambda vejam variáveis de ambiente e texto não criptografado. Como eu faço isso?

Resolução

Observação: a solução a seguir impede que as identidades do IAM vejam as variáveis de ambiente de uma função do Lambda somente no console do Lambda e na API do Lambda. Isso não impede que as identidades do IAM acessem variáveis de ambiente descriptografadas usando o código da função ou enviem os valores das variáveis de ambiente para o Amazon CloudWatch Logs.

Para evitar que as identidades do IAM acessem senhas, chaves ou outras informações confidenciais em suas variáveis de ambiente do Lambda, faça o seguinte:

Use uma chave gerenciada pelo cliente do AWS Key Management Service (AWS KMS) para criptografar as variáveis de ambiente. Para configurar uma chave do KMS, siga as instruções em Securing environment variables (Proteger variáveis de ambiente).

Importante: Certifique-se de editar a política de chave da chave do KMS para que a política negue o acesso às identidades do IAM que não precisam de acesso.

Exemplo de política de chave do KMS que nega permissão a usuários específicos do IAM para ver variáveis de ambiente do Lambda

Observação: substitua arn:aws:iam::1234567890:User1DeniedAccess e arn:aws:iam::1234567890:User2DeniedAccess pelos nomes do recurso da Amazon (ARN) das identidades do IAM às quais deseja negar acesso. Você pode adicionar mais ARNs do IAM à política de chave conforme necessário.

{
    "Id": "MyCustomKey",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Deny IAM users permission to see Lambda environment variables",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::1234567890:User1DeniedAccess",
                    "arn:aws:iam::1234567890:User2DeniedAccess"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}

Você recebe uma mensagem de erro que o usuário do IAM negado vê se tenta visualizar as variáveis de ambiente da função semelhantes às seguintes:

"Lambda was unable to decrypt your environment variables because the KMS access was denied. Please check your KMS permissions. KMS Exception: AccessDeniedException"

Informações relacionadas

Criação de chaves

Permissões do AWS Lambda

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos