Asegurar las variables de entorno Lambda - AWS Lambda

Asegurar las variables de entorno Lambda

A fin de proteger las variables de entorno, puede utilizar el cifrado en el servidor para proteger los datos en reposo y el cifrado del lado del cliente para proteger los datos en tránsito.

nota

Para aumentar la seguridad de la base de datos, se recomienda utilizar AWS Secrets Manager en lugar de variables de entorno para almacenar las credenciales de la base de datos. Para obtener más información, consulte Uso de AWS Lambda con Amazon RDS.

Seguridad en reposo

Lambda siempre proporciona cifrado en el servidor en reposo con una AWS KMS key. De forma predeterminada, Lambda utiliza una Clave administrada de AWS. Si este comportamiento predeterminado se ajusta a su flujo de trabajo, no tiene que configurar nada más. Lambda crea la Clave administrada de AWS en su cuenta y administra sus permisos. AWS no le cobrará por el uso de esta clave.

Si lo prefiere, puede proporcionar una clave administrada por el cliente de AWS KMS en su lugar. Puede hacerlo para tener control sobre la rotación de la clave de KMS o para cumplir con los requisitos de su organización para administrar claves de KMS. Cuando usa una clave administrada por el usuario, solo los usuarios de su cuenta con acceso a la clave de KMS pueden ver o administrar las variables de entorno de la función.

Las claves administradas por el cliente ocasionan cargos de AWS KMS estándar. Para más información, consulte Precios de AWS Key Management Service.

Seguridad en tránsito

Para mayor seguridad, puede habilitar las funciones auxiliares del cifrado en tránsito, de modo que garantiza que las variables de entorno se cifren en el lado del cliente para su protección en tránsito.

Configuración del cifrado de las variables de entorno
  1. Use AWS Key Management Service (AWS KMS) a fin de crear claves administradas por el cliente para que Lambda las utilice para el cifrado del lado del cliente y del servidor. Para obtener más información, consulte Creación de claves en la AWS Key Management ServiceGuía para desarrolladores de .

  2. Mediante la consola de Lambda, vaya a la página Editar variables de entorno.

    1. Abra la página de Funciones en la consola de Lambda.

    2. Elija una función.

    3. Elija Configuración y, a continuación, elija Variables de entorno en la barra de navegación izquierda.

    4. En la sección Variables de entorno, elija Editar.

    5. Expanda Configuración de cifrado.

  3. (Opcional) Habilite las funciones auxiliares de cifrado de la consola para que utilicen el cifrado del cliente a fin de proteger los datos en tránsito.

    1. En Cifrado en tránsito, elija Activar funciones auxiliares para el cifrado en tránsito.

    2. Para cada variable de entorno para la que desee habilitar las funciones auxiliares de cifrado de la consola, elija Cifrar junto a la variable de entorno.

    3. En la AWS KMS key para el cifrado en tránsito, elija una clave administrada por el cliente que haya creado al principio de este procedimiento.

    4. Elija Política de rol de ejecución y copie la política. Esta política concede permiso al rol de ejecución de la función para descifrar las variables de entorno.

      Guarde esta política para usarla en el último paso de este procedimiento.

    5. Agregue el código a la función que descifre las variables de entorno. Para ver un ejemplo, elija Fragmento para descifrar secretos.

  4. (Opcional) Especifique su clave administrada por el cliente para el cifrado en reposo.

    1. Elija Use una clave maestra del cliente.

    2. Elija una clave administrada por el cliente que haya creado al principio de este procedimiento.

  5. Seleccione Guardar.

  6. Configure los permisos.

    Si está utilizando una clave administrada por el cliente con cifrado en el servidor, conceda permisos a cualquier usuario o rol que desee que pueda ver o administrar variables de entorno en la función. Para obtener más información, consulte Administración de permisos para la clave de KMS de cifrado en el servidor.

    Si habilita el cifrado del lado del cliente para la seguridad en tránsito, su función necesita permiso para llamar a la operación de la API kms:Decrypt. Agregue la política que guardó anteriormente en este procedimiento al rol de ejecución de la función.

Administración de permisos para la clave de KMS de cifrado en el servidor

No se requieren permisos de AWS KMS para el usuario o el rol de ejecución de la función para utilizar la clave de cifrado predeterminada. Para utilizar una clave administrada por el cliente, necesita permisos de uso de la clave. Lambda usa sus permisos para crear una concesión en la clave. Esto permite a Lambda usarlo para el cifrado.

  • kms:ListAliases: para ver las teclas en la consola de Lambda.

  • kms:CreateGrant, kms:Encrypt: para configurar una clave administrada por el cliente en una función.

  • kms:Decrypt: para ver y administrar variables de entorno cifradas con una clave administrada por el cliente.

Puede obtener estos permisos de su Cuenta de AWS o de la política de permisos basada en recursos de una clave. ListAliases surge de las políticas administradas en Lambda. Las políticas clave conceden los permisos restantes a los usuarios del grupo Usuarios clave .

Los usuarios sin permisos Decrypt todavía pueden administrar funciones, pero no pueden ver variables de entorno ni administrarlas en la consola de Lambda. Para evitar que un usuario vea variables de entorno, añada una instrucción a los permisos del usuario que deniegue el acceso a la clave predeterminada, a una clave administrada por el cliente o a todas las claves.

ejemplo Política de IAM: denegar acceso por ARN de clave
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:111122223333:key/3be10e2d-xmpl-4be4-bc9d-0405a71945cc" } ] }

Para obtener información detallada sobre la administración de permisos de clave, consulte Uso de políticas de claves en AWS KMS en la Guía para desarrolladores de AWS Key Management Service.