建立叢集

本頁說明如何在 Google Kubernetes Engine (GKE) 中建立叢集,並啟用二進位授權功能。您可以使用 gcloud 指令在指令列執行這個步驟,也可以在 Google Cloud 控制台中執行。此步驟屬於設定 GKE 適用的二進位授權流程的一部分。

事前準備

建立啟用二進位授權的叢集 (僅限 CV 監控)

二進位授權可搭配 Autopilot 或 Standard 叢集。如要設定僅監控的評估模式,您至少必須指定一項以檢查為基礎的平台政策

如要建立啟用二進位授權功能的叢集,但只監控 CV,請執行下列步驟:

主控台

下列步驟會設定標準叢集。

  1. 前往 Google Cloud 控制台的 GKE 頁面。

    前往 GKE

  2. 按一下「建立叢集」。如要輸入預設欄位的值,請參閱「建立區域叢集」一文。

  3. 按一下導覽選單中的「Security」(安全性)

  4. 選取「啟用二進位授權」。 1. 選取「僅稽核」,並設定您希望 Binary Authorization 用來評估叢集映像檔的CV 檢查平台政策

  5. 點選「建立」

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替換為要建立叢集的專案 ID。

  2. 建立僅使用 CV 平台政策的監控叢集:

    使用下方的任何指令資料之前,請先替換以下項目:

    • CLUSTER_NAME:叢集名稱。
    • LOCATION:位置,例如 us-central1asia-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 叢集。強制執行政策設為專案政策,預設允許所有圖片。如要變更專案政策,請按照這些指示操作。

如要建立啟用二進位授權功能的叢集,但只啟用強制執行功能,請按照下列步驟操作:

主控台

下列步驟會設定標準叢集。

  1. 前往 Google Cloud 控制台的 GKE 頁面。

    前往 GKE

  2. 按一下「建立叢集」。如建立區域叢集一文所述,輸入預設欄位的值。

  3. 按一下導覽選單中的「Security」(安全性)

  4. 選取「啟用二進位授權」

  5. 選取「僅強制執行」

  6. 點選「建立」

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替換為要建立叢集的專案 ID。

  2. 建立僅使用政策強制執行的叢集:

    使用下方的任何指令資料之前,請先替換以下項目:

    • CLUSTER_NAME:叢集名稱。
    • LOCATION:位置,例如 us-central1asia-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 叢集:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-binauthz-enforce"
  location           = "us-west1"
  initial_node_count = 1

  binary_authorization {
    evaluation_mode = "PROJECT_SINGLETON_POLICY_ENFORCE"
  }
}

如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。

叢集會在幾分鐘內建立完成。

建立啟用二進位授權的叢集 (CV 監控和強制執行)

二進位授權可搭配 Autopilot 或 Standard 叢集。

為強制執行政策,系統會將政策設為專案政策,預設允許所有映像檔。如要變更專案政策,請按照這些指示操作。

如要監控 CV,您至少必須指定一項以 CV 檢查為準的平台政策

如要建立啟用二進位授權功能的叢集,並同時監控及強制執行 CV,請按照下列步驟操作:

主控台

下列步驟會設定標準叢集。

  1. 前往 Google Cloud 控制台的 GKE 頁面。

    前往 GKE

  2. 按一下「建立叢集」。如建立區域叢集一文所述,輸入預設欄位的值。

  3. 按一下導覽選單中的「Security」(安全性)

  4. 選取「啟用二進位授權」

  5. 選取「稽核與強制執行」,然後設定以 CV 檢查為準的平台政策

  6. 點選「建立」

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替換為要建立叢集的專案 ID。

  2. 建立叢集,同時使用專案單例政策強制執行和 CV 平台政策監控:

    使用下方的任何指令資料之前,請先替換以下項目:

    • CLUSTER_NAME:叢集名稱。
    • LOCATION:位置,例如 us-central1asia-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 參考資料)。

主控台

下列步驟會設定標準叢集。

  1. 前往 Google Cloud 控制台的 GKE 頁面。

    前往 GKE

  2. 按一下「建立叢集」。如建立區域叢集一文所述,輸入預設欄位的值。

  3. 按一下導覽選單中的「Security」(安全性)

  4. 選取「啟用二進位授權」

  5. 選取「僅稽核」,並設定一或多項平台政策,讓 Binary Authorization 評估叢集是否符合政策。

  6. 點選「建立」

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    
  2. 建立叢集。

    使用下方的任何指令資料之前,請先替換以下項目:

    • CLUSTER_NAME:叢集名稱。
    • LOCATION:位置,例如 us-central1asia-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 參考資料)。

主控台

下列步驟會設定標準叢集。

  1. 前往 Google Cloud 控制台的 GKE 頁面。

    前往 GKE

  2. 按一下「建立叢集」。如建立區域叢集一文所述,輸入預設欄位的值。

  3. 按一下導覽選單中的「Security」(安全性)

  4. 選取「啟用二進位授權」

  5. 選取「稽核與強制執行」,然後設定 CV 監控政策。

  6. 點選「建立」

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    
  2. 建立叢集,同時使用專案單例政策強制執行和 CV 平台政策監控:

    使用下方的任何指令資料之前,請先替換以下項目:

    • CLUSTER_NAME:叢集名稱。
    • LOCATION:位置,例如 us-central1asia-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

叢集會在幾分鐘內建立完成。

確認已啟用二進位授權

如要確認叢集已啟用二進位授權,請執行下列操作:

主控台

  1. 在 Google Cloud 控制台中開啟 GKE 頁面。

    前往 GKE

  2. 在「Kubernetes clusters」(Kubernetes 叢集) 下方,找出您的叢集。

  3. 在「安全性」下方,確認「二進位授權」已設為「已啟用」

gcloud

如要列出叢集的政策繫結,請執行下列操作:

gcloud beta container clusters describe CLUSTER_NAME --location LOCATION --project CLUSTER_PROJECT_ID | grep -A 10 policyBindings:

請注意,政策繫結清單後方可能會有其他資訊。

後續步驟