Reglas Lambda personalizadas (ejemplo general) - AWS Config

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Reglas Lambda personalizadas (ejemplo general)

Complete el siguiente procedimiento para crear una regla de Lambda personalizada. Para crear una regla Lambda personalizada, primero debe crear una AWS Lambda función que contenga la lógica de evaluación de la regla. A continuación, asocie la función a una regla de Lambda personalizada que haya creado en AWS Config.

importante

Como práctica recomendada de seguridad a la hora de conceder el AWS Config permiso para invocar la función de Lambda, le recomendamos encarecidamente que restrinja el acceso en la política basada en recursos de sourceARN Lambda sourceAccountId con o en la solicitud de invocación. Para obtener más información, consulte Práctica de seguridad recomendada para la política de AWS Lambda basada en recursos.

Creación de una función AWS Lambda para una regla de configuración personalizada

Una función Lambda es un código personalizado en el que se carga y se invoca mediante eventos publicados en ella por una fuente de eventos. AWS Lambda Si la función Lambda está asociada a una regla de Config, la AWS Config invoca cuando se desencadena la regla. A continuación, la función de Lambda evalúa la información de configuración enviada por AWS Config y devuelve los resultados de la evaluación. Para obtener más información sobre las funciones de Lambda, consulte Function and Event Sources en la Guía para desarrolladores de AWS Lambda .

Puede utilizar un lenguaje de programación compatible con el AWS Lambda fin de crear una función Lambda para una regla Lambda personalizada. Para facilitar esta tarea, puede personalizar un AWS Lambda esquema o reutilizar una función de ejemplo del AWS Config repositorio de reglas. GitHub

Proyectos de AWS Lambda

La AWS Lambda consola proporciona ejemplos de funciones, o esquemas, que puede personalizar añadiendo su propia lógica de evaluación. Al crear una función, puede elegir uno de los siguientes proyectos:

  • config-rule-change-triggered— Se activa cuando cambian las configuraciones AWS de los recursos.

  • config-rule-periodic— Se activa con la frecuencia que elijas (por ejemplo, cada 24 horas).

AWS Config GitHub Repositorio de reglas

Un repositorio público de ejemplos de funciones para reglas Lambda personalizadas está disponible en GitHub, un servicio de alojamiento e intercambio de código basado en la web. La AWS comunidad ha desarrollado y aportado las funciones de muestra. Si desea utilizar una muestra, puede copiar su código en una nueva AWS Lambda función. Para ver el repositorio, consulte https://github.com/awslabs/aws-config-rules/.

Para crear la función de la regla personalizada
  1. Inicie sesión en la AWS Lambda consola AWS Management Console y ábrala en https://console.aws.amazon.com/lambda/.

  2. En el AWS Management Console menú, compruebe que el selector de regiones esté configurado en una región que admita AWS Config reglas. Para ver una lista de las regiones admitidas, consulte Regiones y puntos de enlace de AWS Config en la Referencia general de Amazon Web Services.

  3. Seleccione Create a Lambda function (Crear una función Lambda).

  4. En la página Usar un esquema, puede elegir una de las funciones del esquema para AWS Config las reglas como punto de partida, o puede continuar sin un esquema seleccionando Omitir.

  5. En la página Configure triggers, elija Next.

  6. En la página Información básica, escriba un nombre y una descripción.

  7. Para Runtime (Tiempo de ejecución), seleccione el lenguaje de programación en el que se esté escrita su función.

  8. Para Code entry type (Tipo de entrada de código), seleccione el tipo de entrada de preferencia. Si utiliza un esquema, conserve el código preconfigurado.

  9. Proporcione el código utilizando el método que requiera el tipo de entrada de código que ha seleccionado. Si está utilizando un proyecto, el código de la función se proporciona en el editor de código y puede personalizarlo para incluir su propia lógica de evaluación. El código puede evaluar los datos de eventos que AWS Config proporciona cuando invoca la función:

    • En el caso de las funciones basadas en el config-rule-change-triggeredesquema o de las funciones activadas por cambios de configuración, los datos del evento son el elemento de configuración o un objeto de elemento de configuración sobredimensionado del AWS recurso que ha cambiado.

    • Para las funciones basadas en el config-rule-periodicesquema o para las funciones que se activan con la frecuencia que elija, los datos del evento son un objeto JSON que incluye información sobre cuándo se activó la evaluación.

    • Para ambos tipos de funciones, AWS Config transfiere los parámetros de la regla en formato JSON. Puede definir los parámetros de regla que se pasan al crear la regla de Lambda personalizada en AWS Config.

    • Para ver, por ejemplo, los eventos que se AWS Config publican cuando invocan su función, consulteEventos de ejemplos para reglas de AWS Config.

  10. Para Rol de ejecución, elija Creación de un nuevo rol desde las plantillas de políticas de AWS .

  11. Para Role name (Nombre del rol), escriba un nombre.

  12. Para Policy templates, elija AWS Config Rules permission.

  13. Verifique los detalles y, a continuación, seleccione Crear una función.

