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.
Cree un informe consolidado de los hallazgos de seguridad de Prowler a partir de múltiples Cuentas de AWS
Creado por Mike Virgilio (AWS), Andrea Di Fabio () y Jay Durga (AWS) AWS
Repositorio de código: -via-prowler multi-account-security-assessment | Entorno: producción | Tecnologías: seguridad, identidad, conformidad |
Carga de trabajo: código abierto | AWSservicios: Amazon AWS CloudFormationEC2; AWS Identity and Access Management |
Resumen
Prowler
Si bien existen muchos métodos para implementar y utilizar Prowler para realizar una evaluación, esta solución se ha diseñado para una implementación rápida, un análisis completo de todas las cuentas de la organización o de las cuentas objetivo definidas, y la elaboración de informes accesibles sobre los problemas de seguridad. En esta solución, cuando Prowler completa la evaluación de seguridad de todas las cuentas de la organización, consolida los resultados. También filtra cualquier mensaje de error esperado, como los errores relacionados con las restricciones que impiden a Prowler escanear los buckets de Amazon Simple Storage Service (Amazon S3) en las cuentas aprovisionadas a través de AWS Control Tower. Los resultados filtrados y consolidados se presentan en una plantilla de Microsoft Excel que se incluye con este patrón. Puede utilizar este informe para identificar posibles mejoras en los controles de seguridad de su organización.
Esta solución se diseñó teniendo en cuenta lo siguiente:
Las AWS CloudFormation plantillas reducen el esfuerzo necesario para implementar los AWS recursos en este patrón.
Puede ajustar los parámetros de las CloudFormation plantillas y del script prowler_scan.sh en el momento de la implementación para personalizar las plantillas para su entorno.
Las velocidades de evaluación e informes de Prowler se optimizan mediante el procesamiento paralelo de los resultados agregados Cuentas de AWS, los informes consolidados con las soluciones recomendadas y las visualizaciones generadas automáticamente.
El usuario no necesita monitorizar el progreso del escaneo. Cuando se completa la evaluación, se notifica al usuario a través de un tema de Amazon Simple Notification Service (AmazonSNS) para que pueda recuperar el informe.
La plantilla de informe le ayuda a leer y evaluar solo los resultados relevantes para toda la organización.
Requisitos previos y limitaciones
Requisitos previos
Y Cuenta de AWS para alojar servicios y herramientas de seguridad, gestionados como una cuenta de miembro de una organización en AWS Organizations. En este patrón, esta cuenta se denomina cuenta de seguridad.
En la cuenta de seguridad, debe tener una subred privada con acceso saliente a Internet. Para obtener instrucciones, consulte VPCcon servidores en subredes privadas y NAT en la documentación de Amazon Virtual Private Cloud (AmazonVPC). Puede establecer el acceso a Internet mediante una NATpuerta de enlace aprovisionada en una subred pública.
Acceso a la cuenta AWS Organizations de administración o a una cuenta para la que se hayan delegado permisos de administrador. CloudFormation Para obtener instrucciones, consulte Registrar un administrador delegado en la CloudFormation documentación.
Habilite el acceso confiable entre AWS Organizations y. CloudFormation Para obtener instrucciones, consulte Habilitar el acceso confiable con AWS Organizations en la CloudFormation documentación.
Limitaciones
El objetivo Cuentas de AWS debe gestionarse como una organización en AWS Organizations. Si no la utiliza AWS Organizations, puede actualizar la CloudFormation plantilla IAM- ProwlerExecRole .yaml y el script prowler_scan.sh para su entorno. En su lugar, proporciona una lista de Cuenta de AWS IDs las regiones en las que desea ejecutar el script.
La CloudFormation plantilla está diseñada para implementar la instancia de Amazon Elastic Compute Cloud (AmazonEC2) en una subred privada con acceso saliente a Internet. El AWS Systems Manager agente (SSMagente) requiere acceso saliente para llegar al punto final del AWS Systems Manager servicio, y usted necesita acceso saliente para clonar el repositorio de código e instalar las dependencias. Si quieres usar una subred pública, debes modificar la plantilla prowler-resources.yaml para asociar una dirección IP elástica a la instancia. EC2
Versiones de producto
Prowler versión 4.0 o posterior
Arquitectura
El diagrama muestra el proceso siguiente:
Con el Administrador de sesiones, una función de AWS Systems Manager, el usuario se autentica en la EC2 instancia y ejecuta el script prowler_scan.sh. Este script del intérprete de comandos lleva a cabo los pasos del 2 al 8.
La EC2 instancia asume la
ProwlerEC2Role
IAM función, que otorga permisos para acceder al bucket de S3 y para asumir lasProwlerExecRole
IAM funciones en las demás cuentas de la organización.La EC2 instancia asume la
ProwlerExecRole
IAM función en la cuenta de administración de la organización y genera una lista de las cuentas de la organización.La EC2 instancia asume la
ProwlerExecRole
IAM función en las cuentas de los miembros de la organización (denominadas cuentas de carga de trabajo en el diagrama de arquitectura) y realiza una evaluación de seguridad en cada cuenta. Los resultados se almacenan como CSV HTML archivos en la EC2 instancia.Nota: HTML los archivos son el resultado de la evaluación de Prowler. Por su naturalezaHTML, no se concatenan, procesan ni utilizan directamente en este patrón. Sin embargo, pueden resultar útiles para revisar los informes de cuentas individuales.
La EC2 instancia procesa todos los CSV archivos para eliminar los errores conocidos y esperados y consolida los hallazgos restantes en un solo archivo. CSV
La EC2 instancia empaqueta los resultados de las cuentas individuales y los resultados agregados en un archivo zip.
La EC2 instancia carga el archivo zip en el bucket de S3.
Una EventBridge regla detecta la carga del archivo y utiliza un SNS tema de Amazon para enviar un correo electrónico al usuario notificándole que la evaluación ha finalizado.
El usuario descarga el archivo zip del bucket de S3. El usuario importa los resultados a la plantilla de Excel y revisa los resultados.
Herramientas
Servicios de AWS
Amazon Elastic Compute Cloud (AmazonEC2) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de HTTP invocación que utilizan API destinos o buses de eventos en otros. Cuentas de AWS
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
AWS Organizationses un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que usted crea y administra de forma centralizada.
Amazon Simple Notification Service (AmazonSNS) le ayuda a coordinar y gestionar el intercambio de mensajes entre editores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
AWS Systems Manager le ayuda a administrar las aplicaciones y la infraestructura que se ejecutan en la Nube de AWS. Simplifica la administración de aplicaciones y recursos, reduce el tiempo necesario para detectar y resolver problemas operativos y le ayuda a administrar sus AWS recursos de forma segura y a escala. Este patrón utiliza Session Manager, una capacidad de Systems Manager.
Otras herramientas
Prowler
es una herramienta de línea de comandos de código abierto que le ayuda a evaluar, auditar y supervisar sus cuentas para comprobar si cumplen las mejores prácticas de seguridad y otros marcos y AWS estándares de seguridad.
Repositorio de código
El código de este patrón está disponible en la evaluación de seguridad GitHub multicuenta del repositorio Prowler
prowler_scan.sh: este script bash se utiliza para iniciar una evaluación de seguridad de Prowler de varios, Cuentas de AWS en paralelo. Como se define en Prowler-Resources.yaml CloudFormationtemplate, este script se implementa automáticamente en la carpeta de la instancia.
usr/local/prowler
EC2Prowler-Resources.yaml: usa esta plantilla para crear una pila en la cuenta de seguridad de la organización. CloudFormation Esta plantilla implementa todos los recursos necesarios para esta cuenta a fin de respaldar la solución. Esta pila debe implementarse antes que la plantilla -.yaml. IAM ProwlerExecRole No se recomienda implementar estos recursos en una cuenta que aloje cargas de trabajo de producción críticas.
Nota: Si esta pila se elimina y se vuelve a implementar, debes volver a crear el conjunto de
ProwlerExecRole
pilas para poder reconstruir las dependencias entre cuentas y funciones. IAMIAM- ProwlerExecRole .yaml: usa esta CloudFormation plantilla para crear un conjunto de pilas que despliegue el
ProwlerExecRole
IAM rol en todas las cuentas de la organización, incluida la cuenta de administración.prowler-report-template.xlsm: utilizas esta plantilla de Excel para procesar las conclusiones de Prowler. Las tablas dinámicas del informe proporcionan funciones de búsqueda, gráficos y resultados consolidados.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clone el repositorio de código. |
| AWS DevOps |
Revise las plantillas. |
| AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Aprovisione recursos en la cuenta de seguridad. | Con la plantilla prowler-resources.yaml, se crea una CloudFormation pila que despliega todos los recursos necesarios en la cuenta de seguridad. Para obtener instrucciones, consulta Cómo crear una pila en la documentación. CloudFormation Tenga en cuenta lo siguiente al implementar esta plantilla:
| AWS DevOps |
Aprovisione el IAM rol en las cuentas de los miembros. | En la cuenta AWS Organizations de administración o en una cuenta con permisos de administrador delegados CloudFormation, usa la plantilla IAM- ProwlerExecRole .yaml para crear un CloudFormation conjunto de pilas. El conjunto apilado despliega la
| AWS DevOps |
Aprovisione el IAM rol en la cuenta de administración. | Con la plantilla IAM- ProwlerExecRole .yaml, se crea una CloudFormation pila que despliega el
| AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute el escaneo. |
| AWSadministrador |
Recupera los resultados de Prowler. |
| General AWS |
Detenga la EC2 instancia. | Para evitar la facturación mientras la instancia está inactiva, detiene la EC2 instancia que ejecuta Prowler. Para obtener instrucciones, consulte Detener e iniciar las instancias en la EC2 documentación de Amazon. | AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Importe los resultados. |
| General AWS |
Finalice el informe. |
| General AWS |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Actualice Prowler. | Si desea actualizar Prowler a la versión más reciente, haga lo siguiente:
| General AWS |
Actualice el script prowler_scan.sh. | Si quiere actualizar el script prowler_scan.sh a la última versión del repositorio, haga lo siguiente:
Nota: Es posible que recibas advertencias relacionadas con cualquier archivo generado localmente que no esté en el GitHub repositorio, como la búsqueda de informes. Puede ignorarlos siempre que el archivo prowler_scan.sh muestre que los cambios guardados localmente se han vuelto a combinar. | General AWS |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Elimine todos los recursos implementados. | Puede dejar los recursos implementados en las cuentas. Si cierra la EC2 instancia cuando no está en uso y mantiene el depósito de S3 vacío, se reducen los costes de mantenimiento de los recursos para futuros escaneos. Si desea desaprovisionar todos los recursos, haga lo siguiente:
| AWS DevOps |
Resolución de problemas
Problema | Solución |
---|---|
No se puede conectar a la EC2 instancia mediante el administrador de sesiones. | El SSM agente debe poder comunicarse con el punto final de Systems Manager. Haga lo siguiente:
|
Al implementar el conjunto de pilas, la CloudFormation consola le solicitará que lo haga. | Esto indica que no se ha habilitado el acceso de confianza entre AWS Organizations y CloudFormation. Se requiere acceso de confianza para implementar el conjunto de pilas gestionado por servicios. Seleccione el botón para activar el acceso de confianza. Para obtener más información, consulte Habilitar el acceso confiable en la CloudFormation documentación. |
Recursos relacionados
AWS documentación
Implementación de controles de seguridad en AWS (Guía AWS prescriptiva)
Otros recursos
Merodeador
() GitHub
Información adicional
Eliminar errores mediante programación
Si los resultados contienen errores de Access Denied
, debe eliminarlos de los resultados. Por lo general, estos errores se deben a una influencia externa en los permisos que impiden que Prowler evalúe un recurso en particular. Por ejemplo, algunas comprobaciones fallan al revisar los depósitos de S3 aprovisionados a través de ellos. AWS Control Tower Puede extraer estos resultados mediante programación y guardar los resultados filtrados como un archivo nuevo.
Los siguientes comandos eliminan las filas que contienen una sola cadena de texto (un patrón) y, a continuación, envían los resultados a un archivo nuevo.
Para Linux o macOS (Grep)
grep -v -i "Access Denied getting bucket" myoutput.csv > myoutput_modified.csv
Para Windows () PowerShell
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket' -NotMatch > myoutput_modified.csv
Los siguientes comandos eliminan las filas que coinciden con más de una cadena de texto y, a continuación, envían los resultados a un archivo nuevo.
Para Linux o macOS (utiliza un tubo de escape entre las cadenas)
grep -v -i 'Access Denied getting bucket\|Access Denied Trying to Get' myoutput.csv > myoutput_modified.csv
Para Windows (usa una coma entre las cadenas)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket', 'Access Denied Trying to Get' -NotMatch > myoutput_modified.csv
Ejemplos de informes
La siguiente imagen es un ejemplo de la hoja de trabajo sobre los resultados del informe sobre los resultados consolidados de Prowler.
La siguiente imagen es un ejemplo de la hoja de trabajo Pasar Fallar del informe sobre los resultados consolidados de Prowler. (De forma predeterminada, los resultados de las aprobaciones se excluyen de la salida).
La siguiente imagen es un ejemplo de la hoja de trabajo sobre la Gravedad del informe sobre los resultados consolidados de Prowler.