Gestion de l'accès IAM pour les ressources en nuage auxquelles accèdent les chaînes d'outils DevSecOps

IBM Cloud® Identity and Access Management (IAM) permet aux administrateurs d'attribuer des rôles spécifiques tels que visualiseur, éditeur, opérateur et administrateur aux utilisateurs et aux identités de service. Cela définit leurs niveaux d'accès aux ressources telles que Continuous Delivery, Secrets Manager, Container Registry, Cloud Object Storage, ainsi qu'aux cibles de déploiement telles que les clusters Kubernetes et Code Engine.

Dans les pipelines IBM Cloud DevSecOps, différents ensembles d'autorisations IAM sont nécessaires en fonction du rôle de l'acteur. D'une manière générale, les rôles dans les pipelines IBM Cloud DevSecOps peuvent être classés en deux catégories principales :

  • Administrateurs de pipelines Ces rôles sont responsables de la gestion et de la configuration des pipelines DevSecOps, des chaînes d'outils et des ressources associées. Un administrateur de pipeline a besoin d'autorisations étendues pour configurer, gérer et dépanner les pipelines, y compris des rôles d'éditeur ou d'administrateur pour des ressources telles que Toolchain, Continuous Delivery, Container Registry, et Secrets Manager. Cela leur permet de configurer des pipelines, de configurer des intégrations de chaînes d'outils, d'intégrer des services en nuage, d'intégrer des outils de sécurité.

  • Exécutants de pipeline Ces rôles sont responsables de l'exécution des pipelines DevSecOps, des chaînes d'outils et des ressources associées. Un Pipeline Runner, qui exécute des pipelines, nécessite des autorisations limitées axées sur l'exécution de builds, le déploiement d'applications et l'accès aux ressources nécessaires. Le rôle fournit des autorisations limitées telles que celles d'opérateur, de rédacteur ou de lecteur, ce qui leur permet d'interagir avec les services nécessaires (par exemple, Kubernetes, Code Engine, Cloud Object Storage ) sans modifier les configurations critiques.

L'accès aux pipelines et aux ressources de DevSecOps peut être accordé selon deux approches principales.

  • Accès Approche par groupe
  • Approche basée sur l'identification du service

Les deux méthodes prennent en charge la gestion sécurisée des accès dans IBM Cloud. Les clés API associées à des groupes d'accès sont idéales pour la gestion centralisée des rôles, tandis que les clés API Service ID offrent un moyen plus flexible et plus sûr d'authentifier les workflows d' DevSecOps automatisés.

Accès Approche par groupe

Cette approche consiste à affecter les utilisateurs à des groupes d'accès, qui sont des services avec des rôles et des autorisations prédéfinis. En utilisant des groupes d'accès, les administrateurs peuvent gérer les autorisations de manière centralisée, ce qui garantit la cohérence et l'évolutivité pour plusieurs utilisateurs. Cette méthode simplifie la gestion des accès, car toute modification apportée à un groupe d'accès s'applique automatiquement à tous les utilisateurs. Les clés API créées par les utilisateurs du groupe d'accès héritent automatiquement des autorisations attribuées.

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle d' administrateur de pipeline :

Ressource / Service Autorisations IAM Remarques
IAM Identity Service Créateur de la clé API de l'utilisateur, créateur de l'ID de service, opérateur
Gestion des utilisateurs Editeur
Service des groupes d'accès IAM Editeur
Groupe de ressources Afficheur
IBM Cloud Chaîne d'outils Editeur
Continuous Delivery Editeur
Secrets Manager Responsable, Administrateur Le rôle d' administrateur est requis pour créer une nouvelle instance de Secret Manager et créer une autorisation. Le rôle de gestionnaire est nécessaire pour créer des groupes secrets dans l'instance de gestion des secrets.
Cloud Object Storage Rédacteur, éditeur
Container Registry Responsable Le rôle de gestionnaire est requis pour créer un espace de noms dans Container Registry

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle de gestionnaire de pipeline :

