Cloud Run を使用して Binary Authorization ポリシーを構成する

このクイックスタートでは、Cloud Run を使用して Binary Authorization ポリシーで基本的なルールを構成してテストする方法を説明します。

このクイックスタートでは、Binary Authorization を使用して Cloud Run サービスのデプロイを制御します。

始める前に

  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. 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

Binary Authorization を有効にしたクラスタを作成する

Binary Authorization を有効にした Cloud Run サービスを作成するには、次のようにします。

  1. Cloud Run に移動します

  2. [サービスを作成] をクリックして、[サービスの作成] フォームを表示します。

    画像

    表示されたフォームで次の操作を行います。

    1. 開発プラットフォームとして Cloud Run を選択します。
    2. サービスのリージョンを選択します。
    3. サービスに付ける名前を指定します(例: test-service)。
    4. [次へ] をクリックして、サービスの最初のリビジョンの構成ページに進みます。

      フォームで次の操作を行います。

      1. [既存のコンテナ イメージから 1 つのリビジョンをデプロイする] を選択します。
      2. コンテナ イメージとして us-docker.pkg.dev/cloudrun/container/hello を使用します。

      3. [詳細設定] セクションを開きます。

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

      5. [Binary Authorization を使用してコンテナのデプロイを確認する] チェックボックスをオンにします。

        画像

        デフォルトでは、Binary Authorization ポリシーはすべてのイメージがデプロイされることを許可します。

      6. [次へ] をクリックして、[このサービスをトリガーする方法の構成] ページに進みます。

        画像

      7. 結果をウェブブラウザで開くには、[未認証の呼び出しを許可する] を選択します。

      8. [作成] をクリックしてイメージを Cloud Run にデプロイし、デプロイの完了を待ちます。

      サービスがデプロイされます。リビジョンに Binary Authorization ポリシーの適用が行われる可能性があります。

Binary Authorization ポリシーを更新してすべてのイメージを禁止する

Binary Authorization ポリシーにはデフォルトのルールが含まれています。このルールは、作成した Cloud Run サービスのデプロイを制御します。

デフォルトで、このルールはすべてのコンテナ イメージのデプロイを許可します。

デフォルト ポリシーを表示するには、次の操作を行います。

  1. Binary Authorization に移動

    デフォルト ルールを示すポリシータブのスクリーンショット

  2. [ポリシーの編集] をクリックします。

  3. [プロジェクトのデフォルト ルール] で、[すべてのイメージを許可] オプションが選択されています。

    デフォルト ルールのタイプを選択するオプションのスクリーンショット

次に、ポリシーを変更してすべてのイメージのデプロイをブロックします。手順は以下のとおりです。

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

    Binary Authorization に移動

  2. [ポリシーの編集] をクリックします。

  3. [デフォルト ルール] で [すべてのイメージを禁止] を選択します。

    デフォルト ルールのタイプを選択するオプションのスクリーンショット

  4. [ポリシーを保存] をクリックします。

サービスを再デプロイする

新しいリビジョンをデプロイして、更新したポリシーをテストします。

イメージをデプロイするには、次の手順を行います。

  1. Cloud Run に移動します

  2. このガイドの前の手順でデプロイしたサービスの名前をクリックします。

  3. [新しいリビジョンの編集とデプロイ] をクリックします。

  4. [デプロイ] をクリックします。

次のようなエラー メッセージが表示される場合があります。

Service update rejected by Binary Authorization policy: Revision
REVISION uses unauthorized container image. Container image 'us-docker.pkg.dev/cloudrun/container/hello@SHA' is not authorized by policy. Denied by an ALWAYS_DENY admission rule

ポリシーをリセットしてすべてのイメージを許可する

すべてのイメージを許可するポリシーをリセットするには、次のようにします。

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

    Binary Authorization に移動

  2. [ポリシーの編集] をクリックします。

  3. [すべてのイメージを許可] を選択します。

  4. ポリシーを保存するには、[ポリシーを保存] をクリックします。

これでイメージをデプロイできるようになりました。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

Cloud Run に作成したサービスを削除するには、次のようにします。

  1. Cloud Run に移動します

  2. 削除するサービスをサービスリストで探し、そのチェックボックスをクリックして選択します。

  3. [削除] をクリックします。これにより、サービスのすべてのリビジョンが削除されます。

Binary Authorization を無効にするには、Binary Authorization を無効にするをご覧ください。

次のステップ