

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.

# Tutorial: Detener automáticamente las instancias de Amazon EC2 a las que les faltan las etiquetas obligatorias
<a name="monitor-example"></a>

A medida que crezca el conjunto de AWS recursos Cuentas de AWS que administra, puede usar etiquetas para facilitar la categorización de los recursos. Las etiquetas se suelen utilizar para casos de uso críticos, como la asignación de costos y la seguridad. Para gestionar AWS los recursos de forma eficaz, es necesario etiquetarlos de forma coherente. A menudo, cuando se aprovisiona un recurso, recibe todas las etiquetas apropiadas. Sin embargo, un proceso posterior puede provocar un cambio de etiqueta que provoque una desviación de la política de etiquetas corporativa. Al monitorear los cambios en las etiquetas, puede detectar la desviación de etiquetas y responder de inmediato. Esto le da más confianza en que los procesos que dependen de que sus recursos estén debidamente categorizados producirán los resultados deseados.

En el siguiente ejemplo, se muestra cómo supervisar los cambios de etiquetas en las instancias de Amazon EC2 para comprobar que una instancia específica sigue teniendo las etiquetas necesarias. Si las etiquetas de la instancia cambian y la instancia ya no tiene las etiquetas necesarias, se invoca una función de Lambda para cerrar la instancia automáticamente. ¿Para qué hacerlo? Garantiza que todos los recursos estén etiquetados de acuerdo con la política de etiquetas de su empresa, a fin de poder asignar los costos de forma eficaz o para poder confiar en la seguridad basada en el [control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html).

**importante**  
Le recomendamos encarecidamente que realice este tutorial en una cuenta que no sea de producción, de forma que no pueda cerrar instancias importantes sin darse cuenta.  
El código de ejemplo de este tutorial limita intencionadamente el impacto de este escenario solo a las instancias de una lista de instancias IDs. Debe actualizar la lista con la instancia IDs que desee cerrar para la prueba. Esto ayuda a garantizar que no puedas cerrar accidentalmente todas las instancias de una región de tu región Cuenta de AWS.   
Tras realizar las pruebas, asegúrese de que todas las instancias estén etiquetadas de acuerdo con la estrategia de etiquetado de su empresa. A continuación, puedes eliminar el código que limita la función solo a la instancia IDs de la lista.

En este ejemplo se utiliza JavaScript y la versión 16.x de Node.js. En el ejemplo se utiliza el Cuenta de AWS ID de ejemplo 123456789012 y el identificador Región de AWS US East (Virginia del Norte) (). `us-east-1` Sustitúyalos por el ID y la región de su cuenta de prueba. 

**nota**  
Si la consola usa una región diferente como predeterminada, asegúrese de cambiar la región que está usando en este tutorial cada vez que cambie de consola. Una causa frecuente de que este tutorial no funcione es tener la instancia y la función en dos regiones diferentes.

Si utiliza una región diferente de `us-east-1`, asegúrese de cambiar todas las referencias de los siguientes ejemplos de código a la región que elija.

