Controles de Security Hub para AWS Lambda
Estos controles de AWS Security Hub CSPM evalúan el servicio y los recursos de AWS Lambda. Es posible que estos controles no estén disponibles en todas las Regiones de AWS. Para obtener más información, consulte Disponibilidad de los controles por región.
[Lambda.1] Las políticas de función de Lambda deberían prohibir el acceso público
Requisitos relacionados: NIST.800-53.r5 AC-21, NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-4, NIST.800-53.r5 AC-4(21), NIST.800-53.r5 AC-6, NIST.800-53.r5 SC-7, NIST.800-53.r5 SC-7(11), NIST.800-53.r5 SC-7(16), NIST.800-53.r5 SC-7(20), NIST.800-53.r5 SC-7(21), NIST.800-53.r5 SC-7(3), NIST.800-53.r5 SC-7(4), NIST.800-53.r5 SC-7(9), PCI DSS v3.2.1/1.2.1, PCI DSS v3.2.1/1.3.1, PCI DSS v3.2.1/1.3.2, PCI DSS v3.2.1/1.3.4, PCI DSS v3.2.1/7.2.1, PCI DSS v4.0.1/7.2.1
Categoría: Proteger - Configuración de red segura
Gravedad: crítica
Tipo de recurso: AWS::Lambda::Function
AWS Config Regla de: lambda-function-public-access-prohibited
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si la política basada en recursos de la función de Lambda prohíbe el acceso público a la cuenta. El control falla si se permite el acceso público. El control también falla si se invoca una función de Lambda desde Amazon S3 y la política no incluye una condición para limitar el acceso público, como por ejemplo AWS:SourceAccount. Le recomendamos que utilice otras condiciones de S3 junto con AWS:SourceAccount en su política de bucket para obtener un acceso más preciso.
nota
Este control no evalúa condiciones de políticas que utilicen caracteres comodín o variables. Para producir un resultado PASSED, las condiciones en la política de la función de Lambda deben usar únicamente valores fijos, que son valores que no contienen caracteres comodín ni variables de políticas. Para obtener información sobre variables de políticas, consulte Variables y etiquetas en la Guía del usuario de AWS Identity and Access Management.
La función de Lambda no debe ser accesible públicamente, ya que puede permitir el acceso involuntario al código que tenga almacenado en la característica.
Corrección
Para solucionar este problema, debe actualizar la política basada en los recursos de su característica para eliminar los permisos o añadir la condición de AWS:SourceAccount. Solo puede actualizar la política basada en recursos desde la API de Lambda o AWS CLI.
Para empezar, revise la política basada en recursos de la consola Lambda. Identifique la declaración de política que tiene valores de campo Principal que hacen que la política sea pública, como "*" o { "AWS": "*" }.
No puede editar la política desde la consola. Para eliminar los permisos de la característica, ejecute el comando remove-permission desde AWS CLI.
$ aws lambda remove-permission --function-name<function-name>--statement-id<statement-id>
Sustituya por el nombre de la función de Lambda y <function-name> con el identificador de la sentencia (<statement-id>Sid) que desee eliminar.
[Lambda.2] Las funciones de Lambda deben usar los tiempos de ejecución admitidos
Requisitos relacionados: NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-2, NIST.800-53.r5 SI-2, NIST.800-53.r5 SI-2(2), NIST.800-53.r5 SI-2(4), NIST.800-53.r5 SI-2(5), PCI DSS v4.0.1/12.3.4
Categoría: Proteger - Desarrollo seguro
Gravedad: media
Tipo de recurso: AWS::Lambda::Function
AWS Config Regla de: lambda-function-settings-check
Tipo de horario: provocado por un cambio
Parámetros:
-
runtime:dotnet8, java21, java17, java11, java8.al2, nodejs22.x, nodejs20.x, python3.13, python3.12, python3.11, python3.10, python3.9, ruby3.4, ruby3.3, ruby3.2(no personalizable)
Este control comprueba que la configuración de la característica de AWS Lambda para el tiempo de ejecución coincida con los valores esperados establecidos para los tiempos de ejecución para cada lenguaje. El control falla si la función de Lambda no utiliza un tiempo de ejecución compatible, tal como se indicó en la sección Parámetros. Security Hub ignora las funciones que tienen un tipo de paquete de Image.
Los Tiempos de ejecución de Lambda se crean a partir de una combinación de sistema operativo, lenguaje de programación y bibliotecas de software, todos ellos sujetos a operaciones de mantenimiento y actualizaciones de seguridad. Cuando un componente de un tiempo de ejecución deja de recibir actualizaciones de seguridad, Lambda descarta el tiempo de ejecución. Aunque no puede crear funciones que utilicen el tiempo de ejecución obsoleto, la función sigue estando disponible para procesar eventos de invocación. Recomendamos comprobar que sus funciones de Lambda sean actuales y que no utilicen entornos de tiempo de ejecución obsoletos. Para obtener una lista de los tiempos de ejecución compatibles, consulte los tiempos de ejecución de Lambda en la Guía para desarrolladores de AWS Lambda.
Corrección
Para obtener más información sobre los tiempos de ejecución compatibles y los programas de obsolescencia, consulte la Política de obsolescencia del tiempo de ejecución en la Guía para desarrolladores de AWS Lambda. Cuando migre los tiempos de ejecución a la versión más reciente, siga la sintaxis y las instrucciones de los editores del lenguaje. También recomendamos implementar actualizaciones del tiempo de ejecución para ayudar a reducir el riesgo de que las cargas de trabajo se vean afectadas en el caso de que se produzca una incompatibilidad entre las versiones en el tiempo de ejecución.
[Lambda.3] Las funciones de Lambda deben estar en una VPC
Requisitos relacionados: PCI DSS v3.2.1/1.2.1, PCI DSS v3.2.1/1.3.1, PCI DSS v3.2.1/1.3.2, PCI DSS v3.2.1/1.3.4, NIST.800-53.r5 AC-21, NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-4, NIST.800-53.r5 AC-4(21), NIST.800-53.r5 AC-6, NIST.800-53.r5 SC-7, NIST.800-53.r5 SC-7(11), NIST.800-53.r5 SC-7(16), NIST.800-53.r5 SC-7(20), NIST.800-53.r5 SC-7(21), NIST.800-53.r5 SC-7(3), NIST.800-53.r5 SC-7(4), NIST.800-53.r5 SC-7(9)
Categoría: Proteger - Configuración de red segura
Gravedad: baja
Tipo de recurso: AWS::Lambda::Function
AWS Config Regla de: lambda-inside-vpc
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si se implementó una función de Lambda en una nube privada virtual (VPC). El control falla si no se implementa la función de Lambda en una VPC. Security Hub no evalúa la configuración de direccionamiento de subred de VPC para determinar la accesibilidad pública. Es posible que vea resultados erróneos en los recursos de Lambda @Edge.
La implementación de recursos en una VPC refuerza la seguridad y el control de las configuraciones de red. Estas implementaciones también ofrecen escalabilidad y una alta tolerancia a los errores en varias zonas de disponibilidad. Puede personalizar las implementaciones de VPC para cumplir con los diversos requisitos de las aplicaciones.
Corrección
Para configurar una característica existente para conectarse a subredes privadas de su VPC, consulte Configuración del acceso a la VPC en la Guía para desarrolladores de AWS Lambda. Recomendamos elegir al menos dos subredes privadas para una alta disponibilidad y al menos un grupo de seguridad que cumpla con los requisitos de conectividad de la característica.
[Lambda.5] Las funciones de Lambda de la VPC deben funcionar en varias zonas de disponibilidad
Requisitos relacionados: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36, NIST.800-53.r5 SC-5(2), NIST.800-53.r5 SI-13(5)
Categoría: Recuperación > Resiliencia > Alta disponibilidad
Gravedad: media
Tipo de recurso: AWS::Lambda::Function
AWS Config Regla de: lambda-vpc-multi-az-check
Tipo de horario: provocado por un cambio
Parámetros:
| Parámetro | Descripción | Tipo | Valores personalizados permitidos | Valor predeterminado de Security Hub |
|---|---|---|---|---|
|
|
Cantidad mínima de zonas de disponibilidad |
Enum |
|
|
Este control comprueba si una función de AWS Lambda que se conecta a una nube privada virtual (VPC) funciona en al menos la cantidad especificada de zonas de disponibilidad (AZ). Se produce un error en el control si la función no funciona en al menos la cantidad especificada de AZ. A menos que se proporcione un valor personalizado de parámetro para la cantidad mínima de AZ, Security Hub utiliza un valor predeterminado de dos AZ.
La implementación de recursos en varias zonas de disponibilidad es una práctica recomendada de AWS para garantizar una alta disponibilidad en su arquitectura. La disponibilidad es un pilar fundamental del modelo de seguridad de la tríada de confidencialidad, integridad y disponibilidad. Todas las funciones de Lambda que se conectan a una VPC deben tener una implementación multi-AZ para garantizar que una sola zona de error no provoque una interrupción total de las operaciones.
Corrección
Si configura la característica para conectarse a una nube privada virtual (VPC) en su cuenta, especifique subredes en varias zonas de disponibilidad para garantizar una alta disponibilidad. Para obtener instrucciones, consulte Configuración del acceso a la VPC en la Guía para desarrolladores de AWS Lambda.
Alta disponibilidad: Lambda ejecuta la característica en varias zonas de disponibilidad para asegurarse de que está disponible para procesar eventos en caso de una interrupción del servicio en una sola zona.
[Lambda.6] Las funciones de Lambda deben estar etiquetadas
Categoría: Identificar > Inventario > Etiquetado
Gravedad: baja
Tipo de recurso: AWS::Lambda::Function
Regla de AWS Config: tagged-lambda-function (regla personalizada de Security Hub)
Tipo de horario: provocado por un cambio
Parámetros:
| Parámetro | Descripción | Tipo | Valores personalizados permitidos | Valor predeterminado de Security Hub |
|---|---|---|---|---|
requiredTagKeys
|
Lista de claves de etiquetas que no corresponden al sistema que debe contener el recurso evaluado. Las claves de etiqueta distinguen entre mayúsculas y minúsculas. | StringList (máximo de 6 elementos) | De 1 a 6 claves de etiquetas que cumplan los requisitos de AWS. |
No default value
|
Este control comprueba si una función de AWS Lambda tiene etiquetas con las claves específicas definidas en el parámetro requiredTagKeys. El control falla si la función no tiene ninguna clave de etiqueta o si no tiene todas las claves especificadas en el parámetro requiredTagKeys. Si no se proporciona el parámetro requiredTagKeys, el control solo comprueba la existencia de una clave de etiqueta y falla si la función no está etiquetada con ninguna clave. Las etiquetas del sistema, que se aplican automáticamente y comienzan con aws:, se ignoran.
Las etiquetas se pueden asignar a los recursos de AWS y constan de una clave y un valor opcional. Puede crear etiquetas para clasificar los recursos según su finalidad, propietario, entorno u otro criterio. Las etiquetas pueden ayudarlo a identificar, organizar, buscar y filtrar recursos. El etiquetado también ayuda a realizar un seguimiento de las acciones y las notificaciones de los propietarios responsables de los recursos. Cuando utiliza el etiquetado, puede implementar el control de acceso basado en atributos (ABAC) como estrategia de autorización, el cual define permisos en función de las etiquetas. Puede asociar etiquetas a entidades de IAM (usuarios o roles) y a recursos de AWS. Puede crear una única política de ABAC o un conjunto independiente de políticas para sus entidades principales de IAM. Puede diseñar estas políticas de ABAC de manera que permitan operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso. Para obtener más información, consulte ¿Qué es ABAC para AWS? en la Guía del usuario de IAM.
nota
No agregue información de identificación personal (PII) ni otra información confidencial en las etiquetas. Las etiquetas son accesibles para muchos Servicios de AWS, incluido AWS Billing. Para conocer más prácticas recomendadas para el etiquetado, consulte Etiquetado de recursos de AWS en la Referencia general de AWS.
Corrección
Para agregar etiquetas a una función de Lambda, consulte Uso de etiquetas en funciones de Lambda en la Guía para desarrolladores de AWS Lambda.
[Lambda.7] Las funciones de Lambda deben tener habilitado el rastreo activo de AWS X-Ray
Requisitos relacionados: NIST.800-53.r5 CA-7
Categoría: Identificar - Registro
Gravedad: baja
Tipo de recurso: AWS::Lambda::Function
AWS Config Regla de: lambda-function-xray-enabled
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si el rastreo activo con AWS X-Ray está habilitado para una función de AWS Lambda. El control falla si el rastreo activo con X-Ray está desactivado para la función de Lambda.
AWS X-Ray puede proporcionar capacidades de rastreo y supervisión para funciones de AWS Lambda, lo que puede ahorrar tiempo y esfuerzo al depurar y operar funciones de Lambda. Puede ayudar a diagnosticar errores e identificar cuellos de botella de rendimiento, ralentizaciones y tiempos de espera mediante un desglose detallado de la latencia de las funciones de Lambda. También puede contribuir al cumplimiento de los requisitos de privacidad y protección de los datos. Si habilita el rastreo activo para una función de Lambda, X-Ray ofrece una visión integral del flujo y procesamiento de datos dentro de la función, lo que puede ayudar a identificar posibles vulnerabilidades de seguridad o prácticas de manejo de datos que no cumplan los requisitos. Esta visibilidad contribuye a mantener la integridad y la confidencialidad de los datos, así como el cumplimiento de las normas pertinentes.
nota
El rastreo de AWS X-Ray no es compatible con las funciones de Lambda con Amazon Managed Streaming para Apache Kafka (Amazon MSK), Apache Kafka autoadministrado, Amazon MQ con ActiveMQ y RabbitMQ, o las asignaciones de orígenes de eventos de Amazon DocumentDB.
Corrección
Para obtener información sobre cómo habilitar el rastreo activo para una función de AWS Lambda, consulte Visualización de invocaciones de funciones de Lambda mediante AWS X-Ray en la Guía para desarrolladores de AWS Lambda.