¿Cómo puedo ocultar las variables de entorno y el texto sin cifrar de mi función de Lambda a un usuario de IAM?

2 minutos de lectura
0

Quiero evitar que los usuarios de AWS Identity and Access Management (IAM) con acceso a mi función de AWS Lambda vean variables de entorno y texto sin cifrar. ¿Cómo lo hago?

Resolución

Nota: La siguiente solución evita que las identidades de IAM vean las variables de entorno de una función de Lambda únicamente en la ](https://docs.aws.amazon.com/lambda/latest/dg/configuration-console.html)consola de Lambda[ y en la API de Lambda. No impide que las identidades de IAM accedan a las variables de entorno descifradas mediante el código de la función ni que generen los valores de las variables de entorno en los registros de Amazon CloudWatch.

Para evitar que las identidades de IAM accedan a contraseñas, claves u otra información confidencial de las variables de entorno de Lambda, haga lo siguiente:

Utilice una clave administrada por el cliente de AWS Key Management Service (AWS KMS) para cifrar las variables de entorno. Para configurar una clave de KMS, siga las instrucciones que se indican en Proteger variables de entorno.

Importante: Asegúrese de editar la política de claves de la clave de KMS para que la política deniegue el acceso a las identidades de IAM que no necesitan acceso.

Ejemplo de política claves de KMS que deniega a usuarios de IAM específicos el permiso para ver las variables de entorno de Lambda

Nota: Sustituya arn:aws:iam::1234567890:User1DeniedAccess y arn:aws:iam::1234567890:User2DeniedAccess por los nombres de recursos de Amazon (ARN) de las identidades de IAM a las que desea denegar el acceso. Puede añadir más ARN de IAM a la política de claves si es necesario.

{
    "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": "*"
        }
    ]
}

Recibirá un mensaje de error similar al siguiente que verá el usuario de IAM denegado si intenta ver las variables de entorno de la función:

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

Información relacionada

Crear claves

Permisos de AWS Lambda

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años