Crear una regla personalizada en AWS Config

Se utiliza AWS Config para crear una regla Lambda personalizada y asociarla a una función Lambda.

Para crear una regla personalizada
  1. Abra la AWS Config consola en https://console.aws.amazon.com/config/.

  2. En el AWS Management Console menú, compruebe que el selector de regiones esté configurado en la misma región en la que creó la AWS Lambda función para la regla Lambda personalizada.

  3. En la página Rules (Reglas), seleccione Add rule (Añadir regla).

  4. En la página Especificar tipo de regla, elija Cree una regla personalizada.

  5. En la página Configure rule (Configurar regla), escriba un nombre y una descripción.

  6. Para AWS Lambda function ARN, especifique el ARN que AWS Lambda ha asignado a su función.

    nota

    El ARN que se especifica en este paso no debe incluir el calificativo $LATEST. Puede especificar un ARN sin un calificador de versión o con cualquier otro calificador adicional. $LATEST AWS Lambda admite el control de versiones de funciones y a cada versión se le asigna un ARN con un calificador. AWS Lambda utiliza el $LATEST calificador de la última versión.

  7. Para Trigger type (Tipo de disparador), seleccione uno o ambos de los siguientes:

    • Cambios de configuración: AWS Config invoca la función Lambda cuando detecta un cambio de configuración.

    • Periódico: AWS Config invoca la función Lambda con la frecuencia que elija (por ejemplo, cada 24 horas).

  8. Si los tipos de desencadenadores de la regla incluyen cambios de configuración, especifique una de las siguientes opciones para el alcance de los cambios con la que se AWS Config invoca la función Lambda:

    • Todos los cambios: cuando AWS Config se crea, modifica o elimina cualquier recurso registrado por.

    • Recursos: cuando se crea, cambia o elimina un recurso que coincide con un tipo de recurso especificado o con un tipo más el identificador.

    • Etiquetas: cuando se crea, cambia o elimina un recurso con la etiqueta especificada.

  9. Si los tipos de desencadenadores de la regla incluyen Periódico, especifique la frecuencia con la que se AWS Config invoca la función Lambda.

  10. En la sección Parámetros, especifique los parámetros de la regla que evalúe AWS Lambda la función y el valor deseado.

  11. Elija Siguiente. En la página Revisar y crear, compruebe los datos de la regla y seleccione Añadir función de reglas. La nueva regla se muestra en la página Reglas.

    Cumplimiento mostrará Evaluando... hasta que AWS Config reciba los resultados de la evaluación de su AWS Lambda función. Si la regla y la función funcionan según lo previsto, aparece tras unos minutos un resumen de los resultados. Puede actualizar los resultados con el botón de actualizar.

    Si la regla o la función no funcionan según lo previsto, puede que vea una de las siguientes opciones para Compliance (Conformidad):

    • No se informó de ningún resultado: AWS Config evaluó sus recursos según la regla. La regla no se ha aplicado a los recursos de AWS en su ámbito, los recursos especificados se han eliminado o los resultados de la evaluación se han eliminado. Para obtener los resultados de la evaluación, actualice la regla, cambie su ámbito o bien seleccione Re-evaluate (Volver a evaluar).

      Este mensaje también puede aparecer si la regla no informa de resultados de evaluación.

    • No hay recursos dentro del alcance: AWS Config no puede evaluar AWS los recursos registrados según esta regla porque ninguno de sus recursos está dentro del alcance de la regla. Puede elegir qué recursos registra AWS Config en la página Settings (Configuración).

    • Evaluations failed (Error en las evaluaciones): para obtener información que le ayude a determinar el problema, elija el nombre de la regla para abrir la página de detalles y ver el mensaje de error.

