Cloud Run で Binary Authorization を有効にする

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

始める前に

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

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Run, Artifact Registry, Binary Authorization API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Run, Artifact Registry, Binary Authorization API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    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

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順でフィールドを変更し、gcloud run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    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

次のステップ