Cloud Run を使用して Binary Authorization ポリシーを構成する
このクイックスタートでは、Cloud Run を使用して Binary Authorization ポリシーで基本的なルールを構成してテストする方法を説明します。
このクイックスタートでは、Binary Authorization を使用して Cloud Run サービスのデプロイを制御します。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
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: RevisionREVISIONuses 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 を表示する。