Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019
Al controlar la información y los datos, especialmente en una solución basada en la nube, como Azure DevOps Services, la seguridad debe ser la prioridad más alta. Aunque Microsoft garantiza la seguridad de la infraestructura de nube subyacente, es su responsabilidad configurar la seguridad en Azure DevOps. En este artículo se proporciona información general sobre las configuraciones necesarias relacionadas con la seguridad para proteger el entorno de Azure DevOps frente a amenazas y vulnerabilidades.
Protección de la red y los datos
La protección de la red es fundamental cuando se trabaja con Azure DevOps para proteger los datos y los recursos frente al acceso no autorizado y las posibles amenazas. Implemente medidas de seguridad de red y protección de datos para garantizar que solo los orígenes de confianza puedan acceder al entorno de Azure DevOps. Para proteger la red cuando trabaje con Azure DevOps, realice las siguientes acciones:
- Configurar listas de direcciones IP permitidas: restrinja el acceso a direcciones IP específicas para permitir el tráfico solo desde orígenes de confianza, lo que reduce la superficie expuesta a ataques. Si su organización está protegida con un firewall o servidor proxy, agregue direcciones IP y direcciones URL a la lista de permitidos.
- Uso del cifrado de datos: Proteja los datos mediante estrategias de cifrado, copia de seguridad y recuperación. Cifre siempre los datos en tránsito y en reposo. Proteger los canales de comunicación mediante protocolos como HTTPS. Más información sobre Azure Encryption.
- Validar certificados: Asegúrese de que los certificados son válidos y emitidos por las autoridades de confianza al establecer conexiones.
- Implemente firewalls de aplicaciones web (WAF): Filtre, supervise y bloquee el tráfico malintencionado basado en web con WAF para obtener una capa adicional de protección contra ataques comunes.
- Introducción a los grupos de seguridad de red (NSG): Use grupos de seguridad de red para controlar el tráfico entrante y saliente a los recursos de Azure, lo que garantiza que solo se permite el tráfico autorizado.
- Uso de Azure Firewall: Implemente Azure Firewall para proporcionar una directiva de seguridad de red centralizada en varias suscripciones y redes virtuales de Azure.
- Supervisión del tráfico de red con Azure Network Watcher: Use Azure Network Watcher para supervisar y diagnosticar problemas de red, lo que garantiza la seguridad y el rendimiento de la red.
- Implemente la protección contra DDoS con Azure DDoS Protection: Habilite Azure DDoS Protection para proteger las aplicaciones frente a ataques de denegación de servicio distribuido (DDoS).
Para obtener más información, consulte Procedimientos recomendados de administración de aplicaciones.
Implementar confianza cero
Adopte principios de confianza cero en los procesos de DevOps para asegurarse de que todas las solicitudes de acceso se comprueban exhaustivamente, independientemente de su origen. Confianza cero funciona en el principio de "nunca confiar, comprobar siempre", lo que significa que ninguna entidad, ya sea dentro o fuera de la red, es de confianza de forma predeterminada. Al implementar Confianza cero, puede reducir significativamente el riesgo de infracciones de seguridad y asegurarse de que solo los usuarios y dispositivos autorizados puedan acceder a los recursos.
- Fortalezca su plataforma de DevOps
- Protección del entorno de desarrollo
- Integra Confianza Cero de manera fluida en los flujos de trabajo de desarrollo
Confianza cero ayuda a protegerse contra el movimiento lateral dentro de la red, lo que garantiza que incluso si hay una parte comprometida de la red, la amenaza está contenida y no se puede propagar. Para obtener más información, consulte la guía de evaluación de confianza cero .
Cumplimiento de los estándares del sector
Asegúrese de que el entorno de Azure DevOps cumple con los estándares y las regulaciones del sector que protegen su entorno y mantienen la confianza con los usuarios.
- Garantizar el cumplimiento de los estándares del sector: Azure DevOps cumple con diversos estándares y reglamentos del sector, como ISO/IEC 27001, SOC 1/2/3 y RGPD. Asegúrese de que el entorno cumple estos estándares.
- Aplicar directivas de cumplimiento: Implemente directivas de rama y directivas de cumplimiento para las canalizaciones.
-
Incorporarse a gobernanza de componentes para CI/CD, que ofrece las siguientes ventajas:
- Detección de vulnerabilidades de seguridad: le avisa de las vulnerabilidades conocidas en los componentes de código abierto.
- Cumplimiento de licencias: garantiza que los componentes cumplan las directivas de licencias de su organización.
- Cumplimiento de directivas: garantiza que solo se usan versiones aprobadas.
- Visibilidad con seguimiento: proporciona visibilidad de los componentes entre repositorios para facilitar la administración.
Controlar y restringir el acceso
Revise todas las directivas de seguridad disponibles para que los administradores restrinjan y controle quién tiene acceso a la organización. Mantenga el control de la organización evitando la creación innecesaria de proyectos.
- Deshabilite "Permitir proyectos públicos": deshabilite la opción para crear proyectos públicos. Cambie la visibilidad del proyecto de público a privado según sea necesario. Los usuarios que nunca han iniciado sesión tienen acceso de solo lectura a proyectos públicos, mientras que a los usuarios que han iniciado sesión se les puede conceder acceso a proyectos privados y realizar cambios permitidos.
- Restrinja los mecanismos de autenticación innecesarios y limite quién tiene acceso a la autenticación permitida.
-
Limitar el acceso con directivas de acceso condicional: proteja su organización definiendo directivas de acceso condicional (CSP) en Microsoft Entra que reaccionan a eventos de inicio de sesión y solicitan otras acciones antes de que se conceda acceso a un usuario.
- Active la directiva de la organización para habilitar la validación de IP CAP en flujos no interactivos.
- Agregue una capa adicional de seguridad habilitando la autenticación multifactor de Microsoft Entra después del inicio de sesión.
Administrar invitados externos
El acceso de invitado externo puede presentar posibles riesgos de seguridad si no se administra correctamente. Minimice estos riesgos y asegúrese de que los invitados externos tengan el nivel de acceso adecuado sin poner en peligro la seguridad de su entorno.
-
Bloquee el acceso de los invitados externos: Deshabilite la Política de "Permitir que se envíen invitaciones a cualquier dominio" para evitar el acceso de los invitados externos de no ser necesario para el negocio.
- Desactiva la política de organización "Acceso de invitado externo" en Azure DevOps.
- Usar correos electrónicos o UPN distintos: Usar diferentes direcciones de correo electrónico o nombres principales de usuario (UPN) para cuentas personales y empresariales para eliminar la ambigüedad entre cuentas personales y relacionadas con el trabajo.
- Agrupar usuarios invitados externos: Colocar todos los usuarios invitados externos en un único grupo de Microsoft Entra y administrar los permisos de este grupo de forma adecuada. Quite las asignaciones directas para asegurarse de que las reglas de grupo se aplican a estos usuarios.
- Reevaluar reglas periódicamente: revisar regularmente las reglas en la pestaña Reglas de grupo de la página Usuarios. Considere cualquier cambio de pertenencia a grupos en el identificador de Microsoft Entra que pueda afectar a su organización. El id. de Entra de Microsoft puede tardar hasta 24 horas en actualizar la pertenencia dinámica a grupos y las reglas se vuelven a evaluar automáticamente cada 24 horas y cada vez que cambia una regla de grupo.
Para obtener mayor información, consulte los Invitados de negocio a negocio (B2B por sus siglas en inglés) en la identificación de Microsoft Entra.
Eliminación de usuarios innecesarios
La eliminación de usuarios inactivos o no autorizados de su organización ayuda a mantener un entorno seguro y reduce el riesgo de posibles infracciones de seguridad.
- Quitar directamente usuarios de cuentas Microsoft inactivas (MSA): Quite directamente los usuarios inactivos de su organización si usan MSA. No se pueden crear consultas para elementos de trabajo asignados a cuentas de MSA eliminadas.
- Deshabilitar o eliminar cuentas de usuario de Microsoft Entra: Si está conectado a Microsoft Entra ID, deshabilite o elimine la cuenta de usuario de Microsoft Entra mientras mantiene activa la cuenta de usuario de Azure DevOps. Puede seguir consultando el historial de elementos de trabajo mediante su identificador de usuario de Azure DevOps.
- Revocación de PAT de usuario para administradores: Asegúrese de la administración segura de estos tokens de autenticación críticos revisando y revocando periódicamente las PAT de usuario existentes.
- revocar permisos especiales concedidos a usuarios individuales: Auditar y revocar los permisos especiales concedidos a usuarios individuales para garantizar la alineación con el principio de privilegios mínimos.
- Reasignar el trabajo de los usuarios eliminados: Antes de eliminar usuarios, reasigne sus elementos de trabajo a los miembros actuales del equipo para distribuir la carga de forma eficaz.
Permisos de ámbito
Proporcione los permisos mínimos necesarios y niveles de acceso para asegurarse de que solo los usuarios y servicios autorizados puedan acceder a la información confidencial y realizar acciones críticas. Esta práctica ayuda a minimizar el riesgo de acceso no autorizado y posibles infracciones de datos.
Revise y actualice periódicamente esta configuración para adaptarse a los cambios de su organización, como cambios de rol, nuevas contrataciones o salidas. La implementación de una auditoría periódica de permisos y niveles de acceso puede ayudar a identificar y corregir las discrepancias, lo que garantiza que la posición de seguridad sigue siendo sólida y alineada con los procedimientos recomendados.
Más información sobre los permisos:
Para garantizar una administración segura y eficaz de los permisos, delimite correctamente los permisos dentro del entorno de Azure DevOps. Los permisos de ámbito implican definir y asignar el nivel de acceso adecuado a los usuarios y grupos en función de sus roles y responsabilidades. Esta práctica ayuda a minimizar el riesgo de acceso no autorizado y posibles infracciones de datos al garantizar que solo las personas autorizadas tengan acceso a información confidencial y acciones críticas.
Para definir el ámbito de los permisos de forma eficaz, realice las siguientes acciones:
- Deshabilitar herencia: Evite la herencia de permisos y evite el acceso no deseado. La herencia puede otorgar permisos inadvertidamente a los usuarios que no deben tenerlos, debido a su naturaleza al permitirlo de forma predeterminada. Administre y establezca explícitamente los permisos para asegurarse de que solo los usuarios previstos tengan acceso.
- entornos de segmento: Usar cuentas de Azure independientes para distintos entornos, como desarrollo, pruebas y producción, para mejorar la seguridad y evitar conflictos. Este enfoque minimiza el riesgo de conflictos de recursos y contaminación de datos entre entornos y permite una mejor administración y aislamiento de los recursos. Para obtener mayor información, consulte la Zona de Aterrizaje Azul.
- Controle el acceso y garantice el cumplimiento: Use Azure Policy para restringir el acceso a las regiones y servicios de Azure sin usar, lo que garantiza el cumplimiento de los estándares de la organización. Esta acción ayuda a aplicar los procedimientos recomendados y a mantener un entorno seguro evitando el acceso y el uso no autorizados.
- Implementación del control basado en rol (ABAC) de Azure: Use ABAC con recursos etiquetados correctamente para limitar el acceso no autorizado. Esta acción garantiza que se concedan permisos de acceso en función de atributos específicos, lo que mejora la seguridad al impedir la creación y el acceso no autorizados de recursos.
-
Usar grupos de seguridad: Use grupos de seguridad para administrar de forma eficaz los permisos de varios usuarios. Este método simplifica la concesión y revocación de acceso en comparación con la asignación de permisos individualmente y garantiza la coherencia y la administración más sencilla en toda la organización.
- Use microsoft Entra ID, Active Directory o grupos de seguridad de Windows cuando administre muchos usuarios.
- Reduzca el riesgo de perder información confidencial e implementar código no seguro limitando el acceso a proyectos y repositorios a grupos de seguridad integrados o personalizados.
- Aproveche las ventajas de los roles integrados y use por defecto el rol de Colaborador para desarrolladores. Los administradores se asignan al grupo de seguridad Administrador de proyectos para permisos elevados, lo que les permite configurar permisos de seguridad.
- Mantenga los grupos lo más pequeños posible y restrinja el acceso.
- Implemente el acceso Just-In-Time con un grupo de Microsoft Entra Privileged Identity Management (PIM). Conceda permisos elevados solo cuando sea necesario, lo que reduce el riesgo asociado al acceso permanente.
Eliminar cuentas de servicio
Históricamente, las cuentas de servicio se usaron con tokens de acceso personal (PAT) para crear herramientas que ejecutan procesos y servicios automatizados. Como resultado, a menudo tienen permisos elevados. Antes de elegir continuar construyendo con una cuenta de servicio, explore si sigue siendo el enfoque de autenticación adecuado para usted.
- Reemplace los PAT por tokens de Entra de Microsoft:los tokens de Microsoft Entra son tokens de corta duración (una hora) que se pueden usar en lugar de la mayoría de los PAT. Los PAT son populares debido a su facilidad de uso, pero también son un vector de ataque popular debido a la facilidad en la que se filtran.
- Lea todos los mecanismos de autenticación disponibles antes de elegir uno.
-
Use entidades de servicio en su lugar:las entidades de servicio representan la identidad de una aplicación de Microsoft Entra y tienen sus propios permisos que definen lo que la aplicación puede hacer en un inquilino determinado. Las entidades de servicio son la opción recomendada para administrar los permisos necesarios para la aplicación. Sustituya los PAT de las cuentas de servicio por los tokens de Microsoft Entra adquiridos para el principal de servicio.
- Llévelo un paso más allá mediante la autenticación con una identidad administrada si está desarrollando sobre recursos de Azure. Las identidades administradas se encargan de toda la administración de credenciales.
-
Usar conexiones de servicio: Las conexiones de servicio permiten usar entidades de servicio dentro de una canalización. Use conexiones de servicio siempre que sea posible para conectarse de forma segura a los servicios sin pasar variables secretas directamente a compilaciones. Restringir las conexiones a casos de uso específicos. para obtener mayor información, consulte la sección de las Conexiones de servicio de alcance en este artículo.
- Autentíquese con recursos de Azure mediante la federación de identidades de carga de trabajo con un registro de aplicación o una identidad administrada en lugar de usar un registro de aplicación con un secreto.
Mientras una cuenta de servicio permanece en uso:
- Crear cuentas de servicio de uso único: Cada servicio debe tener su cuenta dedicada para minimizar el riesgo. Evite usar cuentas de usuario normales como cuentas de servicio .
- Identifique y deshabilite las cuentas de servicio que no se usan: Revise e identifique regularmente las cuentas que ya no se usan. Deshabilite las cuentas sin usar antes de considerar la eliminación.
- Restringir privilegios: Limitar los privilegios de la cuenta de servicio al mínimo necesario. Evite derechos de inicio de sesión interactivos para las cuentas de servicio.
- Usar identidades independientes para lectores de informes: Si utiliza cuentas de dominio para cuentas de servicio, emplee una identidad distinta para los lectores de informes para aislar los permisos y evitar accesos innecesarios.
- Usar cuentas locales para instalaciones de grupo de trabajo: Al instalar componentes en un grupo de trabajo, use cuentas locales para cuentas de usuario. Evite las cuentas de dominio en este escenario.
- Supervisión de la actividad de la cuenta de servicio: Implementar auditoría y crear flujos de auditoría para supervisar la actividad de la cuenta de servicio.
Conexiones de servicio de ámbito
Para garantizar un acceso seguro y eficaz a los recursos de Azure, debe definir correctamente el ámbito de las conexiones de servicio. Las conexiones de servicio permiten a Azure DevOps conectarse a servicios y recursos externos y, al definir el ámbito de estas conexiones, puede limitar el acceso solo a los recursos necesarios y reducir el riesgo de acceso no autorizado.
- Limite el acceso: Limite el acceso al determinar el alcance de las conexiones de servicio a recursos y grupos específicos de su Administrador de Recursos de Azure. No conceda derechos de colaborador amplios en toda la suscripción de Azure.
- Use el Administrador de los Recursos de Azure: Autentique con los recursos de Azure mediante la federación de identidades de carga de trabajo con un registro de aplicación o una identidad administrada en lugar de usar el registro de aplicación con un secreto. Para más información, consulte Creación de una conexión de servicio de Azure Resource Manager que usa la federación de identidades de carga de trabajo.
- Alcance de los grupos de recursos: Asegúrese de que los grupos de recursos contienen únicamente las Máquinas Virtuales (VM) o los recursos necesarios para el proceso de compilación.
- Evitar conexiones de servicio clásicas: Optar por conexiones de servicio modernas de Azure Resource Manager en lugar de las clásicas, que carecen de opciones de ámbito.
- Use las cuentas de servicio del equipo específicas para un propósito: Autentique las conexiones del servicio usando cuentas del servicio del equipo específicas para mantener la seguridad y el control.
Para más información, consulte Tipos de conexión de servicio comunes.
Revisión de eventos de auditoría
La auditoría se puede usar para realizar un seguimiento de las acciones del usuario, los cambios de permisos y los patrones de uso dentro de la organización. Use estas herramientas para identificar y solucionar posibles incidentes de seguridad rápidamente.
- Habilitar la auditoría: Realice un seguimiento y vea los eventos relacionados con las acciones del usuario, los permisos, los cambios y los incidentes de seguridad.
- Revise periódicamente los registros de auditoría y los flujos: Revise periódicamente los registros de auditoría para supervisar las actividades del usuario y detectar cualquier comportamiento sospechoso. Busca patrones de uso inesperados, especialmente por parte de los administradores y otros usuarios. Esta acción ayuda a identificar posibles infracciones de seguridad y a tomar medidas correctivas. Obtenga más información sobre los eventos de auditoría que realizamos.
- Configurar alertas de seguridad: Configurar alertas para notificarle cualquier incidente de seguridad o infracciones de directiva. Esta acción garantiza una respuesta oportuna a posibles amenazas.
Asegura tus servicios
Para garantizar la seguridad e integridad de los servicios en Azure DevOps, implemente medidas de seguridad para cada servicio. Estas medidas incluyen la configuración de permisos, la administración del acceso y el uso de características de seguridad específicas de cada servicio.
- Secure Azure Boards: Protege tus datos de seguimiento del trabajo estableciendo permisos adecuados y gestionando los niveles de acceso.
- Proteja Azure Repos: Garantice la protección de sus repositorios de código mediante la configuración de los ajustes de Git, los permisos de ramas y las políticas.
-
Secure Azure Pipelines: Proteger los procesos de CI/CD mediante la configuración de permisos, el uso de plantillas de seguridad y la protección de agentes y contenedores.
- Aprenda sobre la seguridad de Azure Pipelines
- Agregar usuarios a Azure Pipelines
- Usar plantillas para la seguridad
- Asegura agentes, proyectos y contenedores
- Acceso seguro a los repositorios de Azure desde las canalizaciones
- Asegurar recursos de canalizaciones
- Determine su enfoque para proteger las canalizaciones YAML
- Proteja los secretos en Azure Pipelines
- planes de prueba de Azure seguros: Asegúrese de que el equipo tenga el acceso adecuado para administrar y ejecutar planes de prueba de forma eficaz.
- Artefactos de Azure Seguros: Administre el acceso a sus paquetes y controle quién puede interactuar con ellos.
Automatización del examen de seguridad
Supervise si hay vulnerabilidades de código y secretos con las siguientes herramientas de seguridad automatizadas creadas por nuestros equipos asociados:
- Utilizar el escaneo y análisis de código: Utilizar herramientas como Microsoft Defender para examinar el código en busca de vulnerabilidades, secretos y configuraciones incorrectas. Esta acción ayuda a identificar y corregir problemas de seguridad al principio del proceso de desarrollo.
- Usar el analizador de credenciales de Azure DevOps (CredScan) para GitHub: Cuando se usa una identidad administrada no es una opción, asegúrese de que las credenciales se almacenan en ubicaciones seguras, como Azure Key Vault, en lugar de insertarlas en los archivos de código y configuración. Implemente El analizador de credenciales de Azure DevOps para identificar las credenciales en el código. Para obtener más información, consulte Introducción a CredScan.
- Usar el escaneo de secretos nativos para GitHub: Cuando usar una identidad administrada no es una opción, asegúrese de que los secretos se almacenen en ubicaciones seguras, como Azure Key Vault, en lugar de integrarlos en los archivos de código y configuración. Use la característica de análisis de secretos nativos para identificar secretos dentro del código. Para obtener mayor información, consulte Acerca del escaneo secreto.
Para obtener mayor información, consulte la Descripción general de la seguridad avanzada de GitHub.