Cloud Build リソースへのアクセスの構成

デフォルトでは、プロジェクトとそのリソースにアクセスできるのは Google Cloud プロジェクトの作成者のみです。他のユーザーにアクセス権を付与するには、プロジェクトまたは特定の Cloud Build リソースに Identity and Access Management(IAM)ロールを付与します。

このページでは、Cloud Build リソースのアクセス制御を設定する方法について説明します。

始める前に

プロジェクトへのロールの付与

コンソール

  1. Google Cloud コンソールで IAM ページを開きます。

    [IAM] ページを開く

  2. プロジェクトを選択し、[続行] をクリックします。

  3. [アクセス権を付与] をクリックします。

  4. ユーザーまたはサービス アカウントのメールアドレスを入力します。

  5. プルダウン メニューから必要な役割を選択します。Cloud Build のロールは [Cloud Build] に表示されます。

  6. [保存] をクリックします。

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 バケットに保存するかに応じて、追加の権限が必要です。ビルドログの表示に必要な権限の詳細については、ビルドログの表示をご覧ください。

プロジェクトのロールの取り消し

コンソール

  1. Google Cloud コンソールで IAM ページを開きます。

    [IAM] ページを開く

  2. プロジェクトを選択し、[続行] をクリックします。

  3. 権限の表でプリンシパルのメール ID を探し、鉛筆アイコンをクリックします。

  4. 取り消すロールを削除します。

  5. [保存] をクリックします。

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

プロジェクトのロールの表示

コンソール

  1. Google Cloud コンソールで IAM ページを開きます。

    [IAM] ページを開く

  2. プロジェクトを選択し、[続行] をクリックします。

  3. [表示] で [ロール] をクリックします。

  4. 特定のロールを持つプリンシパルを表示するには、ロール名を展開します。

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 カスタムロールの作成と使用の手順については、カスタムロールの作成と管理をご覧ください。

次のステップ