Configura alertas para cierres de cuentas programáticos en Organizations AWS - Recomendaciones de AWS

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.

Configura alertas para cierres de cuentas programáticos en Organizations AWS

Creado por Richard Milner-Watts (AWS), Debojit Bhadra () y Manav Yadav () AWS AWS

AWSRepositorio de código: Notificador de cierre de cuentas

Entorno: producción

Tecnologías: administración y gobierno

AWSservicios: Amazon AWS CloudTrail EventBridge; AWS Lambda; OrganizationsAWS; Amazon SNS

Resumen

La CloseAccount APIopción for AWSOrganizations le permite cerrar las cuentas de los miembros de una organización mediante programación, sin tener que iniciar sesión en la cuenta con las credenciales raíz. RemoveAccountFromOrganization APIExtrae una cuenta de una organización en AWS Organizations, por lo que pasa a ser una cuenta independiente.

Esto APIs podría aumentar el número de operadores que pueden cerrar o eliminar una AWS cuenta. Todos los usuarios que tengan acceso a la organización a través de AWS Identity and Access Management (IAM) en la AWS cuenta de administración de Organizations pueden llamarlosAPIs, por lo que el acceso no se limita al propietario del correo raíz de la cuenta con ningún dispositivo de autenticación multifactor (MFA) asociado.

Este patrón implementa alertas cuando se invocan las CloseAccount teclas y RemoveAccountFromOrganizationAPIs, de este modo, se pueden supervisar estas actividades. Para las alertas, utiliza un tema de Amazon Simple Notification Service (AmazonSNS). También puede configurar las notificaciones de Slack mediante un webhook.

Requisitos previos y limitaciones

Requisitos previos 

  • Una AWS cuenta activa

  • Una organización en AWS Organizations

  • Acceso a la cuenta de administración de la organización, ubicada en la raíz de la organización, para crear los recursos necesarios

Limitaciones

  • Como se describe en la APIreferencia de AWS Organizations, CloseAccount API permite cerrar solo el 10 por ciento de las cuentas de los miembros activos en un período continuo de 30 días.

  • Cuando se cierra una AWS cuenta, su estado cambia aSUSPENDED. Durante 90 días después de esta transición de estado, AWS Support puede volver a abrir la cuenta. La cuenta se elimina permanentemente después de 90 días.

  • Usuarios que tienen acceso a la AWS cuenta de administración de Organizations y APIs que también pueden tener permisos para deshabilitar estas alertas. Si lo que más preocupa es un comportamiento malintencionado en lugar de eliminarlos accidentalmente, considere la posibilidad de proteger los recursos creados por este patrón con un límite de IAM permisos.

  • Las API solicitudes CloseAccount RemoveAccountFromOrganization se tramitan en la región EE. UU. Este (Virginia del Norte) (us-east-1). Por lo tanto, usted debe implementar esta solución en us-east-1 para poder observar los eventos.

Arquitectura

Pila de tecnología de destino

  • AWSOrganizations

  • AWS CloudTrail

  • Amazon EventBridge

  • AWSLambda

  • Amazon SNS

Arquitectura de destino

El siguiente diagrama muestra la arquitectura de soluciones para este patrón.

Arquitectura para configurar alertas en AWS Organizations para cierres de cuentas
  1. AWSOrganizations procesa una RemoveAccountFromOrganization solicitud CloseAccount o una.

  2. Amazon EventBridge está integrado AWS CloudTrail para entregar estos eventos al bus de eventos predeterminado.

  3. Una EventBridge regla de Amazon personalizada coincide con AWS las solicitudes de Organizations y llama a una AWS función Lambda.

  4. La función Lambda envía un mensaje a un SNS tema, al que los usuarios pueden suscribirse para recibir alertas por correo electrónico o para su posterior procesamiento.

  5. Si las notificaciones de Slack están habilitadas, la función de Lambda envía un mensaje a un webhook de Slack.

Herramientas

AWSservicios

  • AWS CloudFormationproporciona una forma de modelar un conjunto de recursos relacionados AWS y de terceros, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de sus ciclos de vida, tratando la infraestructura como código.

  • Amazon EventBridge es un servicio de bus de eventos sin servidor que puede utilizar para conectar sus aplicaciones con datos de diversas fuentes. EventBridge recibe un evento, un indicador de un cambio en el entorno, y aplica una regla para enrutar el evento a un objetivo. Las reglas hacen coincidir los eventos con los objetivos o bien en función de la estructura del evento, llamado un patrón de evento, o bien de una programación.

  • AWSLambda es un servicio informático que admite la ejecución de código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Solo paga por el tiempo de proceso que consume. No se aplican cargos cuando su código no se está ejecutando.

  • AWSOrganizations le ayuda a administrar y gobernar su entorno de forma centralizada a medida que crece y escala sus AWS recursos. Con AWS Organizations, puede crear nuevas AWS cuentas y asignar recursos mediante programación, agrupar cuentas para organizar sus flujos de trabajo, aplicar políticas a cuentas o grupos para la gobernanza y simplificar la facturación mediante el uso de un único método de pago para todas sus cuentas.

  • AWS CloudTrailsupervisa y registra la actividad de las cuentas en toda su AWS infraestructura y le permite controlar el almacenamiento, el análisis y las acciones correctivas.

  • Amazon Simple Notification Service (AmazonSNS) es un servicio de mensajería totalmente gestionado para la comunicación application-to-application (A2A) y application-to-person (A2P).

