Características de seguridad integradas del ADDF - AWS Guía prescriptiva

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.

Características de seguridad integradas del ADDF

El Marco de Datos de Conducción Autónoma (ADDF) cuenta con varias características de seguridad integradas. De forma predeterminada, estas características se han diseñado para ayudarlo a configurar un marco seguro y ayudar a su organización a cumplir los requisitos de seguridad empresariales más comunes.

Las siguientes son las características de seguridad integradas:

Privilegio mínimo para el código de módulo del ADDF

El privilegio mínimo es la práctica recomendada de seguridad que consiste en conceder los permisos mínimos necesarios para realizar una tarea. Para obtener más información, consulte Aplicar permisos de privilegio mínimo. Los módulos que proporciona el ADDF siguen de forma rigurosa el principio de privilegio mínimo en su código y en los recursos implementados, de la siguiente manera:

  • Todas las políticas AWS Identity and Access Management (IAM) generadas para un módulo ADDF tienen los permisos mínimos necesarios para el caso de uso. 

  • Servicios de AWS se configuran e implementan de acuerdo con el principio de privilegios mínimos. Los módulos que proporciona el ADDF solo utilizan los servicios y las características de servicio necesarios para el caso de uso específico.

Infraestructura como código

El ADDF, como marco, se ha diseñado para implementar los módulos de ADDF como infraestructura como código (IaC). La IaC elimina los procesos de implementación manual y ayuda a prevenir errores y configuraciones incorrectas, que pueden resultar de procesos manuales. 

El ADDF se ha diseñado para orquestar e implementar módulos mediante cualquier marco de IaC común. Esto incluye, entre otros: 

Puede utilizar diferentes marcos de IaC para escribir distintos módulos y, luego, utilizar el ADDF para implementarlos.

El marco IaC predeterminado que utilizan los módulos ADDF es. AWS CDK AWS CDK es una abstracción de alto nivel orientada a objetos que se puede utilizar para definir los recursos de forma imperativa. AWS AWS CDK ya aplica las mejores prácticas de seguridad de forma predeterminada para varios servicios y escenarios. Al usarlo AWS CDK, se reduce el riesgo de errores de configuración de seguridad.

Controles de seguridad automatizados para la IaC

La utilidad cdk-nag (GitHub) de código abierto está integrada en ADDF. Esta utilidad comprueba automáticamente si los módulos ADDF en los que se basan cumplen las mejores prácticas AWS CDK generales y de seguridad. La utilidad cdk-nag utiliza reglas y paquetes de reglas para detectar y denunciar el código que infringe las prácticas recomendadas. Para obtener más información sobre las reglas y una lista completa, consulte cdk-nag rules (). GitHub

Política personalizada de privilegios mínimos para la función de despliegue AWS CDK

ADDF hace un uso extensivo de la versión 2. AWS CDK Es necesario que inicie todos los Cuentas de AWS ADDF en. AWS CDK Para obtener más información, consulte Proceso de arranque (documentación de AWS CDK ).

De forma predeterminada, AWS CDK asigna la política AdministratorAccess AWS gestionada permisiva a la función de AWS CDK despliegue creada en las cuentas de arranque. El nombre completo de este rol es. cdk-[CDK_QUALIFIER]-cfn-exec-role-[AWS_ACCOUNT_ID]-[REGION] AWS CDK utiliza esta función para implementar recursos en el entorno de arranque Cuenta de AWS como parte del proceso de AWS CDK implementación.

En función de los requisitos de seguridad de su organización, la política AdministratorAccess puede ser demasiado permisiva. Como parte del proceso de arranque de AWS CDK , puede personalizar la política y los permisos según sus necesidades. Puede cambiar la política al reiniciar el arranque de la cuenta con una política recién definida mediante el parámetro --cloudformation-execution-policies. Para obtener más información, consulte Personalización del arranque (documentación).AWS CDK

nota

Si bien esta característica de seguridad no es específica del ADDF, aparece en esta sección porque puede aumentar la seguridad general de la implementación del ADDF.

Política de privilegio mínimo para el archivo deployspec del módulo