nota

Al crear una regla Lambda personalizada con la AWS Config consola, se crean automáticamente los permisos correspondientes. Si crea una regla Lambda personalizada con AWS CLI, debe conceder AWS Config permiso para invocar la función Lambda mediante el comando. aws lambda add-permission Para obtener más información, consulte Uso de políticas basadas en recursos para (políticas de funciones AWS Lambda Lambda) en la Guía para desarrolladores.AWS Lambda

Antes de conceder AWS Config permiso para invocar la función Lambda, consulte la siguiente sección. Práctica de seguridad recomendada para la política de AWS Lambda basada en recursos

Práctica de seguridad recomendada para la política de AWS Lambda basada en recursos

Como práctica de seguridad recomendada para evitar otorgar permisos de invocación a todo el nombre de la entidad principal del servicio (SPN, por sus siglas en inglés) para llamar a la función de Lambda, le recomendamos encarecidamente que restrinja el acceso en la política basada en recursos de Lambda con sourceARN y sourceAccountId en la solicitud de invocación.

sourceARNEs el ARN de la AWS Config regla que invoca la función Lambda.

sourceAccountId es el ID de cuenta del usuario que ha creado la regla.

Restringir el acceso en la política basada en recursos de Lambda ayuda a garantizar AWS Lambda el acceso a los recursos únicamente en nombre de los usuarios y escenarios esperados.

Para añadir permisos basados en el SPN, debe usar la siguiente CLI

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com

Para añadir permisos basados SourceAccountId

Antes de crear la regla, puede añadir permisos basados en sourceAccountId a la política basada en recursos con la siguiente CLI:

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID

Para añadir SourceArn tanto un permiso SourceAccountId basado

Después de crear la regla, puede añadir permisos basados en sourceARN a la política basada en recursos con la siguiente CLI. Esto permite que solo un ARN de regla específico invoque la función de Lambda.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID --source-arn ARN of the created config rule

Evaluación de tipos de recursos adicionales

Puede crear reglas Lambda personalizadas para ejecutar evaluaciones de tipos de recursos que aún no hayan registrado. AWS Config Esto resulta útil si desea evaluar el cumplimiento de otros tipos de recursos que actualmente AWS Config no se registran. Para obtener una lista de tipos de recursos adicionales que puede evaluar con reglas de Lambda personalizadas, consulte Referencia de tipos de recursos de AWS.

nota

Al crear una Lambda personalizada para un tipo de recurso que no esté registrado AWS Config, la regla debe tener el tipo de disparador periódico. No se admite el tipo de desencadenador de cambios de configuración. Para obtener más información, consulte Modo de evaluación y tipos de activadores para AWS Config Reglas.

Ejemplo
  1. Desea evaluar almacenes de Amazon S3 Glacier en su cuenta. AWS Config no registra actualmente los recursos de almacenes de Amazon S3 Glacier.

  2. Usted crea una AWS Lambda función que evalúa si sus almacenes de Amazon S3 Glacier cumplen con los requisitos de su cuenta.

  3. Cree una regla Lambda personalizada denominada evaluate-glacier-vaultsy, a continuación, asigne su AWS Lambda función a la regla.

  4. AWS Config invoca la función Lambda y, a continuación, evalúa las bóvedas de Amazon S3 Glacier según su regla.

  5. AWS Config devuelve las evaluaciones y puede ver los resultados de conformidad de su regla.

nota

Puede ver los detalles de la configuración en el AWS Config cronograma y buscar los recursos AWS Config compatibles en la AWS Config consola. Si ha configurado AWS Config para registrar todos los tipos de recursos, los nuevos recursos admitidos se registrarán automáticamente. Para obtener más información, consulte Tipos de recursos admitidos.