管理 DevSecOps 工具链访问云资源的 IAM 访问权限

IBM Cloud® Identity and Access Management (IAM) 使管理员能够为用户和服务身份分配特定角色,如查看器、编辑器、操作员和管理员。 这定义了他们对 Continuous Delivery, Secrets Manager, Container Registry, Cloud Object Storage 等资源以及 Kubernetes 集群和 Code Engine 等部署目标的访问级别。

在 IBM Cloud DevSecOps 管道中,根据参与者的角色需要不同的 IAM 权限集。 IBM Cloud DevSecOps 管道中的角色大致可分为两大类:

  • 管道管理员 这些角色负责管理和配置 DevSecOps 管道、工具链和相关资源。 管道管理员需要配置、管理和故障排除管道的广泛权限,包括工具链、Continuous Delivery、Container Registry 和 Secrets Manager 等资源的编辑器或管理员角色。 这使他们能够配置管道、配置工具链集成、集成云服务和集成安全工具。

  • 管道运行人员 这些角色负责执行 DevSecOps 管道、工具链和相关资源。 管道运行程序用于执行管道,需要有限的权限,主要用于运行构建、部署应用程序和访问必要的资源。 该角色提供有限的权限,如操作员、写入员或阅读器,允许他们与必要的服务(如 Kubernetes, Code Engine, Cloud Object Storage )进行交互,而无需修改关键配置。

访问 DevSecOps 管道和资源主要有两种方式。

  • 以小组为基础的访问方式
  • 基于服务标识的方法

这两种方法均支持在 IBM Cloud 中实现安全访问管理:API密钥与访问组的映射适用于集中化角色管理,而服务ID API密钥则为自动化 DevSecOps 工作流的身份验证提供了更灵活且安全的方式。

以小组为基础的访问方式

这种方法涉及将用户分配到访问组,即具有预定义角色和权限的服务。 通过使用访问组,管理员可以集中管理权限,确保多个用户之间的一致性和可扩展性。 这种方法简化了访问管理,因为对访问组的任何更改都会自动应用于所有用户。 访问组内用户创建的 API 密钥会自动继承分配的权限。

下面的表格概述了管道管理员角色所需的不同权限:

资源/服务 IAM 权限 注释
IAM Identity Service 用户 API 密钥创建者、服务 ID 创建者、操作员
用户管理 编辑者
IAM 访问组服务 编辑者
资源组 查看者
IBM Cloud 工具链 编辑者
Continuous Delivery 编辑者
Secrets Manager 经理、管理员 创建新的 Secret Manager 实例和创建授权需要管理员角色。 在秘密管理器实例中创建秘密组需要使用管理器角色。
Cloud Object Storage 作家、编辑
Container Registry 管理者 在 Container Registry 中创建命名空间需要管理员角色

下面的表格概述了管道运行程序角色所需的不同权限:

资源/服务 IAM 权限 注释
资源组 查看者
IBM Cloud 工具链 管道工,操作员 需要操作员来启动副管道
Secrets Manager 读取者 查看机密元数据需要读者角色
Cloud Object Storage 物品作家、读者
Container Registry 读者、作家 在 Container Registry 中创建命名空间时,如果尚未存在命名空间,则需要管理员角色

根据部署目标是 IBM Cloud Kubernetes Service (IKS) 还是 IBM Cloud Code Engine,管道管理员和管道运行人员需要不同的 IAM 权限。

下面的表格概述了管道管理员角色所需的不同权限:

资源/服务 IAM 权限 注释
IBM Kubernetes Service 经理、编辑
Code Engine 经理、编辑

下面的表格概述了管道运行程序角色所需的不同权限:

资源/服务 IAM 权限 注释
IBM Kubernetes Service 作家、操作员
Code Engine 作家、操作员

基于服务标识的方法

服务 ID 是用于验证和授权自动流程(如 DevSecOps 管道)的非人类身份。 服务 ID API 密钥可授予管道或服务特定权限,而无需将其与单个用户账户绑定。 这种方法可确保管道仅在获得所需权限的情况下运行,降低未经授权访问的风险,同时实现与 IBM Cloud 服务的无缝集成,从而增强安全性。

下面的表格概述了管道管理员角色所需的不同权限:

资源/服务 IAM 权限 注释
IAM Identity Service 用户 API 密钥创建者、服务 ID 创建者、操作员
用户管理 编辑者
IAM 访问组服务 编辑者
资源组 管理员
IBM Cloud 工具链 管理员
Continuous Delivery 编辑者
Secrets Manager 经理、管理员 创建新的 Secret Manager 实例和创建授权需要管理员角色。 在秘密管理器实例中创建秘密组需要使用管理器角色。
Cloud Object Storage 作家、管理员
Container Registry 管理者 在 Container Registry 中创建命名空间需要管理员角色

下面的表格概述了管道运行程序角色所需的不同权限:

资源/服务 IAM 权限 注释
资源组 查看者
IBM Cloud 工具链 PipelineRunner, 操作员 需要操作员来启动副管道
Secrets Manager 读取者 查看机密元数据需要读者角色
Cloud Object Storage 物品作家、读者
Container Registry 读者、作家 在 Container Registry 中创建命名空间时,如果尚未存在命名空间,则需要管理员角色

下面的表格概述了管道管理员和管道运行人员所需的不同 IAM 权限,具体取决于部署目标是 IBM Cloud Kubernetes Service (IKS) 还是 IBM Cloud Code Engine:

下面的表格概述了管道管理员角色所需的不同权限:

资源/服务 IAM 权限 注释
IBM Kubernetes Service 经理、管理员
Code Engine 经理、管理员

下面的表格概述了管道运行程序角色所需的不同权限:

资源/服务 IAM 权限 注释
IBM Kubernetes Service 作家、操作员
Code Engine 作家、操作员