デフォルトでは、プロジェクトとそのリソースにアクセスできるのは Google Cloud プロジェクトの作成者のみです。他のユーザーにアクセス権を付与するには、プロジェクトまたは特定の Cloud Build リソースに Identity and Access Management(IAM)ロールを付与します。
このページでは、Cloud Build リソースのアクセス制御を設定する方法について説明します。
始める前に
- IAM の基本コンセプトについて理解しておきます。
- Cloud Build のロールと権限について学習しておきます。
プロジェクトへのロールの付与
コンソール
Google Cloud コンソールで [IAM] ページを開きます。
プロジェクトを選択し、[続行] をクリックします。
[アクセス権を付与] をクリックします。
ユーザーまたはサービス アカウントのメールアドレスを入力します。
プルダウン メニューから必要な役割を選択します。Cloud Build のロールは [Cloud Build] に表示されます。
[保存] をクリックします。
gcloud
プリンシパルにロールを付与するには、add-iam-policy-binding
コマンドを実行します。
gcloud group add-iam-policy-binding resource \
--member=principal --role=role-id
ここで
group: 更新するリソースの gcloud CLI グループ。たとえば、プロジェクトや組織を使用できます。
resource: リソースの名前。
principal: プリンシパルの識別子。通常、principal-type:id の形式です。たとえば、user:my-user@example.com です。プリンシパル、メンバー、タイプの完全なリストについては、ポリシー バインディングのリファレンスをご覧ください。
role-id: 役割の名前。
たとえば、プロジェクト my-project
のユーザー my-user@example.com
に Cloud Build 閲覧者のロールを付与するには:
gcloud projects add-iam-policy-binding my-project \
--member=user:my-user@example.com --role=roles/cloudbuild.builds.viewer
gcloud コマンドの実行権限の付与
gcloud builds
コマンドを実行するには、cloudbuild.builds.viewer
ロールまたは cloudbuild.builds.editor
ロールのみを持つユーザーには serviceusage.services.use
権限も必要です。この権限をユーザーに付与するには、ユーザーに serviceusage.serviceUsageConsumer
ロールを付与します。
ロール / 編集者とロール / オーナーのロールを持つユーザーは、追加の serviceusage.services.use
権限なしで gcloud builds
コマンドを実行できます。
ビルドログを表示する権限
ビルドログを表示するには、ビルドログをデフォルトの Cloud Storage バケットに保存するか、ユーザーが指定した Cloud Storage バケットに保存するかに応じて、追加の権限が必要です。ビルドログの表示に必要な権限の詳細については、ビルドログの表示をご覧ください。
プロジェクトのロールの取り消し
コンソール
Google Cloud コンソールで [IAM] ページを開きます。
プロジェクトを選択し、[続行] をクリックします。
権限の表でプリンシパルのメール ID を探し、鉛筆アイコンをクリックします。
取り消すロールを削除します。
[保存] をクリックします。
gcloud
ユーザーからロールを取り消すには、remove-iam-policy-binding
コマンドを実行します。
gcloud group remove-iam-policy-binding resource \
--member=principal --role=role-id
ここで
group: 更新するリソースの gcloud CLI グループ。たとえば、プロジェクトや組織を使用できます。
resource: リソースの名前。
principal: プリンシパルの識別子。通常、principal-type:id の形式です。たとえば、user:my-user@example.com です。プリンシパル、メンバー、タイプの完全なリストについては、ポリシー バインディングのリファレンスをご覧ください。
role-id: 役割の名前。
たとえば、プロジェクト my-project
のユーザー my-user@example.com
から Cloud Build 閲覧者のロールを取り消すには、次のコマンドを使用します。
gcloud projects remove-iam-policy-binding my-project \
--member=user:my-user@example.com --role=roles/cloudbuild.builds.viewer
プロジェクトのロールの表示
コンソール
Google Cloud コンソールで [IAM] ページを開きます。
プロジェクトを選択し、[続行] をクリックします。
[表示] で [ロール] をクリックします。
特定のロールを持つプリンシパルを表示するには、ロール名を展開します。
gcloud
Google Cloud プロジェクトで特定のロールを付与されたすべてのユーザーを表示するには、次のコマンドを実行します。
gcloud projects get-iam-policy project-id \
--flatten="bindings[].members" \
--format="table(bindings.members)" \
--filter="bindings.role:role-id"
ここで
project-id はプロジェクト ID です。
role-id は、プリンシパルを表示するロールの名前です。
たとえば、プロジェクトで Google Cloud プロジェクト閲覧者のロールが付与されたすべてのプリンシパルを表示するには、次のコマンドを実行します。
gcloud projects get-iam-policy my-project \
--flatten="bindings[].members" \
--format="table(bindings.members)" \
--filter="bindings.role:roles/cloudbuild.builds.viewer"
IAM カスタム役割の作成
指定した権限のバンドルを含む独自のロールを定義する必要があるユーザーの向けに、IAM ではカスタムロールを用意しています。IAM カスタムロールの作成と使用の手順については、カスタムロールの作成と管理をご覧ください。
次のステップ
- Cloud Build サービス アカウントについて学習する。
- Cloud Build サービス アカウントへのアクセスを構成する方法を学習する。
- ビルドログの表示に必要な権限について確認する。