Ressource / Service Autorisations IAM Remarques
Groupe de ressources Afficheur
IBM Cloud Chaîne d'outils Conducteur de pipeline, opérateur Le rôle de l'opérateur est nécessaire pour lancer les sous-pipelines
Secrets Manager Lecteur Le rôle de lecteur est requis pour visualiser les métadonnées des secrets
Cloud Object Storage Rédacteur d'objets, lecteur
Container Registry Lecteur, écrivain Le rôle de gestionnaire est requis pour créer un espace de noms dans Container Registry, s'il n'en existe pas déjà un

En fonction de la cible de déploiement ( IBM Cloud Kubernetes Service (IKS) ou IBM Cloud Code Engine ), différentes autorisations IAM sont requises pour les administrateurs de pipeline et les exécutants de pipeline.

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle d' administrateur de pipeline :

Ressource / Service Autorisations IAM Remarques
IBM Kubernetes Service Gestionnaire, rédacteur
Code Engine Gestionnaire, rédacteur

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle de gestionnaire de pipeline :

Ressource / Service Autorisations IAM Remarques
IBM Kubernetes Service Rédacteur, Opérateur
Code Engine Rédacteur, Opérateur

Approche basée sur l'identification du service

Les identifiants de service sont des identités non humaines utilisées pour authentifier et autoriser des processus automatisés, tels que les pipelines DevSecOps. Les clés API d'identification de service accordent des autorisations spécifiques aux pipelines ou aux services sans les lier à un compte d'utilisateur individuel. Cette approche renforce la sécurité en garantissant que les pipelines ne fonctionnent qu'avec les autorisations requises, ce qui réduit le risque d'accès non autorisé tout en permettant une intégration transparente avec les services IBM Cloud.

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle d' administrateur de pipeline :

Ressource / Service Autorisations IAM Remarques
IAM Identity Service Créateur de la clé API de l'utilisateur, créateur de l'ID de service, opérateur
Gestion des utilisateurs Editeur
Service des groupes d'accès IAM Editeur
Groupe de ressources Administrateur
IBM Cloud Chaîne d'outils Administrateur
Continuous Delivery Editeur
Secrets Manager Responsable, Administrateur Le rôle d' administrateur est requis pour créer une nouvelle instance de Secret Manager et créer une autorisation. Le rôle de gestionnaire est nécessaire pour créer des groupes secrets dans l'instance de gestion des secrets.
Cloud Object Storage Rédacteur, administrateur
Container Registry Responsable Le rôle de gestionnaire est requis pour créer un espace de noms dans Container Registry

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle de gestionnaire de pipeline :

Ressource / Service Autorisations IAM Remarques
Groupe de ressources Afficheur
IBM Cloud Chaîne d'outils PipelineRunner, Opérateur Le rôle de l'opérateur est nécessaire pour lancer les sous-pipelines
Secrets Manager Lecteur Le rôle de lecteur est requis pour visualiser les métadonnées des secrets
Cloud Object Storage Rédacteur d'objets, lecteur
Container Registry Lecteur, écrivain Le rôle de gestionnaire est requis pour créer un espace de noms dans Container Registry, s'il n'en existe pas déjà un

Voici un tableau décrivant les différentes autorisations IAM requises pour les administrateurs et les exécutants de pipeline, en fonction de la cible de déploiement ( IBM Cloud Kubernetes Service (IKS) ou IBM Cloud Code Engine ):

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle d' administrateur de pipeline :

Ressource / Service Autorisations IAM Remarques
IBM Kubernetes Service Responsable, Administrateur
Code Engine Responsable, Administrateur

Voici un tableau décrivant les différents ensembles d'autorisations requises pour le rôle de gestionnaire de pipeline :

Ressource / Service Autorisations IAM Remarques
IBM Kubernetes Service Rédacteur, Opérateur
Code Engine Rédacteur, Opérateur