Reglas de Lambda personalizadas (ejemplo de Amazon EC2)
Este procedimiento le guiará a través del proceso de creación de una regla de Lambda personalizada que evalúa si cada una de las instancias de EC2 es del tipo t2.micro. AWS Config realizará evaluaciones basadas en eventos para esta regla, lo que significa que comprobará las configuraciones de la instancia cada vez que AWS Config detecte un cambio de configuración en una instancia. AWS Config marcará las instancias de t2.micro como conformes y todas las demás instancias como no conformes. El estado de conformidad aparecerá en la consola de AWS Config.
Para obtener el mejor resultado con este procedimiento, debe tener una o varias instancias de EC2 en su Cuenta de AWS. Sus instancias deben incluir una combinación de al menos una instancia de t2.micro y otros tipos.
Para crear esta regla, en primer lugar, cree una función AWS Lambda personalizando un proyecto en la consola de AWS Lambda. A continuación, cree una regla de Lambda personalizada en AWS Config y asocie la regla a la función.
Temas
Creación de una función AWS Lambda para una regla de configuración personalizada
Inicie sesión en la AWS Management Console y abra la consola AWS Lambda en https://console.aws.amazon.com/lambda/
. -
En el menú de AWS Management Console, compruebe que el selector de región está establecido en una región que admite reglas de AWS Config. 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.
-
En la consola de AWS Lambda, elija Crear una función de Lambda.
-
Elija Utilizar un esquema. En la barra de búsqueda, escriba config-rule-change-triggered. Seleccione el esquema en los resultados filtrados y elija Configurar.
-
En la página Configure triggers, elija Next.
-
En la página Basic information, realice los siguientes pasos:
-
En Function name (Nombre de función), escriba
InstanceTypeCheck
. -
Para Rol de ejecución, elija Creación de un nuevo rol desde las plantillas de políticas de AWS.
-
Para Runtime (Tiempo de ejecución), mantenga Node.js.
-
En Nombre del rol, escriba un nombre.
-
En Plantillas de política, elija Permisos de reglas de AWS Config.
-
En Función de código de la función de Lambda, conserve el código preconfigurado. El código de Node.js de su función se proporciona en el editor de código. Para este procedimiento, no es necesario cambiar el código.
-
Verifique los detalles y, a continuación, seleccione Crear una función. La consola AWS Lambda mostrará su función.
-
-
Para verificar que su función está configurada correctamente, pruébela con los siguientes pasos:
-
Seleccione Probar en el menú que aparece debajo de Información general de la función y, a continuación, elija Configurar un evento de prueba.
-
En Plantilla, elija Notificación de cambio de elemento de configuración de AWS Config.
-
En Name (Nombre), escriba un nombre.
-
Elija Probar. AWS Lambda prueba su función con el ejemplo de evento. Si la función funciona según lo previsto, aparecerá un mensaje de error similar al siguiente en Execution result (Resultado de la ejecución):
{ "errorType": "InvalidResultTokenException," "errorMessage": "Result Token provided is invalid", . . .
Se espera
InvalidResultTokenException
porque su función se ejecuta correctamente solo cuando recibe un token de resultados de AWS Config. El token de resultados identifica la regla de AWS Config y el evento que ha causado la evaluación y el token de resultados asocia una evaluación con una regla. Esta excepción indica que la función tiene el permiso que necesita para enviar resultados a AWS Config. De lo contrario, aparece el siguiente mensaje de error:not authorized to perform: config:PutEvaluations
. Si se produce este error, actualice el rol que ha asignado a su función para permitir la acciónconfig:PutEvaluations
y probar la función de nuevo.
-
Creación de una regla de Lambda personalizada para evaluar las instancias de Amazon EC2
-
Abra la consola de AWS Config en https://console.aws.amazon.com/config/
. -
En el menú de AWS Management Console, compruebe que el selector de región esté establecido en la misma región en la que ha creado la función de AWS Lambda para su regla de Lambda personalizada.
-
En la página Rules (Reglas), seleccione Add rule (Añadir regla).
-
En la página Especificar tipo de regla, elija Cree una regla personalizada.
-
En la página Configure rule (Configurar regla), siga los pasos que se describen a continuación:
-
En Name (Nombre), escriba
InstanceTypesAreT2micro
. -
En Description (Descripción), escriba
Evaluates whether EC2 instances are the t2.micro type
. -
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 calificador aparte de$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 calificador$LATEST
para la última versión. -
Para Tipo de desencadenador, elija Cuando cambia la configuración.
-
Para Scope of changes (Ámbito de cambios), elija Resources (Recursos).
-
En Recursos, elija Instancia de AWS EC2 en la lista desplegable de Tipo de recurso.
-
En la sección Parámetros, debe especificar el parámetro de regla que evalúa la función de AWS Lambda y el valor deseado. La función de este procedimiento evalúa el parámetro
desiredInstanceType
.En Key (Clave), escriba
desiredInstanceType
. En Value, escribat2.micro
.
-
-
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 Rules.
Compliance (Conformidad) mostrará Evaluating... (Evaluando...) hasta que AWS Config reciba los resultados de la evaluación de la función de AWS Lambda. Si la regla y la función funcionan según lo previsto, aparece un resumen de los resultados pasados unos minutos. Por ejemplo, el resultado 2 noncompliant resource(s) (2 recursos no conformes) indica que dos de las instancias no son instancias t2.micro y el resultado Compliant (Conforme) que indica que todas las instancias son t2.micro. 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 results reported (No se registraron resultados): AWS Config ha evaluado los recursos con respecto a 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).
Compruebe que el ámbito incluya Instancia de AWS EC2 para Recursos y vuelva a intentarlo.
-
No resources in scope (No hay recursos dentro del ámbito): AWS Config no puede evaluar los recursos de AWS registrados con respecto a esta regla, porque ninguno de los recursos se encuentra dentro del ámbito de la regla. Para obtener los resultados de la evaluación, edite la regla y cambie el ámbito o bien añada recursos para que AWS Config los registre utilizando la página Settings (Configuración).
Compruebe que AWS Config está registrando las instancias EC2.
-
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.
-
Si la regla funciona correctamente y AWS Config proporciona resultados de evaluación, puede saber qué condiciones afectan al estado de conformidad de la regla. Puede saber qué recursos, si hay alguno, no cumplen las reglas y por qué. Para obtener más información, consulte Visualización de la información de conformidad y los resultados de la evaluación para los recursos de AWS.