Cada módulo contiene un archivo de especificaciones de la implementación que se denomina deployspec.yaml. En este archivo se definen las instrucciones de despliegue del módulo. CodeSeeder lo usa para implementar el módulo definido en la cuenta de destino mediante AWS CodeBuild. CodeSeeder asigna una función de servicio predeterminada CodeBuild para implementar los recursos, según se indica en el archivo de especificaciones de implementación. Este rol de servicio se ha diseñado en función del principio de privilegio mínimo. Incluye todos los permisos necesarios para implementar AWS CDK aplicaciones, ya que todos los módulos proporcionados por ADDF se crean como aplicaciones. AWS CDK

Sin embargo, si necesita ejecutar algún comando de fase fuera de AWS CDK, tendrá que crear una política de IAM personalizada en lugar de utilizar la función de servicio predeterminada para. CodeBuild Por ejemplo, si utiliza un marco de despliegue de IaC que no sea AWS CDK Terraform, debe crear una política de IAM que conceda los permisos suficientes para que ese marco específico funcione. Otro escenario que requiere una política de IAM específica es cuando se incluyen llamadas directas AWS Command Line Interface (AWS CLI) a otras personas Servicios de AWS en los comandosinstall, pre_buildbuild, o stage. post_build Por ejemplo, necesita una política personalizada si su módulo incluye un comando de Amazon Simple Storage Service (Amazon S3) para cargar archivos a un bucket de S3. La política de IAM personalizada proporciona un control detallado de cualquier AWS comando ajeno a la implementación. AWS CDK Para ver un ejemplo de política de IAM personalizada, consulte (documentación). ModuleStackSeedFarmer Al crear una política de IAM personalizada para su módulo de ADDF, asegúrese de aplicar los permisos de privilegio mínimo.

Cifrado de datos

El ADDF almacena y procesa datos potencialmente confidenciales. Para ayudar a proteger estos datos SeedFarmer CodeSeeder, y los módulos proporcionados por ADDF cifran los datos en reposo y en tránsito para todos los que se utilicen Servicios de AWS (a menos que se indique explícitamente lo contrario en el caso de los módulos de la carpeta). demo-only

Almacenamiento de credenciales mediante Secrets Manager

ADDF gestiona varios secretos para diferentes servicios, como Docker Hub y Amazon JupyterHub Redshift. ADDF utiliza AWS Secrets Manager para almacenar cualquier secreto relacionado con el ADDF. Esto lo ayuda a eliminar los datos confidenciales del código fuente.

Los secretos de Secrets Manager solo se almacenan en las cuentas de destino, según sea necesario para que la cuenta funcione de forma correcta. De forma predeterminada, la cuenta de cadena de herramientas no contiene secretos.

Revisiones de seguridad de y SeedFarmer CodeSeeder

SeedFarmery CodeSeeder(GitHubrepositorios) se utilizan para implementar ADDF y sus módulos ADDF. Estos proyectos de código abierto se someten al mismo proceso periódico de revisión AWS interna de la seguridad que el ADDF, tal y como se describe en. Proceso de revisión de seguridad del ADDF

Los permisos limitan el soporte para el rol de AWS CodeBuild CodeSeeder

Los límites de los permisos de IAM son un mecanismo de seguridad común que define los permisos máximos que una política basada en la identidad puede conceder a una entidad de IAM. SeedFarmer y CodeSeeder admiten un anexo de límites de permisos de IAM para cada cuenta de destino. El límite de permisos limita los permisos máximos de cualquier función de servicio que utilice CodeBuild cuando se CodeSeeder despliegan los módulos. Un equipo de seguridad debe crear los límites de permisos de IAM fuera del ADDF. Los archivos adjuntos de la política de límite de permisos de IAM se aceptan como un atributo dentro del archivo de manifiesto de la implementación del ADDF, deployment.yaml. Para obtener más información, consulte el soporte de límites de permisos (SeedFarmer documentación).

El flujo de trabajo es el siguiente:

  1. Su equipo de seguridad define y crea un límite de permisos de IAM en función de sus requisitos de seguridad. El límite de permisos de IAM debe crearse individualmente en cada Cuenta de AWS ADDF. El resultado es una lista de nombre de recurso de Amazon (ARN) de la política de límite de permisos.

  2. El equipo de seguridad comparte la lista de ARN de la política con su equipo de desarrolladores del ADDF.

  3. El equipo de desarrolladores del ADDF integra la lista de ARN de la política en el archivo de manifiesto. Para ver un ejemplo de esta integración, consulte sample-permissionboundary.yaml () y Deployment manifest (documentación). GitHub SeedFarmer

  4. Tras una implementación correcta, el límite de permisos se adjunta a todas las funciones de servicio que se utilizan para implementar los módulos. CodeBuild

  5. El equipo de seguridad monitorea que los límites de permisos se apliquen según sea necesario.

