Tutorial: Monitoreo de cambios importantes en la organización con CloudWatch Events - AWS Organizations

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: Monitoreo de cambios importantes en la organización con CloudWatch Events

En este tutorial se muestra cómo configurar los cambios en su organización. Para comenzar, se configura una regla que se activa cuando los usuarios invocan determinadas operaciones de AWS Organizations. A continuación, configura CloudWatch Events para ejecutar unAWS LambdaCuando se active la regla y se configura Amazon SNS para que envíe un correo electrónico con información detallada sobre el evento.

En la siguiente ilustración se muestran los principales pasos del tutorial.

Paso 1: Configuración de un selector de seguimiento y de eventos

Cree un registro de seguimiento en AWS CloudTrail. Configúrelo para capturar todas las llamadas a API.

Paso 2: Configuración de una función Lambda

Cree una función AWS Lambda que registre los detalles del evento en un bucket de S3.

Paso 3: Cree un tema de Amazon SNS que envía correos electrónicos a los suscriptores

Cree un tema de Amazon SNS que envíe correos electrónicos a sus suscriptores y, a continuación, suscríbase a ese tema.

Paso 4: Crear una regla de eventos de CloudWatch

Cree una regla que indique a los eventos de CloudWatch que pase determinados datos de las llamadas a API especificadas a la función Lambda y a los suscriptores al tema de SNS.

Paso 5: Prueba de la regla de CloudWatch Events

Ejecute una de las operaciones monitorizadas para probar la nueva regla. En este tutorial, la operación monitorizada crea una unidad organizativa (OU). Puede ver la entrada de registro creada por la función Lambda y el correo electrónico que Amazon SNS envía a los suscriptores.

Tip

También puede utilizar este tutorial como guía al configurar operaciones similares como, por ejemplo, el envío de notificaciones por correo electrónico cuando se haya completado la creación de la cuenta. Dado que la creación de la cuenta es una operación asíncrona, no recibirá de forma predeterminada una notificación cuando se complete. Para obtener más información sobre el uso deAWS CloudTraily CloudWatch Events conAWS Organizations, consulteRegistro y monitoreo en AWS Organizations.

Prerequisites

Este tutorial se basa en los siguientes supuestos:

  • Puede iniciar sesión en laAWS Management Consolecomo usuario de IAM de la cuenta de administración de su organización. El usuario de IAM debe tener permisos para crear y configurar un registro en CloudTrail, una función en Lambda, un tema en Amazon SNS y una regla en CloudWatch. Para obtener más información sobre la concesión de permisos, consulteAdministración de accesosen laGuía del usuario de IAMo la guía del servicio para el que desea configurar el acceso.

  • Dispone de acceso a un bucket de Amazon Simple Storage Service (Amazon S3) (o tiene permisos para crear un bucket) con el fin de recibir el registro de CloudTrail que ha configurado en el paso 1.

importante

En la actualidad,AWS OrganizationsSe aloja únicamente en la región de EE.UU. Este (Norte de Virginia) (aunque está disponible en todo el mundo). Para realizar los pasos de este tutorial, debe configurar la AWS Management Console para que utilice esa región.

Paso 1: Configuración de un selector de seguimiento y de eventos

En este paso, iniciará sesión en la cuenta de administración y configurará un registro deRegistro de seguimiento de) enAWS CloudTrail. Además, configurará un selector de eventos en el registro de seguimiento para capturar todas las llamadas a API de lectura/escritura, de tal forma que existan llamadas que permitan que CloudWatch se active.

Para crear un registro de seguimiento

  1. Inicie sesión enAWSA continuación, abra la consola de CloudTrail enhttps://console.aws.amazon.com/cloudtrail/.

  2. En la barra de navegación de la esquina superior derecha de la consola, elija la opciónEE.UU. Este (Norte de Virginia)Región . Si eliges una región diferente,AWS OrganizationsNo aparecerá entre las opciones de la configuración de CloudWatch Events y CloudTrail no capturará la información sobreAWS Organizations.

  3. En el panel de navegación, seleccione Trails.

  4. Elija Create Trail (Crear registro de seguimiento).

  5. En Trail name (Nombre del registro de seguimiento), escriba My-Test-Trail.

  6. Realice una de las siguientes opciones para especificar dónde debe entregarse los registros de CloudTrail:

    • Si ya tiene un bucket, elija No junto a Create a new S3 bucket (Crear un nuevo bucket de S3) y, a continuación, elija el nombre del bucket en la lista S3 bucket (Bucket de S3).

    • Si necesita crear un bucket, elija Yes (Sí) junto a Create a new S3 bucket (Crear un nuevo bucket de S3) y, a continuación, escriba el nombre del nuevo bucket en S3 bucket (Bucket de S3).

      nota

      Los nombres de los buckets de S3 deben ser únicos de forma global.

  7. Seleccione Create.

  8. Elija el registro de seguimiento My-Test-Trail que acaba de crear.

  9. Seleccione el icono de lápiz junto a Management events.

  10. Para Read/Write events, elija All, Save y, a continuación, elija Configure.

