DevSecOps ツールチェーンによってアクセスされるクラウドリソースの IAM アクセスを管理する

IBM Cloud® Identity and Access Management (IAM)は、管理者がユーザーやサービスIDにビューアー、エディター、オペレーター、アドミニストレーターなどの特定のロールを割り当てることを可能にします。 これは、 Continuous Delivery、 Secrets Manager、 Container Registry、 Cloud Object Storage などのリソースや、 Kubernetes クラスター、 Code Engine などのデプロイメントターゲットへのアクセスレベルを定義する。

IBM Cloud DevSecOps パイプラインでは、アクターの役割に応じて、異なるIAMパーミッションのセットが要求される。 IBM Cloud DevSecOps パイプラインにおける役割は、大きく2種類に分類できる:

  • パイプライン管理者 これらのロールは、 DevSecOps パイプライン、ツールチェーン、および関連リソースの管理と設定を担当する。 パイプライン管理者は、Toolchain、 Continuous Delivery、 Container Registry、 Secrets Manager などのリソースの編集者または管理者の役割を含め、パイプラインの設定、管理、トラブルシューティングを行うための幅広い権限が必要です。 これにより、パイプラインの構成、ツールチェーンの統合の構成、クラウドサービスの統合、セキュリティツールの統合が可能になる。

  • パイプラインランナー これらのロールは、 DevSecOps パイプライン、ツールチェーン、および関連リソースの実行を担当する。 パイプラインを実行するパイプラインランナーには、ビルドの実行、アプリケーションのデプロイ、必要なリソースへのアクセスに焦点を当てた限定的なパーミッションが必要です。 このロールは、オペレーター、ライター、読者のような限定された権限を提供し、重要な設定を変更することなく、必要なサービス(例えば、 Kubernetes、 Code Engine、 Cloud Object Storage )とやりとりできるようにする。

DevSecOps パイプラインとリソースへのアクセスは、主に2つのアプローチで許可される。

  • アクセス・グループ・ベースのアプローチ
  • サービスIDに基づくアプローチ

両方の方法とも、 IBM Cloud におけるセキュアなアクセス管理をサポートします。APIキーをアクセスグループにマッピングする方式は、集中化されたロール管理に最適です。一方、サービスID APIキーは、自動化された DevSecOps ワークフローを認証する、より柔軟で安全な方法を提供します。

アクセス・グループ・ベースのアプローチ

このアプローチでは、あらかじめ定義された役割と権限を持つサービスであるアクセス・グループにユーザーを割り当てる。 アクセスグループを使用することで、管理者は権限を一元管理し、複数のユーザー間で一貫性と拡張性を確保することができます。 この方法では、アクセスグループへの変更が自動的に全ユーザーに適用されるため、アクセス管理が簡素化されます。 アクセスグループ内のユーザーによって作成されたAPIキーは、割り当てられた権限を自動的に継承します。

以下は、 パイプライン管理者ロールに必要なさまざまな権限セットの概要を示す表です:

リソース/サービス IAM 権限 ノード
IAM Identity Service ユーザーAPIキー作成者、サービスID作成者、オペレーター
ユーザー管理 エディター
IAM アクセス・グループ・サービス エディター
リソース・グループ ビューアー
IBM Cloud ツールチェーン エディター
Continuous Delivery エディター
Secrets Manager マネージャー、管理者 新しいシークレットマネージャインスタンスを作成し、権限を作成するには、 管理者ロールが必要です。 シークレットマネージャインスタンスでシークレットグループを作成するには、 マネージャロールが必要です。
Cloud Object Storage ライター、編集者
Container Registry マネージャー で名前空間を作成するには、 Manager ロールが必要です。 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である。 サービスID APIキーは、個々のユーザーアカウントに結びつけることなく、パイプラインやサービスに特定の権限を付与します。 このアプローチでは、パイプラインが必要な権限のみで動作するようにすることでセキュリティを強化し、不正アクセスのリスクを低減すると同時に、 IBM Cloud サービスとのシームレスな統合を可能にする。

以下は、 パイプライン管理者ロールに必要なさまざまな権限セットの概要を示す表です:

リソース/サービス IAM 権限 ノード
IAM Identity Service ユーザーAPIキー作成者、サービスID作成者、オペレーター
ユーザー管理 エディター
IAM アクセス・グループ・サービス エディター
リソース・グループ 管理者
IBM Cloud ツールチェーン 管理者
Continuous Delivery エディター
Secrets Manager マネージャー、管理者 新しいシークレットマネージャインスタンスを作成し、権限を作成するには、 管理者ロールが必要です。 シークレットマネージャインスタンスでシークレットグループを作成するには、 マネージャロールが必要です。
Cloud Object Storage ライター、管理者
Container Registry マネージャー で名前空間を作成するには、 Manager ロールが必要です。 Container Registry

以下は、 Pipeline Runner ロールに必要なさまざまなパーミッションの概要を示した表です:

リソース/サービス IAM 権限 ノード
リソース・グループ ビューアー
IBM Cloud ツールチェーン PipelineRunner, オペレーター サブパイプラインの立ち上げにはオペレーターの役割が必要
Secrets Manager リーダー シークレット・メタデータを閲覧するには、リーダー・ ロールが必要です
Cloud Object Storage オブジェクトライター、リーダー
Container Registry 読者、作家 Container Registry に名前空間を作成するには、 Manager ロールが必要です

以下は、デプロイメントターゲット( IBM Cloud Kubernetes Service (IKS)または IBM Cloud Code Engine )に基づいて、パイプライン管理者とパイプラインランナーに必要な異なるIAM権限の概要を示した表です:

以下は、 パイプライン管理者ロールに必要なさまざまな権限セットの概要を示す表です:

リソース/サービス IAM 権限 ノード
IBM Kubernetes Service マネージャー、管理者
Code Engine マネージャー、管理者

以下は、 Pipeline Runner ロールに必要なさまざまなパーミッションの概要を示した表です:

リソース/サービス IAM 権限 ノード
IBM Kubernetes Service ライター、オペレーター
Code Engine ライター、オペレーター