建立叢集

本頁說明如何在 Google Kubernetes Engine (GKE) 中建立叢集,並啟用二進位授權。您可以使用 gcloud 指令在指令列執行這個步驟,也可以在 Google Cloud 控制台中執行。這個步驟是為 GKE 設定二進位授權的一環。

事前準備

  • 啟用二進位授權。

  • 如果尚未啟用,請啟用 GKE API。

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  • 使用Google Cloud 控制台、指令列工具或 REST API 設定平台政策。

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

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

如要建立啟用二進位授權的叢集,且只監控 CV,請按照下列步驟操作:

控制台

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

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

    前往 GKE

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

  3. 在導覽窗格的「叢集」部分,點選「進階設定」。

  4. 在「二進位授權」列中,按一下「編輯設定」。

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

  6. 選取「僅稽核」,設定要讓二進位授權評估叢集映像檔的以 CV 檢查為準的平台政策,然後按一下「儲存」。

  7. 點選「建立」。

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

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

  2. 建立僅使用 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 叢集。違規處置政策會設為專案政策,預設允許所有映像檔。如要變更專案政策,請按照這些指示操作。

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

控制台

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

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

    前往 GKE

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

  3. 在導覽窗格的「叢集」部分,點選「進階設定」。

  4. 在「二進位授權」列中,按一下「編輯設定」。

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

  6. 選取「僅強制執行」,然後按一下「儲存」。

  7. 點選「建立」。

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

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

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

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

    • 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 叢集:

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. 在導覽窗格的「叢集」部分,點選「進階設定」。

  4. 在「二進位授權」列中,按一下「編輯設定」。

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

  6. 選取「稽核和強制執行」,設定以 CV 檢查為準的平台政策,然後按一下「儲存」。

  7. 點選「建立」。

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    

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

  2. 建立叢集,同時使用專案單例政策強制執行和 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 參考資料)。

控制台

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

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

    前往 GKE

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

  3. 在導覽窗格的「叢集」部分,點選「進階設定」。

  4. 在「二進位授權」列中,按一下「編輯設定」。

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

  6. 選取「僅稽核」,設定一或多項平台政策,讓二進位授權評估叢集是否符合政策,然後按一下「儲存」。

  7. 點選「建立」。

gcloud

  1. 設定預設 Google Cloud 專案:

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

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

    • 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 參考資料)。

控制台

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

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

    前往 GKE

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

  3. 在導覽窗格的「叢集」部分,點選「進階設定」。

  4. 在「二進位授權」列中,按一下「編輯設定」。

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

  6. 選取「稽核及強制執行」,設定 CV 監控政策,然後按一下「儲存」。

  7. 點選「建立」。

gcloud

  1. 設定預設 Google Cloud 專案:

    gcloud config set project PROJECT_ID
    
  2. 建立叢集,同時使用專案單例政策強制執行和 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

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

確認已啟用二進位授權

如要確認叢集已啟用二進位授權,請按照下列步驟操作:

控制台

  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:

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

後續步驟