AWS arquitectura multicuenta

Como se define en el pilar de seguridad del AWS Well-Architected Framework, se considera una buena práctica separar los recursos y las cargas de trabajo en Cuentas de AWS varios, según los requisitos de la organización. Esto se debe a que a Cuenta de AWS actúa como límite de aislamiento. Para obtener más información, consulte Administración y separación de Cuenta de AWS. La implementación de este concepto se denomina arquitectura de varias cuentas. Un diseño adecuado de la arquitectura de varias cuentas de AWS permite categorizar la carga de trabajo y reduce el alcance del impacto en caso de una brecha de seguridad, en comparación con una arquitectura de una sola cuenta.

ADDF admite de forma nativa arquitecturas de cuentas AWS múltiples. Puede distribuir sus módulos ADDF entre tantos módulos Cuentas de AWS como necesite según los requisitos y la seguridad de su organización. separation-of-duties Puede implementar el ADDF en una sola Cuenta de AWS, al combinar la cadena de herramientas y las funciones de la cuenta de destino. Como alternativa, puede crear cuentas de destino individuales para los módulos o grupos de módulos del ADDF.

La única restricción que debe tener en cuenta es que un módulo ADDF representa la unidad de implementación más pequeña de cada uno. Cuenta de AWS

En el caso de los entornos de producción, se recomienda utilizar una arquitectura de varias cuentas compuesta por una cuenta de cadena de herramientas y al menos una cuenta de destino. Para obtener más información, consulte Arquitectura del ADDF.

Permisos de privilegio mínimo para implementaciones con varias cuentas

Si utiliza una arquitectura de varias cuentas, SeedFarmer debe acceder a las cuentas de destino para realizar las tres acciones siguientes:

  1. Escribir los metadatos del módulo de ADDF en la cuenta de cadena de herramientas y en las cuentas de destino.

  2. Leer los metadatos del módulo de ADDF de la cuenta de cadena de herramientas y de las cuentas de destino.

  3. Inicie AWS CodeBuild tareas en las cuentas de destino con el fin de implementar o actualizar los módulos.

En la siguiente figura se muestran las relaciones entre cuentas, incluidas las operaciones para asumir funciones específicas de la DDF AWS Identity and Access Management (IAM).

Las funciones de IAM se basan en una arquitectura AWS multicuenta que incluye una cuenta de cadena de herramientas y cuentas de destino.

Estas acciones entre cuentas se logran mediante el uso de operaciones de asunción de roles bien definidas.

  • La función de IAM de la cadena de herramientas ADDF se implementa en la cuenta de la cadena de herramientas. SeedFarmer asume esta función. Este rol tiene permisos para realizar una acción iam:AssumeRole y puede asumir el rol de IAM de implementación del ADDF en cada cuenta de destino. Además, la función de IAM de la cadena de herramientas ADDF puede ejecutar operaciones locales del almacén de AWS Systems Manager parámetros.

  • El rol de IAM de implementación del ADDF se implementa en cada cuenta de destino. Este rol solo se puede asumir desde la cuenta de cadena de herramientas mediante el rol de IAM de la cadena de herramientas del ADDF. Este rol tiene permisos para ejecutar operaciones locales del almacén de AWS Systems Manager parámetros y tiene permisos para ejecutar AWS CodeBuild acciones que inicien trabajos y los describan CodeBuild . CodeSeeder

Estos roles de IAM específicos del ADDF se crean como parte del proceso de arranque del ADDF. Para obtener más información, consulte Bootstrap Cuenta de AWS(s) en la Guía de implementación de ADDF (GitHub).

Todos los permisos entre cuentas se configuran de acuerdo con el principio de privilegio mínimo. Si una cuenta de destino se ve comprometida, el impacto en las demás Cuentas de AWS del ADDF es mínimo o nulo.

En el caso de una arquitectura de una sola cuenta para el ADDF, las relaciones del rol siguen siendo las mismas. Simplemente se comprimen en una sola Cuenta de AWS.