Cloud Run で Binary Authorization を有効にする

このガイドでは、Binary Authorization を設定してポリシーベースの Cloud Run サービスとジョブのデプロイを適用する方法について説明します。

始める前に

次の手順で Cloud Run を設定し、API を有効にします。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

既存の Cloud Run サービスで Binary Authorization を有効にする

既存のサービスで Binary Authorization の適用を有効にできます。有効にした後で適用を有効にするには、リビジョンをデプロイするか、サービス トラフィックを更新する必要があります。

既存のサービスで Binary Authorization の適用を有効にするには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. Google Cloud コンソールの [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. サービスをクリックします。

  3. [セキュリティ] タブをクリックします。

  4. Binary Authorization の適用をサービスで有効にするには、[有効にする] をクリックします。

  5. 省略可: Binary Authorization ポリシーを構成するには、[ポリシーを構成] をクリックします。

gcloud

サービスで Binary Authorization を有効にしてデプロイします。

gcloud run services update SERVICE_NAME --binary-authorization=default

SERVICE_NAME は、サービスの名前に置き換えます。

YAML

  1. 新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. run.googleapis.com/binary-authorization: アノテーションを次のように変更します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/binary-authorization: POLICY
      name: SERVICE
    spec:
      template:

    次のように置き換えます。

    • SERVICE: Cloud Run の名前
    • POLICY: default に設定します。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

gcloud run services replace service.yaml

既存の Cloud Run ジョブで Binary Authorization を有効にする

既存のジョブで Binary Authorization の適用を有効にするには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで Cloud Run の [ジョブ] ページに移動します。

    Cloud Run に移動

  2. ジョブをクリックしてジョブの詳細を開きます。

  3. [構成] タブをクリックします。

  4. [Binary Authorization] で、ポリシーリストからポリシーを選択します。

  5. [適用] をクリックして、ジョブで Binary Authorization の適用を有効にします。

  6. 省略可: Binary Authorization ポリシーを構成するには、[ポリシーを構成] をクリックします。

gcloud

ジョブで Binary Authorization を有効にします。

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

次のように置き換えます。

  • JOB_NAME: ジョブの名前。
  • POLICY: 適用するポリシー。デフォルト ポリシーを使用するには、値 default を使用します。

組織のポリシーを構成して、Cloud Run の Binary Authorization を必須にすることをおすすめします。このポリシーが構成されていない場合、Cloud Run デベロッパーが Binary Authorization を無効にできます。

ポリシーを表示する

ポリシーを表示するには、[ポリシーを表示] をクリックします。

詳細については、Binary Authorization ポリシーの構成をご覧ください。

サービスまたはジョブのデプロイエラー

Binary Authorization ポリシー違反によってサービスまたはジョブのデプロイに失敗すると、次のようなエラーが表示されることがあります。

Revision REVISION_NAME uses an unauthorized container image.
Container image IMAGE_NAME is not authorized by policy.

エラーには、イメージがポリシー違反となった理由に関する情報も含まれます。この場合、ブレークグラスを使用してポリシーの適用を回避し、イメージをデプロイできます。

新しいサービスで Binary Authorization を有効にする

新しいサービスで Binary Authorization を有効にするには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. [サービスを作成] をクリックします。

  3. [サービスの作成] フォームで、次の操作を行います。

    1. 開発プラットフォームとして Cloud Run を選択します。
    2. サービスのリージョンを選択します。
    3. サービス名を入力します。
    4. [次へ] をクリックして、サービスの最初のリビジョンの構成ページに進みます。
    5. [既存のコンテナ イメージから 1 つのリビジョンをデプロイする] を選択します。
    6. デプロイするイメージを入力または選択します。
    7. [詳細設定] セクションを開きます。
    8. [セキュリティ] タブをクリックします。
    9. [Binary Authorization を使用してコンテナのデプロイを確認する] チェックボックスをオンにします。

    10. (省略可)[ポリシーを構成] をクリックして Binary Authorization ポリシーを構成します。ポリシーの構成の詳細については、ポリシーの構成をご覧ください。

    11. サービスをデプロイします。

gcloud

サービスで Binary Authorization を有効にしてデプロイします。

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

次のように置き換えます。

  • SERVICE_NAME: サービスの名前。
  • IMAGE_URL: デプロイするイメージ。
  • REGION: サービスをデプロイするリージョン。

新しいジョブで Binary Authorization を有効にする

新しいジョブで Binary Authorization を有効にするには、Google Cloud CLI を使用します。

gcloud

  1. Binary Authorization を有効にした新しいジョブを作成します。

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL OPTIONS \
      --binary-authorization=POLICY \
      --region=REGION

    次のように置き換えます。

    • JOB_NAME: 作成するジョブの名前。このパラメータは省略できますが、省略するとジョブ名の入力を求められます。
    • POLICY: 適用するポリシー。デフォルト ポリシーを使用するには、値 default を使用します。
    • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/job:latest など)。
    • REGION: このジョブが実行されるリージョン。
    • OPTIONS: Cloud Run のジョブ作成ページで説明されている任意のオプション。
  2. ジョブの作成が完了するまで待ちます。正常に完了すると、コンソールに成功メッセージが表示されます。

  3. ジョブを実行する方法については、ジョブを実行するまたはスケジュールに従ってジョブを実行するをご覧ください。

新しいジョブを作成する場合、Cloud Run サービス エージェントはコンテナにアクセスする必要があります(これがデフォルトです)。

YAML

  1. この内容で service.yaml ファイルを新規作成します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/binary-authorization: POLICY
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    次のように置き換えます。

    • SERVICE: Cloud Run の名前
    • IMAGE: コンテナ イメージの URL。
    • POLICY: default に設定します。
  2. 次のコマンドを使用して新しいサービスをデプロイします。

gcloud run services replace service.yaml

次のステップ