Gestión del acceso IAM para los recursos en la nube a los que accede la cadena de herramientas DevSecOps
IBM Cloud® Identity and Access Management (IAM) permite a los administradores asignar funciones específicas como espectador, editor, operador y administrador a usuarios e identidades de servicio. Esto define sus niveles de acceso a recursos como Continuous Delivery, Secrets Manager, Container Registry, Cloud Object Storage, así como a objetivos de despliegue como Kubernetes clusters y Code Engine.
En IBM Cloud DevSecOps pipelines, se requieren diferentes conjuntos de permisos IAM basados en el rol del actor. A grandes rasgos, las funciones en IBM Cloud DevSecOps pueden clasificarse en dos tipos principales:
-
Administradores de canalizaciones Estos roles son los responsables de gestionar y configurar los pipelines de DevSecOps, las cadenas de herramientas y los recursos asociados. Un administrador de pipelines necesita amplios permisos para configurar, gestionar y solucionar problemas de pipelines, incluidas las funciones de editor o administrador para recursos como Toolchain, Continuous Delivery, Container Registry y Secrets Manager. Esto les permite configurar canalizaciones, configurar integraciones de cadenas de herramientas, integrar servicios en la nube, integrar herramientas de seguridad.
-
Ejecutores de canalizaciones Estas funciones se encargan de ejecutar las canalizaciones de DevSecOps, las cadenas de herramientas y los recursos asociados. Un Pipeline Runner, que ejecuta pipelines, requiere permisos limitados centrados en ejecutar builds, desplegar aplicaciones y acceder a los recursos necesarios. El rol proporciona permisos limitados como Operador, Escritor o Lector, permitiéndoles interactuar con los servicios necesarios (por ejemplo, Kubernetes, Code Engine, Cloud Object Storage ) sin modificar configuraciones críticas.
El acceso a los conductos y recursos de DevSecOps puede concederse con dos enfoques principales.
- Acceso Enfoque basado en grupos
- Enfoque basado en la identificación del servicio
Ambos métodos admiten la gestión segura del acceso en IBM Cloud. Las claves API asignadas a grupos de acceso son ideales para la gestión centralizada de roles, mientras que las claves API de ID de servicio ofrecen una forma más flexible y segura de autenticar flujos de trabajo automatizados de DevSecOps.
Acceso Enfoque basado en grupos
Este enfoque consiste en asignar usuarios a grupos de acceso, que son servicios con funciones y permisos predefinidos. Mediante el uso de grupos de acceso, los administradores pueden gestionar los permisos de forma centralizada, garantizando la coherencia y la escalabilidad entre varios usuarios. Este método simplifica la gestión de accesos, ya que cualquier cambio en un grupo de acceso se aplica automáticamente a todos los usuarios. Las claves API creadas por los usuarios dentro del grupo de acceso heredan automáticamente los permisos asignados.
A continuación se muestra una tabla en la que se describen los distintos conjuntos de permisos necesarios para la función de administrador de canalizaciones:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IAM Identity Service | Creador de la clave API de usuario, Creador del ID de servicio, Operador | |
| Gestión de usuarios | Editor | |
| Servicio de grupos de acceso de IAM | Editor | |
| Grupo de recursos | Visor | |
| IBM Cloud Cadena de herramientas | Editor | |
| Continuous Delivery | Editor | |
| Secrets Manager | Gestor, Administrador | Se requiere el rol de Administrador para crear una nueva instancia de Secret Manager y crear la autorización. El rol de Manager es necesario para crear grupos secretos en la instancia Secret Manager. |
| Cloud Object Storage | Escritora, editora | |
| Container Registry | Gestor | Se requiere el rol de administrador para crear un espacio de nombres en Container Registry |
A continuación se muestra una tabla con los distintos conjuntos de permisos necesarios para la función Pipeline Runner:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| Grupo de recursos | Visor | |
| IBM Cloud Cadena de herramientas | Operador de tuberías | Se requiere la función de operador para poner en marcha los subductos |
| Secrets Manager | Lector | La función de lector es necesaria para ver los metadatos de los secretos |
| Cloud Object Storage | Escritor de objetos, lector | |
| Container Registry | Lector, Escritor | La función de administrador es necesaria para crear un espacio de nombres en Container Registry, si aún no existe |
Basado en el destino de despliegue como IBM Cloud Kubernetes Service (IKS) o IBM Cloud Code Engine, se requieren diferentes permisos IAM para los Administradores de Pipeline y los Ejecutores de Pipeline.
A continuación se muestra una tabla en la que se describen los distintos conjuntos de permisos necesarios para la función de administrador de canalizaciones:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Director, Editor | |
| Code Engine | Director, Editor |
A continuación se muestra una tabla con los distintos conjuntos de permisos necesarios para la función Pipeline Runner:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Escritor, Operador | |
| Code Engine | Escritor, Operador |
Enfoque basado en la identificación del servicio
Los Service ID son identidades no humanas que se utilizan para autenticar y autorizar procesos automatizados, como los pipelines de DevSecOps. Las claves API de ID de servicio conceden permisos específicos a los conductos o servicios sin vincularlos a una cuenta de usuario individual. Este planteamiento mejora la seguridad al garantizar que los conductos funcionen sólo con los permisos necesarios, lo que reduce el riesgo de accesos no autorizados al tiempo que permite una integración perfecta con los servicios de IBM Cloud.
A continuación se muestra una tabla en la que se describen los distintos conjuntos de permisos necesarios para la función de administrador de canalizaciones:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IAM Identity Service | Creador de la clave API de usuario, Creador del ID de servicio, Operador | |
| Gestión de usuarios | Editor | |
| Servicio de grupos de acceso de IAM | Editor | |
| Grupo de recursos | Administrador | |
| IBM Cloud Cadena de herramientas | Administrador | |
| Continuous Delivery | Editor | |
| Secrets Manager | Gestor, Administrador | Se requiere el rol de Administrador para crear una nueva instancia de Secret Manager y crear la autorización. El rol de Manager es necesario para crear grupos secretos en la instancia Secret Manager. |
| Cloud Object Storage | Escritor, Administrador | |
| Container Registry | Gestor | Se requiere el rol de administrador para crear un espacio de nombres en Container Registry |
A continuación se muestra una tabla con los distintos conjuntos de permisos necesarios para la función Pipeline Runner:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| Grupo de recursos | Visor | |
| IBM Cloud Cadena de herramientas | PipelineRunner, Operador | Se requiere la función de operador para poner en marcha los subductos |
| Secrets Manager | Lector | La función de lector es necesaria para ver los metadatos de los secretos |
| Cloud Object Storage | Escritor de objetos, lector | |
| Container Registry | Lector, Escritor | La función de administrador es necesaria para crear un espacio de nombres en Container Registry, si aún no existe |
A continuación se muestra una tabla en la que se describen los distintos permisos de IAM necesarios para los administradores y los gestores de canalizaciones, en función del destino de despliegue como IBM Cloud Kubernetes Service (IKS) o IBM Cloud Code Engine:
A continuación se muestra una tabla en la que se describen los distintos conjuntos de permisos necesarios para la función de administrador de canalizaciones:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Gestor, Administrador | |
| Code Engine | Gestor, Administrador |
A continuación se muestra una tabla con los distintos conjuntos de permisos necesarios para la función Pipeline Runner:
| Recurso / Servicio | Permisos de IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Escritor, Operador | |
| Code Engine | Escritor, Operador |