本頁說明如何在 Google Kubernetes Engine (GKE) 中建立叢集,並啟用二進位授權功能。您可以使用 gcloud
指令在指令列執行這個步驟,也可以在 Google Cloud 控制台中執行。此步驟屬於設定 GKE 適用的二進位授權流程的一部分。
事前準備
-
-
Enable the GKE API.
使用Google Cloud 主控台、指令列工具或 REST API 設定平台政策。
建立啟用二進位授權的叢集 (僅限 CV 監控)
二進位授權可搭配 Autopilot 或 Standard 叢集。如要設定僅監控的評估模式,您至少必須指定一項以檢查為基礎的平台政策。
如要建立啟用二進位授權功能的叢集,但只監控 CV,請執行下列步驟:
主控台
下列步驟會設定標準叢集。
gcloud
設定預設 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID
替換為要建立叢集的專案 ID。建立僅使用 CV 平台政策的監控叢集:
使用下方的任何指令資料之前,請先替換以下項目:
CLUSTER_NAME
:叢集名稱。LOCATION
:位置,例如us-central1
或asia-south1
。POLICY_PROJECT_ID
:儲存政策的專案 ID。POLICY_ID
:政策 ID。CLUSTER_PROJECT_ID
:叢集專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
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
Windows (PowerShell)
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
Windows (cmd.exe)
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
叢集會在幾分鐘內建立完成。
建立啟用二進位授權 (僅強制執行) 的叢集
二進位授權可搭配 Autopilot 或 Standard 叢集。強制執行政策設為專案政策,預設允許所有圖片。如要變更專案政策,請按照這些指示操作。
如要建立啟用二進位授權功能的叢集,但只啟用強制執行功能,請按照下列步驟操作:
主控台
下列步驟會設定標準叢集。
gcloud
設定預設 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID
替換為要建立叢集的專案 ID。建立僅使用政策強制執行的叢集:
使用下方的任何指令資料之前,請先替換以下項目:
CLUSTER_NAME
:叢集名稱。LOCATION
:位置,例如us-central1
或asia-south1
。CLUSTER_PROJECT_ID
:叢集專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud beta container clusters create CLUSTER_NAME \ --location=LOCATION \ --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE \ --project=CLUSTER_PROJECT_ID
Windows (PowerShell)
gcloud beta container clusters create CLUSTER_NAME ` --location=LOCATION ` --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE ` --project=CLUSTER_PROJECT_ID
Windows (cmd.exe)
gcloud beta container clusters create CLUSTER_NAME ^ --location=LOCATION ^ --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE ^ --project=CLUSTER_PROJECT_ID
Terraform
下列 Terraform 範例會建立及設定 Standard 叢集:
如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。
叢集會在幾分鐘內建立完成。
建立啟用二進位授權的叢集 (CV 監控和強制執行)
二進位授權可搭配 Autopilot 或 Standard 叢集。
為強制執行政策,系統會將政策設為專案政策,預設允許所有映像檔。如要變更專案政策,請按照這些指示操作。
如要監控 CV,您至少必須指定一項以 CV 檢查為準的平台政策。
如要建立啟用二進位授權功能的叢集,並同時監控及強制執行 CV,請按照下列步驟操作:
主控台
下列步驟會設定標準叢集。
前往 Google Cloud 控制台的 GKE 頁面。
按一下「建立叢集」。如建立區域叢集一文所述,輸入預設欄位的值。
按一下導覽選單中的「Security」(安全性)。
選取「啟用二進位授權」。
選取「稽核與強制執行」,然後設定以 CV 檢查為準的平台政策。
點選「建立」。
gcloud
設定預設 Google Cloud 專案:
gcloud config set project PROJECT_ID
將 PROJECT_ID 替換為要建立叢集的專案 ID。
建立叢集,同時使用專案單例政策強制執行和 CV 平台政策監控:
使用下方的任何指令資料之前,請先替換以下項目:
CLUSTER_NAME
:叢集名稱。LOCATION
:位置,例如us-central1
或asia-south1
。POLICY_PROJECT_ID
:儲存政策的專案 ID。POLICY_ID
:政策 ID。CLUSTER_PROJECT_ID
:叢集專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud beta container clusters create CLUSTER_NAME \ --location=LOCATION \ --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \ --project=CLUSTER_PROJECT_ID
Windows (PowerShell)
gcloud beta container clusters create CLUSTER_NAME ` --location=LOCATION ` --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ` --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID ` --project=CLUSTER_PROJECT_ID
Windows (cmd.exe)
gcloud beta container clusters create CLUSTER_NAME ^ --location=LOCATION ^ --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ^ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID ^ --project=CLUSTER_PROJECT_ID
叢集會在幾分鐘內建立完成。
建立使用多項平台政策的 CV 叢集 (僅限 CV 監控)
二進位授權可搭配 Autopilot 或 Standard 叢集。
您可以建立叢集,並繫結多項平台政策 (詳情請參閱 GKE API 參考資料)。
主控台
下列步驟會設定標準叢集。
gcloud
設定預設 Google Cloud 專案:
gcloud config set project PROJECT_ID
建立叢集。
使用下方的任何指令資料之前,請先替換以下項目:
CLUSTER_NAME
:叢集名稱。LOCATION
:位置,例如us-central1
或asia-south1
。POLICY_PROJECT_ID_1
:儲存第一個平台政策的專案 ID。POLICY_ID_1
:第一個平台政策的政策 ID。POLICY_PROJECT_ID_2
:儲存第二個平台政策的專案 ID。多項政策可以儲存在相同或不同專案中。POLICY_ID_2
:第二個平台政策的政策 ID。CLUSTER_PROJECT_ID
:叢集專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud beta container clusters create CLUSTER_NAME \ --location=LOCATION \ --binauthz-evaluation-mode=POLICY_BINDINGS \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 \ --project=CLUSTER_PROJECT_ID
Windows (PowerShell)
gcloud beta container clusters create CLUSTER_NAME ` --location=LOCATION ` --binauthz-evaluation-mode=POLICY_BINDINGS ` --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ` --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ` --project=CLUSTER_PROJECT_ID
Windows (cmd.exe)
gcloud beta container clusters create CLUSTER_NAME ^ --location=LOCATION ^ --binauthz-evaluation-mode=POLICY_BINDINGS ^ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ^ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ^ --project=CLUSTER_PROJECT_ID
叢集會在幾分鐘內建立完成。
建立使用多項平台政策的 CV 叢集 (CV 監控和強制執行)
二進位授權可搭配 Autopilot 或 Standard 叢集。
您可以建立叢集,並繫結多項平台政策 (詳情請參閱 GKE API 參考資料)。
主控台
下列步驟會設定標準叢集。
gcloud
設定預設 Google Cloud 專案:
gcloud config set project PROJECT_ID
建立叢集,同時使用專案單例政策強制執行和 CV 平台政策監控:
使用下方的任何指令資料之前,請先替換以下項目:
CLUSTER_NAME
:叢集名稱。LOCATION
:位置,例如us-central1
或asia-south1
。POLICY_PROJECT_ID_1
:儲存第一個平台政策的專案 ID。POLICY_ID_1
:第一個平台政策的政策 ID。POLICY_PROJECT_ID_2
:儲存第二個平台政策的專案 ID。多項政策可以儲存在相同或不同專案中。POLICY_ID_2
:第二個平台政策的政策 ID。CLUSTER_PROJECT_ID
:叢集專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud beta container clusters create CLUSTER_NAME \ --location=LOCATION \ --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 \ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 \ --project=CLUSTER_PROJECT_ID
Windows (PowerShell)
gcloud beta container clusters create CLUSTER_NAME ` --location=LOCATION ` --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ` --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ` --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ` --project=CLUSTER_PROJECT_ID
Windows (cmd.exe)
gcloud beta container clusters create CLUSTER_NAME ^ --location=LOCATION ^ --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ^ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ^ --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ^ --project=CLUSTER_PROJECT_ID
叢集會在幾分鐘內建立完成。
確認已啟用二進位授權
如要確認叢集已啟用二進位授權,請執行下列操作:
主控台
在 Google Cloud 控制台中開啟 GKE 頁面。
在「Kubernetes clusters」(Kubernetes 叢集) 下方,找出您的叢集。
在「安全性」下方,確認「二進位授權」已設為「已啟用」。
gcloud
如要列出叢集的政策繫結,請執行下列操作:
gcloud beta container clusters describe CLUSTER_NAME --location LOCATION --project CLUSTER_PROJECT_ID | grep -A 10 policyBindings:
請注意,政策繫結清單後方可能會有其他資訊。