クイックスタート: すべて許可とすべて禁止(Cloud Run)

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

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

始める前に

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

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

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

    API を有効にする

  5. Cloud SDK をインストールして初期化します。

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. [Security] タブをクリックします。

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

        画像

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

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

        画像

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

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

      サービスがデプロイされます。リビジョンには Binary Authorization ポリシーが適用されます。

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

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

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

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

  1. Binary Authorization に移動します

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

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

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

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

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

  1. Cloud Console で [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. Cloud Console で [Binary Authorization] ページに移動します。

    Binary Authorization に移動

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

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

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

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

クリーンアップ

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

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

  1. Cloud Run に移動

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

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

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

次のステップ