IAM のロールと権限

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

cloudbuild.builds.list

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

名前: roles/cloudbuild.builds.editor
タイトル: Cloud Build 編集者
Cloud Build のすべてを管理できる権限

リソース

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

名前: roles/cloudbuild.builds.approver
タイトル: Cloud Build 承認者
アクセスを提供して承認する、または

保留中のビルドを拒否する

cloudbuild.builds.approve

cloudbuild.builds.get

cloudbuild.builds.list

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

名前: 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

cloudbuild.integrations.list

resourcemanager.projects.get

resourcemanager.projects.list

名前:roles/cloudbuild.integrations.editor
タイトル: Cloud Build 統合編集者
Cloud Build の制御を編集する

ホスト接続

cloudbuild.integrations.get

cloudbuild.integrations.list

cloudbuild.integrations.update

resourcemanager.projects.get

resourcemanager.projects.list

名前:roles/cloudbuild.integrations.owner
タイトル: Cloud Build 統合オーナー
Cloud Build のすべてを管理できる権限

ホスト接続

cloudbuild.integrations.create

cloudbuild.integrations.delete

cloudbuild.integrations.get

cloudbuild.integrations.list

cloudbuild.integrations.update

compute.firewalls.create

compute.firewalls.get

compute.firewalls.list

compute.networks.get

compute.networks.updatePolicy

compute.regions.get

compute.subnetworks.get

compute.subnetworks.list

resourcemanager.projects.get

resourcemanager.projects.list

名前:roles/cloudbuild.connectionViewer
タイトル: Cloud Build 接続閲覧者
接続とリポジトリを表示して

管理できます

resourcemanager.projects.get

resourcemanager.projects.list

cloudbuild.connections.get

cloudbuild.connections.fetchLinkableRepositories

cloudbuild.connections.list

cloudbuild.connections.getIamPolicy

cloudbuild.repositories.get

cloudbuild.repositories.list

名前:roles/cloudbuild.connectionAdmin
タイトル: Cloud Build 接続管理者
接続とリポジトリを

管理できます

resourcemanager.projects.get

resourcemanager.projects.list

cloudbuild.connections.get

cloudbuild.connections.fetchLinkableRepositories

cloudbuild.connections.list

cloudbuild.connections.create

cloudbuild.connections.update

cloudbuild.connections.delete

cloudbuild.connections.getIamPolicy

cloudbuild.connections.setIamPolicy

cloudbuild.repositories.get

cloudbuild.repositories.list

cloudbuild.repositories.create

cloudbuild.repositories.delete

名前:roles/cloudbuild.readTokenAccessor
タイトル: Cloud Build 読み取り専用トークン アクセサー
接続とそのリポジトリを表示できます。

また、読み取り専用トークンにアクセスできます。

cloudbuild.connections.get

cloudbuild.repositories.get

cloudbuild.repositories.accessReadToken

名前:roles/cloudbuild.tokenAccessor
タイトル: Cloud Build トークン アクセサー
接続とそのリポジトリを表示できます。

また、読み取り専用トークンと読み取り / 書き込みトークンにアクセスできます。

cloudbuild.connections.get

cloudbuild.repositories.get

cloudbuild.repositories.accessReadToken

cloudbuild.repositories.accessReadWriteToken

名前: roles/cloudbuild.workerPoolOwner
タイトル: Cloud Build WorkerPool オーナー
プライベート プールの完全管理 cloudbuild.workerpools.create

cloudbuild.workerpools.delete

cloudbuild.workerpools.get

cloudbuild.workerpools.list

cloudbuild.workerpools.update

resourcemanager.projects.get

resourcemanager.projects.list

名前:roles/cloudbuild.workerPoolEditor
タイトル: Cloud Build WorkerPool 編集者
プライベート プールを更新する権限 cloudbuild.workerpools.get

cloudbuild.workerpools.list

cloudbuild.workerpools.update

resourcemanager.projects.get

resourcemanager.projects.list

名前: roles/cloudbuild.workerPoolViewer
タイトル: Cloud Build WorkerPool 閲覧者
プライベート プールを表示する権限 cloudbuild.workerpools.get

cloudbuild.workerpools.list

resourcemanager.projects.get

resourcemanager.projects.list

名前: roles/cloudbuild.workerPoolUser
タイトル: Cloud Build WorkerPool ユーザー
プライベート プールでビルドを実行する権限 cloudbuild.workerpools.use

上記の Cloud Build の事前定義ロールに加えて、基本閲覧者、編集者、オーナーのロールには Cloud Build に関連する権限も含まれています。ただし、最小権限のセキュリティ原則に準拠するように、事前定義されたロールを付与することをおすすめします。

次の表に、基本ロールと、それに含まれる Cloud Build IAM ロールを示します。

役割 含まれる役割
roles/viewer roles/cloudbuild.builds.viewerroles/cloudbuild.integrations.viewer
roles/editor roles/cloudbuild.builds.editorroles/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 バケットに保存するかに応じて、追加の権限が必要です。ビルドログの表示に必要な権限の詳細については、ビルドログの保存と表示をご覧ください。

次のステップ