このオプションは、公開 API またはウェブサイトの Cloud Run サービス向けです。
Cloud Run Invoker IAM ロールを allUsers
メンバータイプに割り当てると、認証を行わずにサービスを呼び出すことができます。
Cloud Run サービスで認証を構成するには、run.services.setIamPolicy
権限が必要です。この権限は、オーナーと Cloud Run 管理者の両方のロールに含まれています。ロールの一覧とそれに関連する権限については、Cloud Run IAM のロールをご覧ください。
コンソール UI
既存の Cloud Run サービスの場合:
Google Cloud コンソールに移動します。
公開するサービスの左側にあるチェックボックスをオンにします(サービス自体はクリックしないでください)。
右上の情報ペインで、[権限] タブをクリックします。情報ペインが表示されていない場合は、[情報パネルを表示] をクリックしてから [権限] をクリックします。
[プリンシパルを追加] をクリックします。
[新しいプリンシパル] フィールドに値 allUsers
を入力します。
[ロール] プルダウン メニューから Cloud Run 起動元ロールを選択します。
[保存] をクリックします。
このリソースを公開することの確認を求めるメッセージが表示されます。[一般公開アクセスを許可] をクリックして、サービスの IAM 設定に変更を適用します。
作成する新しいサービスの場合は、サービスを作成します。ただし、[認証] タブで [未認証の呼び出しを許可する] を選択します。これにより、サービスが一般公開されます。[認証が必要] を選択すると、サービスは非公開になります。
gcloud
サービスを一般公開するには、gcloud run services
コマンドを使用して、特別な allUsers
メンバータイプをサービスに追加し、roles/run.invoker
ロールを付与します。
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
サービスのデプロイ時に gcloud run deploy
コマンドを実行すると、サービスは一般公開されます。
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
次の内容で policy.yaml
という名前のファイルを作成します。
bindings:
- members:
- allUsers
role: roles/run.invoker
以下を使用して、既存の SERVICE に対する未認証の呼び出しを許可します。
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Cloud Run サービスを作成するには、既存の main.tf
ファイルに次の行を追加します。
roles/run.invoker
のサービス IAM バインディングを更新するには、Cloud Run サービスを参照する次のリソースを追加します。
このバインディングは、特定のロールに対してのみ有効です。サービス IAM ポリシー内のその他の IAM バインディングは保持されます。
ドメインで制限された共有
プロジェクトが組織のポリシーにおけるドメインで制限された共有制約の適用対象となっている場合は、公開サービスを作成できません。タグと条件付きポリシーを使用して、特定のサービスをこの制約から除外できます。詳細については、ドメインで制限された共有が適用される場合の公開 Cloud Run サービスの作成に関するブログ記事をご覧ください。