Otras herramientas

Código

El código de este patrón se encuentra en el repositorio GitHub AWSAccount Closer Notifier.

La solución incluye una CloudFormation plantilla que implementa la arquitectura de este patrón. Utiliza la biblioteca AWS Lambda Powertools para Python para proporcionar registro y rastreo.

Epics

TareaDescripciónHabilidades requeridas

Lance la CloudFormation plantilla para la pila de soluciones.

La CloudFormation plantilla para este patrón se encuentra en la rama principal del GitHub repositorio. Despliega las IAM funciones, EventBridge las reglas, las funciones de Lambda y SNS el tema.

Para iniciar la plantilla:

  1. Clone el GitHub repositorio para obtener una copia del código de la solución.

  2. Abra la consola AWS de administración de la AWS cuenta de administración de Organizations.

  3. Seleccione la región EE.UU. Este (Norte de Virginia) (us-east-1) y, a continuación, abra la CloudFormation consola.

  4. Cree la pila utilizando la plantilla account-closure-notifier.yml y especificando los siguientes valores:  

    • Nombre de pila: aws-account-closure-notifier-stack 

    • Parámetro ResourcePrefix: aws-account-closure-notifier

    • Parámetro SlackNotification: si se requieren notificaciones de Slack, cambie esta configuración a true.

    • SlackWebhookEndpointparámetro: si se requieren notificaciones de Slack, especifica el URL webhook.

Para obtener más información sobre cómo lanzar una CloudFormation pila, consulta la AWS documentación.

AWSadministrador

Compruebe que la solución se haya lanzado correctamente.

  1. Espere a que la CloudFormation pila alcance el estado CREATE _COMPLETE.

  2. Abre la EventBridge consolaus-east-1.

  3. Compruebe que se haya creado una nueva regla con ese nombre aws-account-closure-notifier-event-rule.

AWSadministrador

Suscríbase al tema de SNS

(Opcional) Si quieres suscribirte al SNS tema:

  1. Abre la SNSconsola de us-east-1 Amazon y busca el tema denominadoaws-account-closure-notifier-sns-topic.

  2. Elija el nombre del tema y, a continuación, elija Create subscription (Crear suscripción).

  3. En Protocol (Protocolo), elija Email (Correo electrónico).

  4. En Endpoint (Punto de conexión), escriba una dirección de correo electrónico que puede utilizar para recibir la notificación y, a continuación, elija Create subscription (Crear suscripción).

  5. Revisa tu bandeja de entrada de correo electrónico para ver si hay algún mensaje de AWS Notificaciones. Utilice el enlace del correo electrónico para confirmar la suscripción.

Para obtener más información sobre cómo configurar SNS las notificaciones, consulta la SNSdocumentación de Amazon.

AWSadministrador
TareaDescripciónHabilidades requeridas

Envíe un evento de prueba al bus de eventos predeterminado.

El GitHub repositorio proporciona un ejemplo de evento que puede enviar al bus de eventos EventBridge predeterminado para probarlo. La EventBridge regla también reacciona ante los eventos que utilizan la fuente de eventos personalizadaaccount.closure.notifier.

Nota: No puedes usar la fuente de CloudTrail eventos para enviar este evento, ya que no es posible enviar un evento como un AWS servicio.

Para enviar un evento de prueba:

  1. Abre la EventBridge consola enus-east-1.

  2. En el panel de navegación, en Buses, elija Event buses (Buses de eventos) y, a continuación, seleccione el bus de eventos predeterminado.

  3. Seleccione Send events (Enviar eventos).

  4. En Event source (Origen del evento), introduzca account.closure.notifier.

  5. En Detail type (Tipo de detalle), introduzca AWS API Call via CloudTrail.

  6. Para ver los detalles del evento, copia y pega el contenido tests/dummy-event.json del GitHub repositorio en el cuadro de texto.

  7. Seleccione Send (Enviar) para iniciar el flujo de trabajo de notificaciones.

AWSadministrador

Compruebe que se ha recibido la notificación por correo electrónico.

Compruebe el buzón de correo que está suscrito al SNS tema para ver las notificaciones. Deberías recibir un correo electrónico con los detalles de la cuenta que se cerró y del director que realizó la API llamada.

AWSadministrador

Verifique que se haya recibido la notificación de Slack.

(Opcional) Si especificaste un webhook URL para el SlackWebhookEndpoint parámetro al implementar la CloudFormation plantilla, comprueba el canal de Slack que está asignado al webhook. Debería mostrar un mensaje con los detalles de la cuenta que se cerró y del director que realizó la llamada. API

AWSadministrador

Recursos relacionados