Cloud Build でのアクセス制御は、Identity and Access Management(IAM)を使用して制御します。IAM を使用すると、Google Cloud リソースに関する権限を作成し、管理できます。Cloud Build では、事前定義された IAM ロールのセットが用意されています。各ロールには、一連の権限が含まれています。これらのロールを使用すると、特定の Google Cloud リソースへのアクセスを細かく制限し、他のリソースへの不要なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみを付与できます。
このページでは、Cloud Build のロールと権限について説明します。
事前定義された Cloud Build ロール
IAM では、Cloud Build API のすべての API メソッドで、API リクエストを行う ID がリソースの使用に必要な権限を保持していることが要求されます。権限は、プリンシパル(ユーザー、グループ、またはサービス アカウント)にロールを付与するポリシーを設定することで付与されます。同じリソースのプリンシパルに複数のロールを付与できます。
次の表に、Cloud Build IAM のロールとその権限を示します。
役割 | 説明 | 権限 |
---|---|---|
名前: roles/cloudbuild.builds.viewer タイトル: Cloud Build 閲覧者 |
Cloud Build を表示できる権限 リソース |
cloudbuild.builds.get
|
名前: roles/cloudbuild.builds.editor タイトル: Cloud Build 編集者 |
Cloud Build のすべてを管理できる権限 リソース |
cloudbuild.builds.create
|
名前: roles/cloudbuild.builds.approver タイトル: Cloud Build 承認者 |
アクセスを提供して承認する、または 保留中のビルドを拒否する |
cloudbuild.builds.approve
|
名前: roles/cloudbuild.builds.builder タイトル: Cloud Build サービス アカウント |
プロジェクトで Cloud Build API を有効にすると、 プロジェクトに Cloud Build サービス アカウント が自動的に作成され、 このロールがプロジェクト内のリソース に付与されます。Cloud Build サービス アカウントは、 ビルドの実行時にアクションを実行するために必要な場合にのみ、 このロールを使用します。 |
各ロールで付与される 権限のリストについては、 Cloud Build サービス アカウントをご覧ください。 |
名前: roles/cloudbuild.integrations.viewer タイトル: Cloud Build 統合閲覧者 |
Cloud Build を表示できる権限 ホスト接続 |
cloudbuild.integrations.get
|
名前:roles/cloudbuild.integrations.editor タイトル: Cloud Build 統合編集者 |
Cloud Build の制御を編集する
ホスト接続 |
cloudbuild.integrations.get
|
名前:roles/cloudbuild.integrations.owner タイトル: Cloud Build 統合オーナー |
Cloud Build のすべてを管理できる権限 ホスト接続 |
cloudbuild.integrations.create
|
名前:roles/cloudbuild.connectionViewer タイトル: Cloud Build 接続閲覧者 |
接続とリポジトリを表示して 一覧にできます |
resourcemanager.projects.get
|
名前:roles/cloudbuild.connectionAdmin タイトル: Cloud Build 接続管理者 |
接続とリポジトリを 管理できます |
resourcemanager.projects.get
|
名前:roles/cloudbuild.readTokenAccessor タイトル: Cloud Build 読み取り専用トークン アクセサー |
接続とそのリポジトリを表示できます。
また、読み取り専用トークンにアクセスできます。 |
cloudbuild.connections.get
|
名前:roles/cloudbuild.tokenAccessor タイトル: Cloud Build トークン アクセサー |
接続とそのリポジトリを表示できます。
また、読み取り専用トークンと読み取り / 書き込みトークンにアクセスできます。 |
cloudbuild.connections.get
|
名前: roles/cloudbuild.workerPoolOwner タイトル: Cloud Build WorkerPool オーナー |
プライベート プールの完全管理 | cloudbuild.workerpools.create
|
名前:roles/cloudbuild.workerPoolEditor タイトル: Cloud Build WorkerPool 編集者 |
プライベート プールを更新する権限 | cloudbuild.workerpools.get
|
名前: roles/cloudbuild.workerPoolViewer タイトル: Cloud Build WorkerPool 閲覧者 |
プライベート プールを表示する権限 | cloudbuild.workerpools.get
|
名前: roles/cloudbuild.workerPoolUser タイトル: Cloud Build WorkerPool ユーザー |
プライベート プールでビルドを実行する権限 | cloudbuild.workerpools.use |
上記の Cloud Build の事前定義ロールに加えて、基本閲覧者、編集者、オーナーのロールには Cloud Build に関連する権限も含まれています。ただし、最小権限のセキュリティ原則に準拠するように、事前定義されたロールを付与することをおすすめします。
次の表に、基本ロールと、それに含まれる Cloud Build IAM ロールを示します。
役割 | 含まれる役割 |
---|---|
roles/viewer |
roles/cloudbuild.builds.viewer 、roles/cloudbuild.integrations.viewer |
roles/editor |
roles/cloudbuild.builds.editor 、roles/cloudbuild.integrations.editor |
roles/owner |
roles/cloudbuild.integrations.owner |
権限
次の表に、各メソッドを呼び出すために呼び出し元が持っている必要のある権限のリストを示します。
API メソッド | 必要な権限 | 役割のタイトル |
---|---|---|
builds.create() triggers.create() triggers.patch() triggers.delete() triggers.run() |
cloudbuild.builds.create |
Cloud Build 編集者 |
builds.cancel() |
cloudbuild.builds.update |
Cloud Build 編集者 |
builds.get() triggers.get() |
cloudbuild.builds.get |
Cloud Build 編集者、Cloud Build 閲覧者 |
builds.list() triggers.list() |
cloudbuild.builds.list |
Cloud Build 編集者、Cloud Build 閲覧者 |
ビルドログを表示する権限
ビルドログを表示するには、ビルドログをデフォルトの Cloud Storage バケットに保存するか、ユーザーが指定した Cloud Storage バケットに保存するかに応じて、追加の権限が必要です。ビルドログの表示に必要な権限の詳細については、ビルドログの保存と表示をご覧ください。
次のステップ
- Cloud Build サービス アカウントについて学習する。
- Cloud Build リソースへのアクセスを構成する方法を学習する。
- Cloud Build サービス アカウントのアクセス権を構成する方法を学習する。
- IAM について学習する。