IAM によるアクセス管理

デフォルトでは、プロジェクトのオーナーと編集者のみがサービスの作成、更新、削除、呼び出しを行うことができます。また、プロジェクトのオーナーと Cloud Run 管理者のみが IAM ポリシーを変更できます(サービスを公開するなど)。詳しくは、Cloud Run IAM 役割をご覧ください。

これらの操作を他のユーザーまたはグループに許可するには、Cloud Identity and Access Management(IAM)を使用して、異なるメンバー役割を付与します。

個々のサービスに対するアクセスを制御する

サービスごとにアクセスを制御する場合は、サービスごとに IAM を使用します。

サービスを公開する

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. 公開するサービスを選択します。

  3. 右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。

  4. [メンバーを追加] フィールドに「allUsers」と入力します。

  5. [役割を選択] プルダウン メニューから [Cloud Run 起動元] 役割を選択します。

  6. [追加] をクリックします。

gcloud

特別な allUsers メンバータイプをサービスに追加し、roles/run.invoker 役割を付与すると、サービスを一般公開に設定できます。

  gcloud beta run services add-iam-policy-binding SERVICE_NAME \
    --member="allUsers" \
    --role="roles/run.invoker"

gcloud beta run deploy--allow-unauthenticated フラグを使用します。

gcloud beta run deploy [SERVICE_NAME] ... --allow-unauthenticated

以降のデプロイで --allow-unauthenticated フラグを使用すると、IAM ポリシーが変更されます。

新しいサービスを作成するときに、未認証アクセスを許可するかどうか確認されます。yes と答えると、サービスを一般公開にするため、上記のアクションが実行されます。no と答えると、サービスは非公開になります。

ドメインで制限された共有

プロジェクトが「ドメインで制限された共有」組織ポリシーの対象となっている場合、公開サービスを作成できません。この制限の影響を受けないフォルダにすべてのプロジェクトを作成し、既存のプロジェクトから削除することをおすすめします。

ユーザーを追加する

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. ユーザーの追加先であるサービスを選択します。

  3. 右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。

  4. [メンバーを追加] フィールドに、サービスにアクセスする必要がある ID を入力します。

  5. [役割を選択] プルダウン メニューから役割を選択します。選択した役割と付与する権限の簡単な説明がパネルに表示されます。

  6. [追加] をクリックします。

gcloud

gcloud beta run services add-iam-policy-binding コマンドを使用します。

gcloud beta run services add-iam-policy-binding SERVICE_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

SERVICE_NAME はサービス名、MEMBER_TYPE はメンバータイプ(user:email@domain.com など)、ROLE は役割です。

MEMBER_TYPE に使用可能な値については、Cloud IAM のコンセプト ページをご覧ください。ROLE で使用可能な値については、Cloud Run IAM 役割のリファレンス ページをご覧ください。

ユーザーを削除する

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. 削除対象のユーザーを含むサービスを選択します。

  3. 右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。

  4. 削除するユーザーを検索するか、ユーザーの役割を展開します。

  5. 役割内のメンバータイプの横にある [削除](ごみ箱)をクリックして、メンバーから役割を削除します。

gcloud

gcloud beta run services remove-iam-policy-binding コマンドを使用します。

  gcloud beta run services remove-iam-policy-binding SERVICE_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

SERVICE_NAME はサービス名、MEMBER_TYPE はメンバータイプ(user:email@domain.com など)、ROLE は役割です。

MEMBER_TYPE に使用可能な値については、Cloud IAM のコンセプト ページをご覧ください。ROLE で使用可能な値については、Cloud Run IAM 役割のリファレンス ページをご覧ください。

ユーザーを一括で追加または削除する

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. ユーザーの追加先であるサービス、または削除対象のユーザーを含むサービスを選択します。

  3. 右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。

ユーザーを追加する場合:

  1. [メンバーを追加] フィールドに、サービスにアクセスする必要がある複数の ID を入力します。

  2. [役割を選択] プルダウン メニューから役割を選択します。選択した役割と付与する権限の簡単な説明がパネルに表示されます。

  3. [追加] をクリックします。

ユーザーを削除する場合:

  1. 削除するユーザーを検索するか、ユーザーの役割を展開します。

  2. 役割内のメンバータイプの横にある [削除](ごみ箱)をクリックして、メンバーから役割を削除します。

gcloud

IAM ポリシーを作成する

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

gcloud beta run services set-iam-policy コマンドを使用します。

gcloud beta run services set-iam-policy SERVICE_NAME policy.json

MEMBER_TYPE に使用可能な値については、Cloud IAM のコンセプト ページをご覧ください。ROLE で使用可能な値については、Cloud Run IAM 役割のリファレンス ページをご覧ください。

ユーザーを表示する

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. 表示したいユーザーと役割を含むサービスを選択します。

  3. 右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。

  4. 付与された役割別にすべてのユーザーが表示されます。

gcloud

gcloud beta run services get-iam-policy コマンドを使用します。

gcloud beta run services get-iam-policy SERVICE_NAME

プロジェクト内のすべてのサービスに対するアクセスを制御する

プロジェクト内のすべてのサービスのメンバーに役割を付与する場合は、プロジェクト レベルの IAM を使用します。

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. プロジェクト全体の役割を割り当てるユーザーを探します。

  3. ユーザーの行の右側にある編集用鉛筆アイコンをクリックします。

  4. [別の役割を追加] をクリックして、目的の役割を選択します。

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

gcloud

gcloud projects add-iam-policy-binding コマンドを使用します。

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER_TYPE \
  --role=ROLE

MEMBER_TYPE はメンバータイプ(user:email@domain.com など)、ROLE は役割(roles/run.admin など)です。

次のステップ

保護したサービスでデベロッパー、サービス、エンドユーザーの認証を安全に行う方法を学習する。