Google Cloud 機構政策可讓您透過程式集中控管機構資源。身為機構政策管理員,您可以定義機構政策,也就是一組稱為限制的限制,適用於Google Cloud 資源和Google Cloud 資源階層中這些資源的子系。您可以在機構、資料夾或專案層級強制執行組織政策。
機構政策提供各種Google Cloud 服務的預先定義限制。不過,如要進一步自訂機構政策中受限制的特定欄位,也可以建立自訂機構政策。
實作自訂機構政策,即可強制執行一致的設定和限制。這項功能會驗證 PostgreSQL 適用的 AlloyDB 執行個體是否符合安全性最佳做法和法規要求。
如果嘗試在強制執行自訂限制時建立或更新執行個體,作業就會失敗。凡是新增至機構或資料夾的專案,若使用自訂機構政策,都會沿用該政策的限制。
政策繼承
根據預設,機構政策會由您強制執行政策的資源子系繼承。舉例來說,如果您對資料夾強制執行政策, Google Cloud 系統會對該資料夾中的所有專案強制執行政策。如要進一步瞭解這項行為及如何變更,請參閱「階層評估規則」。
定價
機構政策服務 (包括預先定義和自訂機構政策) 免費提供。
限制
與所有機構政策限制一樣,政策變更不會回溯套用至現有執行個體。
- 新政策不會影響現有的執行個體設定。
- 除非您使用Google Cloud 控制台、Google Cloud CLI 或 RPC,將執行個體設定從符合法規狀態變更為不符合法規狀態,否則現有的執行個體設定仍有效。
- 排定的維護更新不會導致政策強制執行,因為維護作業不會變更執行個體的設定。
事前準備
- 設定專案。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 確認您知道機構 ID。
-
機構政策管理員 (
roles/orgpolicy.policyAdmin
) 機構資源 -
如要建立或更新 AlloyDB 叢集:
AlloyDB 管理員 (
roles/alloydb.admin
) 專案資源 ORGANIZATION_ID
:您的機構 ID,例如123456789
。CONSTRAINT_NAME
:新自訂限制的名稱。自訂限制條件必須以custom.
開頭,且只能包含大寫英文字母、小寫英文字母或數字,例如 custom.restrictPublicIP。這個欄位的長度上限為 70 個字元,不含前置字元,例如organizations/123456789/customConstraints/custom
。RESOURCE_NAME
:AlloyDB REST 資源的名稱 (而非 URI),其中包含您要限制的物件和欄位。例如:Instance
。CONDITION
:針對支援服務資源的代表項目編寫的 CEL 條件。這個欄位的長度上限為 1000 個字元。如要進一步瞭解可編寫條件的資源,請參閱「支援的自訂限制」。例如:"resource.networkConfig.enablePublicIp == true"
。ACTION
:如果符合condition
,則要採取的動作。可以是ALLOW
或DENY
。DISPLAY_NAME
:限制條件的易記名稱。這個欄位的長度上限為 200 個字元。DESCRIPTION
:違反政策時,要以錯誤訊息形式顯示的限制說明。這個欄位的長度上限為 2000 個字元。- 前往 Google Cloud 控制台的「Organization policies」(機構政策) 頁面。
- 在專案選擇工具中,選取要設定機構政策的專案。
- 在「Organization policies」(機構政策) 頁面上的清單中選取限制條件,即可查看該限制條件的「Policy details」(政策詳情) 頁面。
- 如要設定資源的機構政策,請按一下「管理政策」。
- 在「編輯政策」頁面中,選取「覆寫上層政策」。
- 按一下「新增規則」。
- 在「Enforcement」(強制執行) 區段中,選取是否要強制執行這項機構政策。
- 選用:如要根據標記設定機構政策條件,請按一下「新增條件」。請注意,如果為組織政策新增條件式規則,您必須至少新增一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定組織政策」。
- 按一下「測試變更」,模擬機構政策的影響。舊版受管理限制不支援政策模擬。詳情請參閱「 使用 Policy Simulator 測試組織政策變更」。
- 如要完成並套用機構政策,請按一下「設定政策」。這項政策最多需要 15 分鐘才會生效。
-
PROJECT_ID
:您要強制執行限制的專案。 -
CONSTRAINT_NAME
:您為自訂限制定義的名稱。例如:custom.restrictPublicIP
。 - 建立執行個體
- 執行個體更新
- 建立叢集
- 建立備份
- 建立叢集
- 更新叢集
- 建立備份
- 如要進一步瞭解機構政策,請參閱機構政策服務簡介。
- 進一步瞭解如何建立及管理機構政策。
- 如需預先定義的機構政策限制完整清單,請參閱這篇文章。
- 使用公開 IP 連線。
- 建立主要執行個體。
必要的角色
如要取得管理機構政策所需的權限,請要求管理員授予下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立自訂限制
自訂限制是在 YAML 檔案中定義,其中包含您要強制執行機構政策的服務所支援的資源、方法、條件和動作。自訂限制的條件是使用一般運算語言 (CEL) 定義。如要進一步瞭解如何使用 CEL 在自訂限制中建構條件,請參閱「建立及管理自訂限制」一文的 CEL 一節。
機構政策由每項限制條件所設定的值來定義。組織政策管理員可以建立自訂限制,在專案、資料夾或機構層級限制 AlloyDB 的公用 IP 設定。
您可以建立自訂限制 (例如
customConstraints/custom.restrictPublicIP
),限制 AlloyDB 執行個體的公開 IP 存取權。如果將這項布林限制設為 True,就無法針對 AlloyDB 執行個體設定公開 IP。這項限制不會溯及既往。即使強制執行這項限制,目前設有公開 IP 存取權的 AlloyDB 執行個體仍可正常運作。根據預設,AlloyDB 執行個體可設定公開 IP 存取權。
請按照下列步驟,為自訂限制建立 YAML 檔案:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: - alloydb.googleapis.com/RESOURCE_NAME methodTypes: - CREATE - UPDATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
更改下列內容:
如要進一步瞭解如何建立自訂限制,請參閱「定義自訂限制」。
設定自訂限制
為新的自訂限制建立 YAML 檔案後,您必須進行設定,才能在貴機構的機構政策中使用該檔案。如要設定自訂限制,請使用gcloud org-policies set-custom-constraint
指令: 將gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
替換為自訂限制檔案的完整路徑。例如:/home/user/customconstraint.yaml
。 完成後,自訂限制就會顯示在 Google Cloud 機構政策清單中,做為機構政策使用。如要確認自訂限制條件是否存在,請使用gcloud org-policies list-custom-constraints
指令: 將gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
替換為機構資源的 ID。 詳情請參閱「查看組織政策」。強制執行自訂機構政策
如要強制執行限制,請建立參照該限制的機構政策,然後將該政策套用至 Google Cloud 資源。控制台
gcloud
如要建立含有布林值規則的機構政策,請建立參照限制的政策 YAML 檔案:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
取代下列項目:
如要強制執行包含限制的機構政策,請執行下列指令:
gcloud org-policies set-policy POLICY_PATH
將
POLICY_PATH
替換為機構政策 YAML 檔案的完整路徑。這項政策最多需要 15 分鐘才會生效。支援的自訂限制和作業
您可以在相應的 AlloyDB 作業期間強制執行下列自訂限制。您可以對 AlloyDB 執行個體、叢集和備份資源強制執行自訂限制。
說明 限制語法範例 支援的作業 使用機構政策限制公開 IP 存取權 name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictPublicIP resourceTypes: - alloydb.googleapis.com/Instance methodTypes: - CREATE - UPDATE condition: "resource.networkConfig.enablePublicIp == true" actionType: DENY displayName: Restrict public IP access on AlloyDB instances description: Prevent users from enabling public IP on instance creation and update.
使用機構政策強制執行必要標記。 name: organizations/ORGANIZATION_ID/customConstraints/custom.enforceMandatoryTags resourceTypes: - alloydb.googleapis.com/Cluster methodTypes: - GOVERN_TAGS condition: "resource.hasDirectTagKey(TAG_NAME")" actionType: ALLOW displayName: Enforce mandatory tags on AlloyDB cluster resource. description: Prevent users from cluster creation if mandatory tags are not provided.
將 TAG_NAME 替換為代碼名稱。強制為所有叢集啟用持續備份功能。 name: organizations/ORGANIZATION_ID/customConstraints/custom.enforceContBackupConfig resourceTypes: - alloydb.googleapis.com/Cluster methodTypes: - CREATE - UPDATE condition: "resource.continuousBackupConfig.enabled == false" actionType: DENY displayName: Enforce continuous backup configuration on AlloyDB clusters description: Prevent users from disabling continuous backup configuration on cluster creation and update.
限制特定叢集的隨需備份 name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictOnDemandBackup resourceTypes: - alloydb.googleapis.com/Backup methodTypes: - CREATE condition: "resource.type == 'ON_DEMAND' && resource.clusterName.contains('CLUSTER_NAME')" actionType: DENY displayName: Restrict taking on-demand backup of certain clusters description: Prevent users from taking on-demand backups for certain clusters.
將 CLUSTER_NAME 替換為叢集名稱。後續步驟