本文說明如何使用 Rego 政策語言編寫自訂規則。您可以在 Workload Manager 中使用這些規則,根據貴機構定義的最佳做法評估工作負載。
詳情請參閱「關於 Workload Manager 中的自訂規則」。
事前準備
- 熟悉 Rego 政策語言。
使用 Rego 編寫自訂規則
Google 提供範例 GitHub 存放區,內含一組預先定義的規則,可用於評估工作負載。這些範例涵蓋多種用途。從存放區選取規則,或建立規則 (.rego
) 檔案,說明評估需求。
自訂規則包含下列各節:
中繼資料。下列欄位會定義規則中繼資料:
DETAILS
:規則的簡短說明。SEVERITY
:使用者定義的值,可定義違反規則的嚴重程度。例如HIGH
、CRITICAL
、MEDIUM
或LOW
。ASSET_TYPE
:支援的資產之一。請參閱「支援的資料來源」一文。TAGS
:規則的一或多個標記。這些標記有助於篩選規則。
套件聲明。例如:
templates.google.compute.instance.label
。匯入對帳單。例如:
data.validator.google.lib as lib
。規則定義:定義規則的一組指令。
規則範例
您可以在 GoogleCloudPlatform/workload-manager GitHub 存放區中找到下列範例規則。您可以將這些規則上傳至 Cloud Storage bucket,並用於執行評估。或者,您可以根據貴機構的政策修改規則,然後將檔案上傳至 Cloud Storage bucket。
- 範例 1:確保 VM 至少有一個標籤。
- 範例 2:確保工作負載不會使用 Compute Engine 預設服務帳戶。
- 範例 3:確保工作負載中的 VM 不會使用外部 IP 位址。
如需可在 Workload Manager 中使用的範例規則完整清單,請參閱 GoogleCloudPlatform/workload-manager GitHub 存放區。
範例 1
確保 Compute Engine 資源至少有一個標記。
範例 2
確保工作負載未使用 Compute Engine 預設服務帳戶
範例 3
確保工作負載中的 VM 不會使用外部 IP 位址。
將規則上傳至 Cloud Storage 值區
建立 .rego
檔案後,請將檔案上傳至 Cloud Storage bucket。Cloud Storage 值區的頂層必須包含 /lib
和 /rules
資料夾:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego