IBM Cloud Docs
Managing IAM access for cloud resources accessed by the DevSecOps Toolchains

Managing IAM access for cloud resources accessed by the DevSecOps Toolchains

IBM Cloud® Identity and Access Management (IAM) enables administrators to assign specific roles such as Viewer, Editor, Operator, and Administrator to users and service identities. This defines their access levels to resources like Continuous Delivery, Secrets Manager, Container Registry, Cloud Object Storage, Security and Compliance Center, as well as deployment targets such as Kubernetes clusters and Code Engine. In IBM Cloud DevSecOps pipelines, different sets of IAM permissions are required based on the actor's role. Broadly, roles in IBM Cloud DevSecOps pipelines can be categorized into two main types:

  • Pipeline Administrators These roles are responsible for managing and configuring the DevSecOps pipelines, toolchains, and associated resources. A Pipeline Administrator needs broad permissions to configure, manage, and troubleshoot pipelines, including Editor or Administrator roles for resources like Toolchain, Continuous Delivery, Container Registry, and Secrets Manager. This allows them to configure pipelines, configure toolchain integrations, integrate cloud services, integrate security tools.

  • Pipeline Runners These roles are responsible for executing the DevSecOps pipelines, toolchains, and associated resources. A Pipeline Runner, which executes pipelines, requires limited permissions focused on running builds, deploying applications, and accessing necessary resources. The role provides limited permissions like Operator, Writer, or Reader, allowing them to interact with the necessary services (e.g., Kubernetes, Code Engine, Cloud Object Storage) without modifying critical configurations.

The access to DevSecOps pipelines and resources can be granted in two primary approaches. - Access Group based approach - Service ID based approach

Both methods support secure access management in IBM Cloud, with API keys mapped to access groups being ideal for centralized role management, while Service ID API keys offer a more flexible and secure way to authenticate automated DevSecOps workflows

Access Group based approach

This approach involves assigning users to access groups, which are services with predefined roles and permissions. By using access groups, administrators can centrally manage permissions, ensuring consistency and scalability across multiple users. This method simplifies access management, as any changes to an access group automatically apply to all users. The API keys created by users within the access group automatically inherit the assigned permissions.

Here is a table outlining the different sets of permissions required for Pipeline Administrator role:

Resource / Service IAM Permissions Notes
IAM Identity Service User API key creator, Service ID creator, Operator
User Management Editor
IAM Access Groups Service Editor
Resource Group Viewer
IBM Cloud Toolchain Editor
Continuous Delivery Editor
Secrets Manager Manager, Administrator Administrator role is required to create new Secret Manager Instance and create authorization. Manager role is required to create secret groups in Secret Manager Instance.
Cloud Object Storage Writer, Editor
Container Registry Manager Manager role is required to create namespace in Container Registry

Here is a table outlining the different sets of permissions required for Pipeline Runner role:

Resource / Service IAM Permissions Notes
Resource Group Viewer
IBM Cloud Toolchain Pipeline Runner, Operator Operator role is required to launch the sub-pipelines
Secrets Manager Reader Reader role is required to view secrets metadata
Cloud Object Storage Object Writer, Reader
Container Registry Reader, Writer Manager role is required to create namespace in Container Registry, if one does not exist already

Based on the deployment target as IBM Cloud Kubernetes Service (IKS) or IBM Cloud Code Engine, different IAM permissions required for Pipeline Administrators and Pipeline Runners.

Here is a table outlining the different sets of permissions required for Pipeline Administrator role:

Resource / Service IAM Permissions Notes
IBM Kubernetes Service Manager, Editor
Code Engine Manager, Editor

Here is a table outlining the different sets of permissions required for Pipeline Runner role:

Resource / Service IAM Permissions Notes
IBM Kubernetes Service Writer, Operator
Code Engine Writer, Operator

Service ID based approach

Service IDs are non-human identities used to authenticate and authorize automated processes, such as DevSecOps pipelines. Service ID API keys grant specific permissions to pipelines or services without tying them to an individual user account. This approach enhances security by ensuring that pipelines operate with only the required permissions, reducing the risk of unauthorized access while enabling seamless integration with IBM Cloud services.

Here is a table outlining the different sets of permissions required for Pipeline Administrator role:

Resource / Service IAM Permissions Notes
IAM Identity Service User API key creator, Service ID creator, Operator
User Management Editor
IAM Access Groups Service Editor
Resource Group Administrator
IBM Cloud Toolchain Administrator
Continuous Delivery Editor
Secrets Manager Manager, Administrator Administrator role is required to create new Secret Manager Instance and create authorization. Manager role is required to create secret groups in Secret Manager Instance.
Cloud Object Storage Writer, Administrator
Container Registry Manager Manager role is required to create namespace in Container Registry

Here is a table outlining the different sets of permissions required for Pipeline Runner role:

Resource / Service IAM Permissions Notes
Resource Group Viewer
IBM Cloud Toolchain PipelineRunner, Operator Operator role is required to launch the sub-pipelines
Secrets Manager Reader Reader role is required to view secrets metadata
Cloud Object Storage Object Writer, Reader
Container Registry Reader, Writer Manager role is required to create namespace in Container Registry, if one does not exist already

Here is a table outlining the different IAM permissions required for Pipeline Administrators and Pipeline Runners, based on the deployment target as IBM Cloud Kubernetes Service (IKS) or IBM Cloud Code Engine:

Here is a table outlining the different sets of permissions required for Pipeline Administrator role:

Resource / Service IAM Permissions Notes
IBM Kubernetes Service Manager, Administrator
Code Engine Manager, Administrator

Here is a table outlining the different sets of permissions required for Pipeline Runner role:

Resource / Service IAM Permissions Notes
IBM Kubernetes Service Writer, Operator
Code Engine Writer, Operator