管理 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 管道、工具鏈和相關資源。 執行管道的 Pipeline Runner 需要有限的權限,專注於執行建立、部署應用程式和存取必要的資源。 該角色提供操作員、寫者或讀者等有限權限,允許他們與必要的服務 (例如 Kubernetes, Code Engine, Cloud Object Storage ) 進行互動,而不會修改關鍵組態。
DevSecOps 管道和資源的存取權可透過兩種主要方式授予。
- 以存取群組為基礎的方法
- 以服務 ID 為基礎的方法
兩種方法皆支援在 IBM Cloud 中的安全存取管理,其中映射至存取群組的 API 金鑰最適合用於集中式角色管理,而服務 ID API 金鑰則提供更靈活且安全的方式,用於驗證自動化的 DevSecOps 工作流程。
以存取群組為基礎的方法
此方法涉及將使用者指派給存取群組,而存取群組是具有預先定義的角色和權限的服務。 透過使用存取群組,管理員可以集中管理權限,確保多個使用者之間的一致性和可擴展性。 這種方法簡化了存取管理,因為對存取群組的任何變更都會自動套用到所有使用者。 存取群組內的使用者所建立的 API 金鑰會自動繼承指定的權限。
以下表格概述了管道管理員角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IAM Identity Service | 使用者 API 金鑰建立者、服務 ID 建立者、操作員 | |
| 使用者管理 | 編輯者 | |
| IAM 存取群組服務 | 編輯者 | |
| 資源群組 | 檢視者 | |
| IBM Cloud 工具鏈 | 編輯者 | |
| Continuous Delivery | 編輯者 | |
| Secrets Manager | 經理、管理員 | 建立新的 Secret Manager Instance 和建立授權需要 Administrator 角色。 在 Secret Manager Instance 中建立秘密群組需要 Manager 角色。 |
| Cloud Object Storage | 作家、編輯 | |
| Container Registry | 管理員 | 在 Container Registry 中建立命名空間需要管理員角色 |
以下表格概述了 Pipeline Runner 角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| 資源群組 | 檢視者 | |
| IBM Cloud 工具鏈 | 管道運行員、操作員 | 需要操作員的角色來啟動子管道 |
| Secrets Manager | 讀者 | 檢視機密元資料需要讀者角色 |
| Cloud Object Storage | 物件寫入、讀取 | |
| Container Registry | 讀者、作家 | 如果 Container Registry 中尚未存在命名空間,則需要 Manager 角色來建立命名空間 |
根據部署目標為 IBM Cloud Kubernetes Service (IKS) 或 IBM Cloud Code Engine,Pipeline Administrators 和 Pipeline Runners 需要不同的 IAM 權限。
以下表格概述了管道管理員角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IBM Kubernetes Service | 經理、編輯 | |
| Code Engine | 經理、編輯 |
以下表格概述了 Pipeline Runner 角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IBM Kubernetes Service | 作家、操作員 | |
| Code Engine | 作家、操作員 |
以服務 ID 為基礎的方法
服務 ID 是非人類身分,用於驗證和授權自動化程序,例如 DevSecOps 管道。 服務 ID API 金鑰會授予管道或服務特定權限,而不會將其與個別使用者帳戶綁在一起。 此方法可確保管道僅在必要權限下運作,降低未經授權存取的風險,同時與 IBM Cloud 服務進行無縫整合,從而增強安全性。
以下表格概述了管道管理員角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IAM Identity Service | 使用者 API 金鑰建立者、服務 ID 建立者、操作員 | |
| 使用者管理 | 編輯者 | |
| IAM 存取群組服務 | 編輯者 | |
| 資源群組 | 管理者 | |
| IBM Cloud 工具鏈 | 管理者 | |
| Continuous Delivery | 編輯者 | |
| Secrets Manager | 經理、管理員 | 建立新的 Secret Manager Instance 和建立授權需要 Administrator 角色。 在 Secret Manager Instance 中建立秘密群組需要 Manager 角色。 |
| Cloud Object Storage | 作家、管理員 | |
| Container Registry | 管理員 | 在 Container Registry 中建立命名空間需要管理員角色 |
以下表格概述了 Pipeline Runner 角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| 資源群組 | 檢視者 | |
| IBM Cloud 工具鏈 | PipelineRunner, 操作員 | 需要操作員的角色來啟動子管道 |
| Secrets Manager | 讀者 | 檢視機密元資料需要讀者角色 |
| Cloud Object Storage | 物件寫入、讀取 | |
| Container Registry | 讀者、作家 | 如果 Container Registry 中尚未存在命名空間,則需要 Manager 角色來建立命名空間 |
以下表格概述了管道管理員和管道執行員所需的不同 IAM 權限,根據部署目標為 IBM Cloud Kubernetes Service (IKS) 或 IBM Cloud Code Engine:
以下表格概述了管道管理員角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IBM Kubernetes Service | 經理、管理員 | |
| Code Engine | 經理、管理員 |
以下表格概述了 Pipeline Runner 角色所需的不同權限集:
| 資源/服務 | IAM 權限 | 附註 |
|---|---|---|
| IBM Kubernetes Service | 作家、操作員 | |
| Code Engine | 作家、操作員 |