**Topics**
+ [Paso 1. Crear la función de Lambda](#monitor-example-step-1)
+ [Paso 2. Configuración de los permisos necesarios de IAM](#monitor-example-step-2)
+ [Paso 3. Realice una prueba preliminar de la función de Lambda](#monitor-example-step-3)
+ [Paso 4. Cree la EventBridge regla que inicia la función](#monitor-example-step-4)
+ [Paso 5. Comprobación de la solución completa](#monitor-example-step-6)
+ [Resumen del tutorial](#summary)

## Paso 1. Crear la función de Lambda
<a name="monitor-example-step-1"></a>

**Para crear la función de Lambda**

1. Abra la [consola de administración de AWS Lambda](https://console.aws.amazon.com/lambda/home).

1. Elija **Crear función**, y, a continuación, **Autor desde cero**.

1. En **Function name (Nombre de función)**, escriba **AutoEC2Termination**.

1. En **Tiempo de ejecución**, elija **Node.js 16.x**.

1. Mantenga el resto de campos con sus valores predeterminados y seleccione **Crear función**.

1. En la pestaña **Código** de la página de detalles de `AutoEC2Termination`, abra el archivo **index.js** para ver su código.
   + Si hay abierta una pestaña con **index.js**, puede seleccionar el cuadro de edición de esa pestaña para editar su código.
   + Si una pestaña con el **archivo index.js** no está abierta, haga clic con el botón secundario en el archivo **index.js** situado en la carpeta **Auto EC2** Terminator del panel de navegación. A continuación, elija **Abrir**.

1. En la pestaña **index.js**, pegue el siguiente código en el cuadro del editor y sustituya todo lo que ya esté presente.

    Reemplace el valor `RegionToMonitor` por la región en la que desea ejecutar esta función.

   ```
   // Set the following line to specify which Region's instances you want to monitor
   // Only instances in this Region are succesfully stopped on a match
   
   const RegionToMonitor = "us-east-1"
   
   // Specify the instance ARNs to check.
   // This limits the function for safety to avoid the tutorial shutting down all instances in account
   // The first ARN is a "dummy" that matches the test event you create in Step 3.
   // Replace the second ARN with one that matches a real instance that you want to monitor and that you can 
   // safely stop
   
   const InstanceList = [
       "i-0000000aaaaaaaaaa",
       "i-05db4466d02744f07"
   ];
   
   // The tag key name and value that marks a "valid" instance. Instances in the previous list that
   // do NOT have the following tag key and value are stopped by this function
   
   const ValidKeyName = "valid-key";
   const ValidKeyValue = "valid-value";
   
   // Load and configure the AWS SDK
   const AWS = require('aws-sdk');
   // Set the AWS Region
   AWS.config.update({region: RegionToMonitor});
   // Create EC2 service object.
   const ec2 = new AWS.EC2({apiVersion: '2016-11-15'});
   
   exports.handler = (event, context, callback) => {
   
     // Retrieve the details of the reported event.
     var detail = event.detail;
     var tags = detail["tags"];
     var service = detail["service"];
     var resourceType = detail["resource-type"];
     var resource = event.resources[0];
     var resourceSplit = resource.split("/");
     var instanceId = resourceSplit[resourceSplit.length - 1];
   
     // If this event is not for an EC2 resource, then do nothing.
     if (!(service === "ec2")) {
       console.log("Event not for correct service -- no action (", service, ")" );
       return;
     }
   
     // If this event is not about an instance, then do nothing.
     if (!(resourceType === "instance")) {
       console.log("Event not for correct resource type -- no action (", resourceType, ")" );
       return;
     }
   
     // CAUTION - Removing the following 'if' statement causes the function to run against 
     //           every EC2 instance in the specified Region in the calling Cuenta de AWS. 
     //           If you do this and an instance is not tagged with the approved tag key 
     //           and value, this function stops that instance.
   
     // If this event is not for the ARN of an instance in our include list, then do nothing.
     if (InstanceList.indexOf(instanceId)<0) {
       console.log("Event not for one of the monitored instances -- no action (", resource, ")");
       return;
     }
   
     console.log("Tags changed on monitored EC2 instance (",instanceId,")");
   
     // Check attached tags for expected tag key and value pair
     if ( tags.hasOwnProperty(ValidKeyName) && tags[ValidKeyName] == "valid-value"){
       // Required tags ARE present
       console.log("The instance has the required tag key and value -- no action");
       callback(null, "no action");
       return;
     }
     
     // Required tags NOT present
     console.log("This instance is missing the required tag key or value -- attempting to stop the instance");
   
     var params = {
       InstanceIds: [instanceId], 
       DryRun: true
     };
   
     // call EC2 to stop the selected instances
     ec2.stopInstances(params, function(err, data) {
       if (err && err.code === 'DryRunOperation') {
         // dryrun succeeded, so proceed with "real" stop operation
         params.DryRun = false;
         ec2.stopInstances(params, function(err, data) {
           if (err) {
             console.log("Failed to stop instance");
             callback(err, "fail");
           } else if (data) {
             console.log("Successfully stopped instance", data.StoppingInstances);
             callback(null, "Success");
           }
         });
       } else {
         console.log("Dryrun attempt failed");
         callback(err);
       }
     });
   };
   ```

1. Seleccione **Implementar** para guardar los cambios y activar la nueva versión de la función.

Esta función Lambda comprueba las etiquetas de una instancia de Amazon EC2, según lo informado por el evento de cambio de etiqueta en. EventBridge En este ejemplo, si a la instancia del evento le falta la clave de etiqueta requerida `valid-key` o si esa etiqueta no tiene el valor `valid-value`, la función intenta detener la instancia. Puede cambiar esta comprobación lógica o los requisitos de etiqueta para sus casos de uso específicos.

Mantenga abierta la ventana de la consola Lambda en su navegador.

## Paso 2. Configuración de los permisos necesarios de IAM
<a name="monitor-example-step-2"></a>

Antes de que la función pueda ejecutarse correctamente, debe concederle el permiso para detener una instancia de EC2. El rol AWS proporcionado [https://console.aws.amazon.com/iamv2/home#/roles/details/lambda_basic_execution](https://console.aws.amazon.com/iamv2/home#/roles/details/lambda_basic_execution)no tiene ese permiso. En este tutorial, modificará la política de permisos de IAM predeterminada que se adjunta al rol de ejecución de la función denominado `AutoEC2Termination-role-uniqueid`. El permiso adicional mínimo requerido para este tutorial es `ec2:StopInstances`. 

Para obtener más información acerca de cómo crear políticas de IAM específicas para Amazon EC2, consulte [Amazon EC2: permite iniciar o detener una instancia EC2 y modificar un grupo de seguridad mediante programación y en la consola](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_ec2_instance-securitygroup.html) de la *Guía del usuario de IAM*.

**Para crear una política de permisos de IAM y adjuntarla al rol de ejecución de la función de Lambda**

1. En otra pestaña o ventana del navegador, abra la página de [Funciones](https://console.aws.amazon.com/iamv2/home#/roles) de la consola de IAM.

1. Comience a escribir el nombre del rol **AutoEC2Termination** y, cuando aparezca en la lista, selecciónelo. 

1. En la página de **Resumen** del rol, seleccione la pestaña **Permisos** y elija el nombre de la política que ya está adjunta.

1. En la página de **Resumen** de la política, elija **Editar política**.

1. En la pestaña **Editor visual**, elija **Agregar permisos adicionales**.

1. En **Servicio**, elija **EC2**.

1. En **Acciones**, elija **StopInstances**. Puede escribir **Stop** en la barra de búsqueda y, a continuación, elegir `StopInstances` cuándo aparezca.

1. En **Recursos**, seleccione **Todos los recursos**, seleccione **Revisar política** y, a continuación, seleccione **Guardar cambios**. 

   De esta forma se crea automáticamente una nueva versión de la directiva y se establece esa versión como predeterminada.

   La política final debe ser similar al ejemplo siguiente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:StopInstances",
               "Resource": "*"
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": "logs:CreateLogGroup",
               "Resource": "arn:aws:logs:us-east-1:123456789012:*"
           },
           {
               "Sid": "VisualEditor2",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/AutoEC2Termination:*"
           }
       ]
   }
   ```

------

## Paso 3. Realice una prueba preliminar de la función de Lambda
<a name="monitor-example-step-3"></a>

En este paso, envía un evento de prueba a su función. La funcionalidad de la prueba de Lambda funciona mediante el envío de un evento de prueba proporcionado manualmente. La función procesa el evento de prueba como si el evento procediera de EventBridge. Puede definir varios eventos de prueba con valores diferentes para ejercitar todas las distintas partes del código. En este paso, envía un evento de prueba que indica que las etiquetas de una instancia de Amazon EC2 han cambiado y que las nuevas etiquetas no incluyen la clave ni el valor de etiqueta necesarios.

**Para probar su función de Lambda**

1. Vuelva a la ventana o pestaña de la consola Lambda y abra la pestaña **Prueba** para la función de **EC2terminación automática**.

1. Elija **Crear evento nuevo**.

1. En **Nombre del evento**, escriba **SampleBadTagChangeEvent**.

1. En el **JSON del evento**, sustituya el texto por el evento de ejemplo que se muestra en el siguiente texto de ejemplo. No es necesario modificar las cuentas, la región o el ID de instancia para que este evento de prueba funcione correctamente.

   ```
   {
     "version": "0",
     "id": "bddcf1d6-0251-35a1-aab0-adc1fb47c11c",
     "detail-type": "Tag Change on Resource",
     "source": "aws.tag",
     "account": "123456789012",
     "time": "2018-09-18T20:41:38Z",
     "region": "us-east-1",
     "resources": [
       "arn:aws:ec2:us-east-1:123456789012:instance/i-0000000aaaaaaaaaa"
     ],
     "detail": {
       "changed-tag-keys": [
         "valid-key"
       ],
       "tags": {
         "valid-key": "NOT-valid-value"
       },
       "service": "ec2",
       "resource-type": "instance",
       "version": 3
     }
   }
   ```

1. Elija **Save** (Guardar) y, a continuación, elija **Test** (Probar).

   La prueba parece fallar, pero no pasa nada. 

   Debería aparecer el siguiente error en la pestaña **Resultados de la ejecución**, en **Respuesta**.

   ```
   {
     "errorType": "InvalidInstanceID.NotFound",
     "errorMessage": "The instance ID 'i-0000000aaaaaaaaaa' does not exist",
     ...
   }
   ```

   El error se produce porque la instancia especificada en el evento de prueba no existe. 

   La información de la pestaña **Resultados de ejecución**, en la sección **Registros de funciones**, demuestra que la función de Lambda intentó detener correctamente una instancia de EC2. Sin embargo, falló porque el código inicialmente intentó una [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html#API_StartInstances_RequestParameters](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html#API_StartInstances_RequestParameters) operación para detener la instancia, lo que indicaba que el ID de la instancia no era válido. 

   ```
   START RequestId: 390c1f8d-0d9b-4b44-b087-8de64479ab44 Version: $LATEST
   2022-11-30T20:17:30.427Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    Tags changed on monitored EC2 instance ( i-0000000aaaaaaaaaa )
   2022-11-30T20:17:30.427Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    This instance is missing the required tag key or value -- attempting to stop the instance
   2022-11-30T20:17:31.206Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    Dryrun attempt failed
   2022-11-30T20:17:31.207Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    ERROR   Invoke Error     {"errorType":"InvalidInstanceID.NotFound","errorMessage":"The instance ID 'i-0000000aaaaaaaaaa' does not exist","code":"InvalidInstanceID.NotFound","message":"The instance ID 'i-0000000aaaaaaaaaa' does not exist","time":"2022-11-30T20:17:31.205Z","requestId":"a5192c3b-142d-4cec-bdbc-685a9b7c7abf","statusCode":400,"retryable":false,"retryDelay":36.87870631147607,"stack":["InvalidInstanceID.NotFound: The instance ID 'i-0000000aaaaaaaaaa' does not exist","    at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/ec2.js:50:35)","    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)","    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)","    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:686:14)","    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)","    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)","    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10","    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)","    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:688:12)","    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"]}
   END RequestId: 390c1f8d-0d9b-4b44-b087-8de64479ab44
   ```

1. Para demostrar que el código no intenta detener la instancia cuando se usa la etiqueta correcta, puede crear y enviar otro evento de prueba. 

   Seleccione la pestaña **Prueba** situada encima del **Código fuente**. La consola muestra el evento de **SampleBadTagChangeEvent**prueba existente.

1. Elija **Crear evento nuevo**.

1. En **Event Name (Nombre del evento)**, escriba **SampleGoodTagChangeEvent**.

1. En la línea 17, elimine **NOT-** para cambiar el valor a **valid-value**.

1. En la parte superior de la ventana de **Evento de prueba**, seleccione **Guardar** y, a continuación, seleccione **Prueba**.

   El resultado muestra lo siguiente, lo cual demuestra que la función reconoce la etiqueta como válida y no intenta cerrar la instancia.

   ```
   START RequestId: 53631a49-2b54-42fe-bf61-85b9e91e86c4 Version: $LATEST
   2022-12-01T23:24:12.244Z    53631a49-2b54-42fe-bf61-85b9e91e86c4    INFO    Tags changed on monitored EC2 instance ( i-0000000aaaaaaaaaa )
   2022-12-01T23:24:12.244Z    53631a49-2b54-42fe-bf61-85b9e91e86c4    INFO    The instance has the required tag key and value -- no action
   END RequestId: 53631a49-2b54-42fe-bf61-85b9e91e86c4
   ```

   Mantenga la consola Lambda abierta en su navegador.

## Paso 4. Cree la EventBridge regla que inicia la función
<a name="monitor-example-step-4"></a>

Ahora puede crear una EventBridge regla que coincida con el evento y apunte a la función Lambda.

**Para crear la regla EventBridge**

1. En otra pestaña o ventana del navegador, abra la [EventBridge consola](https://console.aws.amazon.com/events/home#/rules/create) en la página **Crear regla**.

1. En **Nombre**, escriba **ec2-instance-rule** y, a continuación, seleccione **Siguiente**.

1. Desplácese hacia abajo hasta **Método de creación** y seleccione **Patrón personalizado (editor JSON).**

1. En el cuadro de edición, pegue el siguiente texto del patrón y, a continuación, seleccione **Siguiente**.

   ```
   {
     "source": [
       "aws.tag"
     ],
     "detail-type": [
       "Tag Change on Resource"
     ],
     "detail": {
       "service": [
         "ec2"
       ],
       "resource-type": [
         "instance"
       ]
     }
   }
   ```

   Esta regla coincide con los eventos `Tag Change on Resource` de las instancias de Amazon EC2 e invoca lo que especifique como **Destino** en el siguiente paso. 

1. A continuación, añada la función de Lambda como destino. En el cuadro **Destino 1**, en **Seleccione un destino**, elija **Función de Lambda**.

1. En **Función**, elija la función de **EC2terminación automática** que creó anteriormente y, a continuación, elija **Siguiente**.

1. En la página **Configurar etiquetas**, elija **Siguiente**. A continuación, en la página **Revisar y crear**, elija **Crear regla**. Esto también otorga automáticamente permiso para EventBridge invocar la función Lambda especificada.

## Paso 5. Comprobación de la solución completa
<a name="monitor-example-step-6"></a>

Puede probar el resultado final creando una instancia EC2 y observando lo que ocurre cuando cambia sus etiquetas.

**Para probar la solución de supervisión con una instancia real**

1. Abra la [Consola de Amazon EC2](https://console.aws.amazon.com/ec2/v2/home#Instances:) en la página de **Instancias**.

1. Crear una instancia de Amazon EC2. Antes de lanzarla, adjunte una etiqueta con la clave `valid-key` y el valor `valid-value`. Para obtener información sobre cómo crear y lanzar una instancia, consulte [Paso 1: lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) en la *Guía del usuario de Amazon EC2*. En el procedimiento *Para lanzar una instancia*, en el paso 3, donde introduce la etiqueta de **Nombre**, también seleccione **Añadir etiquetas adicionales**, seleccione **Añadir etiqueta** y, a continuación, ingrese la **Clave** **valid-key** y el **valor** de **valid-value**. Puede **continuar sin un par de claves** si esta instancia es únicamente para los fines de este tutorial y planea eliminar esta instancia después de completarla. Vuelva a este tutorial cuando llegue al final del **Paso 1**; no es necesario que haga el **Paso 2: conectarse a su instancia**.

1. Copia la **InstanceId**desde la consola.

1. Cambie de la consola de Amazon EC2 a la consola de Lambda. Elija la función de **EC2terminación automática**, elija la pestaña **Código** y, a continuación, elija la pestaña **index.js** para editar el código.

1. Cambie la segunda entrada en el `InstanceList` pegando el valor que ha copiado de la consola Amazon EC2. Asegúrese de que el valor de `RegionToMonitor` coincida con la región que contiene la instancia que pegó.

1. Elija **Implementar** para activar los cambios. La función ya está lista para activarse mediante cambios de etiqueta en esa instancia en la región especificada.

1. Cambie de la consola de Lambda a la consola de Amazon EC2.

1. Cambie las **Etiquetas** adjuntas a la instancia eliminando la etiqueta de **clave válida** o cambiando el valor de esa clave. 
**nota**  
Para obtener información sobre cómo cambiar las etiquetas de una instancia de Amazon EC2 en ejecución, consulte [Adición y eliminación de etiquetas en un recurso individual](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#adding-or-deleting-tags) en la *Guía del usuario de Amazon EC2*.

1. Espere unos segundos y, a continuación, actualice la consola. La instancia debería cambiar su **Estado de instancia** a **Deteniendo** y, a continuación, a **Detenida**.

1. Cambie de la consola Amazon EC2 a la consola Lambda con su función y seleccione la pestaña **Monitor**. 

1. Seleccione la pestaña **Registros** y, en la tabla de **invocaciones recientes**, elija la entrada más reciente de la **LogStream**columna.

   La CloudWatch consola de Amazon se abre en la página de **registro de eventos** para la última invocación de la función Lambda. La última entrada debería tener un aspecto similar al ejemplo siguiente.

   ```
   2022-11-30T12:03:57.544-08:00    START RequestId: b5befd18-2c41-43c8-a320-3a4b2317cdac Version: $LATEST
   2022-11-30T12:03:57.548-08:00    2022-11-30T20:03:57.548Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO Tags changed on monitored EC2 instance ( arn:aws:ec2:us-west-2:123456789012:instance/i-1234567890abcdef0 )
   2022-11-30T12:03:57.548-08:00    2022-11-30T20:03:57.548Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO This instance is missing the required tag key or value -- attempting to stop the instance
   2022-11-30T12:03:58.488-08:00    2022-11-30T20:03:58.488Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO Successfully stopped instance [ { CurrentState: { Code: 64, Name: 'stopping' }, InstanceId: 'i-1234567890abcdef0', PreviousState: { Code: 16, Name: 'running' } } ]
   2022-11-30T12:03:58.546-08:00    END RequestId: b5befd18-2c41-43c8-a320-3a4b2317cdac
   ```

## Resumen del tutorial
<a name="summary"></a>

En este tutorial se muestra cómo crear una EventBridge regla que coincida con un cambio de etiqueta en un evento de recurso para instancias de Amazon EC2. La regla apuntaba a una función de Lambda que cierra automáticamente la instancia si no tiene la etiqueta requerida.

La EventBridge compatibilidad de Amazon con los cambios de etiquetas en AWS los recursos abre la posibilidad de desarrollar una automatización basada en eventos en muchos de ellos. Servicios de AWS La combinación de esta capacidad le AWS Lambda proporciona herramientas para crear soluciones sin servidor que accedan a AWS los recursos de forma segura, se escalan según la demanda y son rentables.

Otros posibles casos de uso del tag-change-on-resource EventBridge evento incluyen:
+ **Lanzar una advertencia si alguien accede al recurso desde una dirección IP inusual**: use una etiqueta para almacenar la dirección IP de origen de cada visitante que acceda a su recurso. Los cambios en la etiqueta generan un CloudWatch evento. Puede usar ese evento para comparar la dirección IP de origen con una lista de direcciones IP válidas y activar un correo electrónico de advertencia si la dirección IP de origen no es válida.
+ **Supervise si hay cambios en el control de acceso basado en etiquetas de un recurso**: si ha configurado el acceso a un recurso mediante el [control de acceso basado en atributos (etiquetas) (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), puede utilizar los EventBridge eventos generados por cualquier cambio en la etiqueta para solicitar una auditoría por parte de su equipo de seguridad.