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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init
[サービスを作成] をクリックして、[サービスの作成] フォームを表示します。
表示されたフォームで次の操作を行います。
- 開発プラットフォームとして Cloud Run を選択します。
- サービスのリージョンを選択します。
- サービスに付ける名前を指定します(例:
test-service
)。 [次へ] をクリックして、サービスの最初のリビジョンの構成ページに進みます。
フォーム内で次の操作を行います。
- [既存のコンテナ イメージから 1 つのリビジョンをデプロイする] を選択します。
コンテナ イメージとして
us-docker.pkg.dev/cloudrun/container/hello
を使用します。[詳細設定] セクションを開きます。
[セキュリティ] タブをクリックします。
[Binary Authorization を使用してコンテナのデプロイを確認する] チェックボックスをオンにします。
デフォルトでは、Binary Authorization ポリシーはすべてのイメージがデプロイされることを許可します。
[次へ] をクリックして、[このサービスをトリガーする方法の構成] ページに進みます。
結果をウェブブラウザで開くには、[公開アクセスを許可する] を選択します。
[作成] をクリックしてイメージを Cloud Run にデプロイし、デプロイの完了を待ちます。
サービスがデプロイされます。リビジョンに Binary Authorization ポリシーの適用が行われる可能性があります。
-
[ポリシーの編集] をクリックします。
[プロジェクトのデフォルト ルール] で、[すべてのイメージを許可] オプションが選択されています。
Google Cloud コンソールの [Binary Authorization] ページに移動します。
[ポリシーの編集] をクリックします。
[デフォルト ルール] で [すべてのイメージを禁止] を選択します。
[ポリシーを保存] をクリックします。
このガイドの前の手順でデプロイしたサービスの名前をクリックします。
[新しいリビジョンの編集とデプロイ] をクリックします。
[デプロイ] をクリックします。
Google Cloud コンソールの [Binary Authorization] ページに移動します。
[ポリシーの編集] をクリックします。
[すべてのイメージを許可] を選択します。
ポリシーを保存するには、[ポリシーを保存] をクリックします。
削除するサービスをサービスリストで探し、そのチェックボックスをクリックして選択します。
[削除] をクリックします。これにより、サービスのすべてのリビジョンが削除されます。
ブレークグラスを使用して、Binary Authorization の適用をバイパスする。
built-by-cloud-build
認証者を使用して、Cloud Build によってビルドされたイメージのみをデプロイする。Google Cloud コンソールまたはコマンドライン ツールを使用して Binary Authorization ポリシーを構成する。
Cloud Audit Logs で Cloud Run イベント用の Binary Authorization を表示する。
Binary Authorization を有効にしたクラスタを作成する
Binary Authorization を有効にした Cloud Run サービスを作成するには、次のようにします。
Binary Authorization ポリシーを更新してすべてのイメージを禁止する
Binary Authorization ポリシーにはデフォルトのルールが含まれています。このルールは、作成した Cloud Run サービスのデプロイを制御します。
デフォルトで、このルールはすべてのコンテナ イメージのデプロイを許可します。
デフォルト ポリシーを表示するには、次の操作を行います。
次に、ポリシーを変更してすべてのイメージのデプロイをブロックします。手順は以下のとおりです。
サービスを再デプロイする
新しいリビジョンをデプロイして、更新したポリシーをテストします。
イメージをデプロイするには、次の手順を行います。
次のようなエラー メッセージが表示される場合があります。
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 アカウントに課金されないようにするには、次の手順を実施します。
Cloud Run に作成したサービスを削除するには、次のようにします。
Binary Authorization を無効にするには、Binary Authorization を無効にするをご覧ください。