CloudWatch Events permite elegir entre diferentes maneras de enviar alertas cuando una regla de alarma coincide con una llamada a la API entrante. En este tutorial se muestran dos métodos: invocar una función Lambda que puede registrar la llamada a API y enviar información a un tema de Amazon SNS que, a su vez, envía un correo electrónico o mensaje de texto a los suscriptores del tema. En los próximos dos pasos, debe crear los componentes que necesita, la función Lambda y el tema de Amazon SNS.

Paso 2: Configuración de una función Lambda

En este paso, se crea una función Lambda que registra la actividad de API que le envía la regla de CloudWatch que configuraremos más adelante.

Para crear una función Lambda que registra eventos de CloudWatch Events

  1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

  2. Si eres nuevo en Lambda, eligeIntroducción aEn la página de bienvenida; de lo contrario, elijaCrear una función.

  3. En la página Create function, elija Blueprints.

  4. En el cuadro de búsqueda Blueprints (Proyectos), escriba hello para el filtro y elija el proyecto hello-world.

  5. Elija Configure (Configurar).

  6. En la página Basic information (Información básica), haga lo siguiente:

    1. Para el nombre de la función Lambda, escribaLogOrganizationEventsen laNombre.

    2. ParaRol, elijaCreación de una función de personalizaday, a continuación, en la parte inferior delAWS LambdaRequiere acceso a los recursos de, elijaPermitir. Esta función concede a la función Lambda permisos para obtener acceso a los datos que requiere y para escribir en su registro de salida.

    3. Elija Create function (Crear función).

  7. En la página siguiente, edite el código de la función Lambda, como se muestra en el ejemplo siguiente.

    console.log('Loading function'); exports.handler = async (event, context) => { console.log('LogOrganizationsEvents'); console.log('Received event:', JSON.stringify(event, null, 2)); return event.key1; // Echo back the first key value // throw new Error('Something went wrong'); };

    Este código de muestra registra el evento con una cadena de marcador LogOrganizationEvents seguida de la cadena JSON que compone el evento.

  8. Seleccione Save.

Paso 3: Cree un tema de Amazon SNS que envía correos electrónicos a los suscriptores

En este paso, se crea un tema de Amazon SNS que envía información a sus suscriptores por correo electrónico. A continuación, este tema se convierte en «objetivo» de la regla de CloudWatch Events que se crea después.

Para crear un tema de Amazon SNS con el fin de enviar un correo electrónico a los suscriptores

  1. Abra la consola de Amazon SNS enhttps://console.aws.amazon.com/sns/v3/.

  2. En el panel de navegación, elija Topics (Temas).

  3. Elija Create new topic (Crear nuevo tema).

    1. En Topic name (Nombre del tema), escriba OrganizationsCloudWatchTopic.

    2. En Display name (Nombre visible), escriba OrgsCWEvnt.

    3. Elija Create new topic (Crear nuevo nombre).

  4. Ahora puede crear una suscripción para el tema. Elija el ARN del tema que acaba de crear.

  5. Seleccione Create subscription (Crear suscripción).

    1. En la página Create subscription, para Protocol, elija Email.

    2. En Punto de enlace, introduzca su dirección de correo electrónico.

    3. Seleccione Create subscription (Crear suscripción). AWS envía un mensaje de correo electrónico a la dirección especificada en el paso anterior. Espere a recibir ese correo electrónico y, a continuación, elija el enlace Confirm subscription que contiene para confirmar que lo ha recibido correctamente.

    4. Vuelva a la consola y actualice la página. El mensaje Pending confirmation desaparece y se sustituye por el ID de suscripción que ha quedado validado.

Paso 4: Crear una regla de eventos de CloudWatch

Ahora que ya existe la función Lambda en su cuenta, debe crear una regla de CloudWatch Events que la invoque cuando se cumplan los criterios de dicha regla.

Para crear una regla de CloudWatch Events

  1. Abra la consola de CloudWatch enhttps://console.aws.amazon.com/cloudwatch/.

  2. Al igual que antes, debe configurar la consola en elEE.UU. Este (Norte de Virginia)La región o la información acerca de las Organizations no está disponible. En la barra de navegación de la esquina superior derecha de la consola, elija la opciónEE.UU. Este (Norte de Virginia)Región .

  3. En el panel de navegación, elija Rules (Reglas) y, a continuación, seleccione Create rule (Crear regla).

  4. En Event source, haga lo siguiente:

    1. Seleccione Event pattern.

    2. Seleccione Build event pattern to match events by service.

    3. En Service Name, elija Organizations.

    4. ParaTipo de evento, elijaAWSAPI llamada a través de CloudTrail.

    5. SeleccionarOperaciones específicasy, a continuación, indique las API que quiera monitorizar: CreateAccountyCreateOrganizationalUnit. Puede seleccionar también otras que también desee. Para obtener una lista completa de las API de AWS Organizations disponibles, consulte la AWS OrganizationsReferencia de la API de .

  5. En Targets(Destinos), en Function (Función), elija la función que creó en el procedimiento anterior.

  6. En Targets, seleccione Add target.

  7. En la nueva fila de destino, elija el encabezado desplegable y, a continuación, seleccione SNS topic (Tema de SNS).

  8. Para Topic (Tema), elija el tema denominado OrganizationCloudWatchTopic que haya creado en el procedimiento anterior.

  9. Seleccione Configure details.

  10. En la página Configure rule details (Configurar los detalles de la regla), en Name (Nombre), escriba OrgsMonitorRule, deje State (Estado) seleccionado y, a continuación, elija Create rule (Crear regla).

Paso 5: Prueba de la regla de CloudWatch Events

En este paso, se crea una unidad organizativa (OU) y se observa que la regla de CloudWatch Events genera una entrada de registro y envía un correo electrónico con información detallada sobre el evento.

AWS Management Console

Para crear una unidad organizativa (OU)

  1. Abra el iconoAWS Organizationsa la consola de Cuentas de AWS page.

  2. Active la casilla de verificación RootOU, elijaActionsy, a continuación, enDependencia organizativaelijaCrear nuevos.

  3. Para el nombre de la unidad organizativa, escriba TestCWEOU y, a continuación, elija Create organizational unit (Crear unidad organizativa).

Para ver la entrada de registro de CloudWatch Events

  1. Abra la consola de CloudWatch enhttps://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Logs (registros).

  3. UNDERGrupos de registrosElija el grupo que está asociado a su función Lambda:/aws/Lambda/logOrganizationEvents.

  4. Cada grupo contiene uno o más flujos; debería haber un grupo para hoy. Elíjalo.

  5. Consulte el registro. Deben aparecer filas similares a las siguientes.

  6. Seleccione la fila central de la entrada para ver todo el texto JSON del evento recibido. Aparecen todos los detalles de la solicitud al API en los componentes requestParameters y responseElements de la salida.

    2017-03-09T22:45:05.101Z 0999eb20-051a-11e7-a426-cddb46425f16 Received event: { "version": "0", "id": "123456-EXAMPLE-GUID-123456", "detail-type": "AWS API Call via CloudTrail", "source": "aws.organizations", "account": "123456789012", "time": "2017-03-09T22:44:26Z", "region": "us-east-1", "resources": [], "detail": { "eventVersion": "1.04", "userIdentity": { ... }, "eventTime": "2017-03-09T22:44:26Z", "eventSource": "organizations.amazonaws.com", "eventName": "CreateOrganizationalUnit", "awsRegion": "us-east-1", "sourceIPAddress": "192.168.0.1", "userAgent": "AWS Organizations Console, aws-internal/3", "requestParameters": { "parentId": "r-exampleRootId", "name": "TestCWEOU" }, "responseElements": { "organizationalUnit": { "name": "TestCWEOU", "id": "ou-exampleRootId-exampleOUId", "arn": "arn:aws:organizations::1234567789012:ou/o-exampleOrgId/ou-exampleRootId-exampeOUId" } }, "requestID": "123456-EXAMPLE-GUID-123456", "eventID": "123456-EXAMPLE-GUID-123456", "eventType": "AwsApiCall" } }
  7. Consulte su cuenta de correo electrónico para ver el mensaje enviado porOrgsCwevnt(el nombre de visualización del tema de Amazon SNS). El cuerpo del correo electrónico contiene la misma salida de texto JSON que la entrada de registro mostrada en el paso anterior.

Limpieza: Elimine los recursos que ya no necesite

Para evitar que se acumulen cargos, debe eliminar todos los recursos de AWS creados durante este tutorial y que no desee conservar.

Para eliminar los recursos del entorno de AWS

  1. Usarconsola de CloudTrailPara eliminar el registro de seguimiento llamadoMy-Test-Trailque creó en el paso 1.

  2. Si ha creado un bucket de Amazon S3 en el paso 1, utilice laConsola de Amazon S3para eliminarlo.

  3. UsarConsola de LambdaPara eliminar la función de llamadaLogOrganizationEventsque creó en el paso 2.

  4. UsarConsola de Amazon SNSpara eliminar el tema de Amazon SNS denominadoOrganizationsCloudWatchTopicque creó en el paso 3.

  5. Usarconsola de CloudWatchpara eliminar la regla de CloudWatch denominadaOrgsMonitorRuleque creó en el paso 4.

  6. Por último, utilice la herramientaConsola de Organizationspara eliminar la unidad organizativa denominadaTestCWEOUque creó en el paso 5.

Y ya está. En este tutorial, ha configurado CloudWatch Events para monitorear los cambios que puedan producirse en la organización. Ha configurado una regla que se activa cuando los usuarios invocan determinadas operaciones de AWS Organizations. La regla ha ejecutado una función Lambda que registró el evento y envió un correo electrónico que contenía información sobre dicho evento.