クイックスタート: 継続的検証で Pod のセキュリティをモニタリングする
チェックベースのポリシーを使用して Binary Authorization の継続的検証(CV)を開始する方法を学習します。このクイックスタートでは、次の CV チェックを使用して、次の条件で実行中の Pod を継続的に検証します。
- 信頼できるディレクトリ: Pod に関連付けられたイメージが、ポリシーで指定された 1 つ以上の信頼できるディレクトリに存在することを確認します。
- イメージの鮮度: ポリシーで指定した日数以内に Pod のイメージがアップロードされていることを確認します。
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 Google Cloud アカウントを作成して、 実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクト Google Cloud を選択または作成します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクトの名前に置き換えます。
Binary Authorization API と Google Kubernetes Engine API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable container.googleapis.com
binaryauthorization.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクト Google Cloud を選択または作成します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクトの名前に置き換えます。
Binary Authorization API と Google Kubernetes Engine API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable container.googleapis.com
binaryauthorization.googleapis.com kubectlコマンドライン ツールをインストールします。- Binary Authorization ポリシーと GKE クラスタが別々のプロジェクトにある場合は、両方のプロジェクトで Binary Authorization が有効になっていることを確認します。
プラットフォーム ポリシーを作成する
CV GKE プラットフォーム ポリシーを設定する手順は次のとおりです。
プラットフォーム ポリシーの YAML ファイルを作成します。
cat << EOF > /tmp/my-policy.yaml gkePolicy: checkSets: - checks: - trustedDirectoryCheck: trustedDirPatterns: - us-central1-docker.pkg.dev/my-project/my-directory displayName: My trusted directory check - imageFreshnessCheck: maxUploadAgeDays: 30 displayName: My image freshness check displayName: My trusted directory and image freshness check set EOFこのポリシーでは、次の条件がチェックされます。
Pod のイメージが
us-central1-docker.pkg.dev/my-project/my-directoryという名前の Artifact Registry リポジトリに保存されている。Pod のイメージが過去 30 日以内に Artifact Registry または Container Registry リポジトリにアップロードされている。
プラットフォーム ポリシーを作成します。
gcloud beta container binauthz policy create POLICY_ID \ --platform=gke \ --policy-file=/tmp/my-policy.yaml \ --project=POLICY_PROJECT_ID次のように置き換えます。
POLICY_ID: 任意の IDPOLICY_PROJECT_ID: ポリシー プロジェクト ID
クラスタの作成または更新
クラスタで CV を有効にするには、新しいクラスタを作成するか、既存のクラスタを更新します。
チェックベースのプラットフォーム ポリシーを有効にしてクラスタを作成するには、次のコマンドを実行します。
gcloud beta container clusters create CLUSTER_NAME\ --location=LOCATION \ --binauthz-evaluation-mode=POLICY_BINDINGS \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \ --project=CLUSTER_PROJECT_ID次のように置き換えます。
CLUSTER_NAME: クラスタの名前LOCATION: ロケーション(例:us-central1、asia-south1)POLICY_PROJECT_ID: ポリシーが保存されているプロジェクトの IDPOLICY_ID: ポリシー IDCLUSTER_PROJECT_ID: クラスタ プロジェクト ID
クラスタが作成されるまで待ちます。
チェックベースのポリシーを有効にして既存のクラスタを更新するには、次のコマンドを実行します。
gcloud beta container clusters update