Cloud Run を使用して Binary Authorization ポリシーを構成する
このクイックスタートでは、Cloud Run を使用して Binary Authorization ポリシーで基本的なルールを構成してテストする方法を説明します。
このクイックスタートでは、Binary Authorization を使用して Cloud Run サービスのデプロイを制御します。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Binary Authorization を有効にしたクラスタを作成する
Binary Authorization を有効にした Cloud Run サービスを作成するには、次のようにします。
[サービスを作成] をクリックして、[サービスの作成] フォームを表示します。
表示されたフォームで次の操作を行います。
- 開発プラットフォームとして Cloud Run を選択します。
- サービスのリージョンを選択します。
- サービスに付ける名前を指定します(例:
test-service
)。 [次へ] をクリックして、サービスの最初のリビジョンの構成ページに進みます。
フォームで次の操作を行います。
- [既存のコンテナ イメージから 1 つのリビジョンをデプロイする] を選択します。
コンテナ イメージとして
us-docker.pkg.dev/cloudrun/container/hello
を使用します。[詳細設定] セクションを開きます。
[セキュリティ] タブをクリックします。
[Binary Authorization を使用してコンテナのデプロイを確認する] チェックボックスをオンにします。
デフォルトでは、Binary Authorization ポリシーはすべてのイメージがデプロイされることを許可します。
[次へ] をクリックして、[このサービスをトリガーする方法の構成] ページに進みます。
結果をウェブブラウザで開くには、[未認証の呼び出しを許可する] を選択します。
[作成] をクリックしてイメージを Cloud Run にデプロイし、デプロイの完了を待ちます。
サービスがデプロイされます。リビジョンに Binary Authorization ポリシーの適用が行われる可能性があります。
Binary Authorization ポリシーを更新してすべてのイメージを禁止する
Binary Authorization ポリシーにはデフォルトのルールが含まれています。このルールは、作成した Cloud Run サービスのデプロイを制御します。
デフォルトで、このルールはすべてのコンテナ イメージのデプロイを許可します。
デフォルト ポリシーを表示するには、次の操作を行います。
-
[ポリシーの編集] をクリックします。
[プロジェクトのデフォルト ルール] で、[すべてのイメージを許可] オプションが選択されています。
次に、ポリシーを変更してすべてのイメージのデプロイをブロックします。手順は以下のとおりです。
Google Cloud コンソールで [Binary Authorization] ページに移動します。
[ポリシーの編集] をクリックします。
[デフォルト ルール] で [すべてのイメージを禁止] を選択します。
[ポリシーを保存] をクリックします。
サービスを再デプロイする
新しいリビジョンをデプロイして、更新したポリシーをテストします。
イメージをデプロイするには、次の手順を行います。
このガイドの前の手順でデプロイしたサービスの名前をクリックします。
[新しいリビジョンの編集とデプロイ] をクリックします。
[デプロイ] をクリックします。
次のようなエラー メッセージが表示される場合があります。
Service update rejected by Binary Authorization policy: RevisionREVISION
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
ポリシーをリセットしてすべてのイメージを許可する
すべてのイメージを許可するポリシーをリセットするには、次のようにします。
Google Cloud コンソールで [Binary Authorization] ページに移動します。
[ポリシーの編集] をクリックします。
[すべてのイメージを許可] を選択します。
ポリシーを保存するには、[ポリシーを保存] をクリックします。
これでイメージをデプロイできるようになりました。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
Cloud Run に作成したサービスを削除するには、次のようにします。
削除するサービスをサービスリストで探し、そのチェックボックスをクリックして選択します。
[削除] をクリックします。これにより、サービスのすべてのリビジョンが削除されます。
Binary Authorization を無効にするには、Binary Authorization を無効にするをご覧ください。
次のステップ
ブレークグラスを使用して、Binary Authorization の適用をバイパスする。
built-by-cloud-build
認証者を使用して、Cloud Build によってビルドされたイメージのみをデプロイする。Google Cloud コンソールまたはコマンドライン ツールを使用して Binary Authorization ポリシーを構成する。
Cloud Audit Logs で Cloud Run イベント用の Binary Authorization を表示する。