使用限制

本指南說明如何建立具有特定限制的機構政策。本頁範例使用的限制並非實際限制,而是教學用的通用例子。

若要進一步瞭解限制與限制可以解決的問題,請參閱 Organization Policy Service 限制的完整清單

事前準備

必要的角色

如要取得管理機構政策所需的權限,請要求管理員為您授予機構的機構政策管理員 (roles/orgpolicy.policyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

委派機構政策管理權

如要將機構政策的管理權委派給其他主體,請在角色繫結中新增條件

"bindings": [
  {
    "role": "roles/orgpolicy.policyAdmin",
    "members": [
      "PRINCIPAL_1",
      "PRINCIPAL_2"
    ],
    "condition": {
      "title": "TITLE",
      "description": "DESCRIPTION",
      "expression": "resource.matchTag('TAG_KEY', 'TAG_VALUE')"
    }
  }
]

更改下列內容:

  • PRINCIPAL_1,PRINCIPAL_2:您要將機構政策管理員角色委派給的主體清單。

  • TITLE:條件運算式的標題,例如「開發環境的機構政策管理員」。

  • DESCRIPTION:運算式的選用說明。

  • TAG_KEY:標記鍵的命名空間名稱,例如 123456789012/environment

  • TAG_VALUE:標籤值的名稱。這個角色只會授予附加此標記的資源,例如 development

如要進一步瞭解如何在允許政策中使用條件,請參閱「IAM 條件總覽」。

在機構政策中使用清單規則

您可以在機構資源上設定機構政策,使用清單規則拒絕存取特定服務。以下程序說明如何使用 Google Cloud CLI 設定組織政策。如需瞭解如何使用 Google Cloud 控制台查看及設定機構政策,請參閱「建立及管理政策」。

使用清單規則的機構政策最多只能有 500 個允許或拒絕的值,且不得超過 32 KB。如果建立或更新的機構政策超過 500 個值,或大小超過 32 KB,就無法順利儲存,且要求會傳回錯誤。

對機構資源設定強制執行

如要使用 gcloud CLI 在機構中設定強制執行,請按照下列步驟操作:

  1. 使用 describe 指令取得機構資源的現行政策。這項指令會傳回直接套用至這項資源的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --organization=ORGANIZATION_ID
    

    更改下列內容:

    • ORGANIZATION_ID:機構資源的專屬 ID。機構 ID 的格式為十進位數字,開頭不得為零。

    • CONSTRAINT_NAME:要強制執行的服務限制。舉例來說,gcp.restrictNonCmekServices 限制會限制哪些服務可以在沒有客戶自行管理的加密金鑰 (CMEK) 的情況下建立資源。

    您也可以將組織政策分別套用到具有 --folder--project 標記的資料夾或專案,以及資料夾 ID專案 ID

    如果目前有機構政策,回應會傳回該政策。例如:

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 指令設定機構的政策。這會覆寫附加至資源的任何政策。

    1. 建立暫存檔案 /tmp/policy.yaml 來儲存政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - values:
            deniedValues:
            - VALUE_A
      
    2. 執行 set-policy 指令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. 使用 describe --effective 查看目前生效的政策。這會傳回機構政策,因為系統會在資源階層的這一點評估機構政策,包括繼承項目。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    指令輸出將如下所示:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      etag: BwVJi0OOESU=
      rules:
      - values:
          deniedValues:
          - VALUE_A
    

    由於此組織政策是在機構層級上設定,因此所有允許繼承的子項資源都會繼承這個組織政策。

機構政策變更最多可能需要 15 分鐘才會全面生效。

對階層樹狀子目錄設定強制執行

含有清單規則的限制會採用明確定義的值,判斷應允許或拒絕哪些資源。部分限制也可以接受使用前置字串 under: 的值,指定以該資源為根的子樹狀結構。在允許或拒絕的值上使用 under: 前置字串,會導致機構政策對該資源及其所有子項採取行動。如要瞭解允許使用 under: 前置字串的限制,請參閱組織政策限制

使用 under: 前置字串的值稱為階層樹狀子目錄字串。階層樹狀子目錄字串指定了要套用的資源類型。舉例來說,在設定 constraints/compute.storageResourceUseRestrictions 限制時使用「projects/PROJECT_ID」projects/PROJECT_ID的樹狀子目錄字串,即可允許或拒絕在「PROJECT_ID」PROJECT_ID與其所有子項使用 Compute Engine 儲存空間。

  1. 使用 describe 指令取得機構資源的現行政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    更改下列內容:

    • ORGANIZATION_ID 是機構資源的唯一識別碼。

    • CONSTRAINT_NAME 是您要強制執行的服務限制。

    您也可以將組織政策分別套用到具有 --folder--project 標記的資料夾或專案,以及資料夾 ID專案 ID

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 指令在專案中設定政策。under: 前置字串會設定限制,拒絕具名資源和所有子資源。

    1. 建立暫存檔案 /tmp/policy.yaml 來儲存政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
      
    2. 執行 set-policy 指令:

      gcloud org-policies set-policy /tmp/policy.yaml
      

    其中:

    • under: 是前置字元,表示後方為子樹狀結構字串。

    • folders/VALUE_A 是您要拒絕的根目錄資源資料夾 ID。這項資源和資源階層中的所有子項都會遭到拒絕。

    您也可以將 under: 前置字串套用至機構和專案,如下列範例所示:

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. 使用 describe --effective 查看目前生效的政策。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    指令輸出將如下所示:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - under:folders/VALUE_A
    

    現在,這項政策會評估為拒絕資料夾 VALUE_A 和所有子系資源。

機構政策變更最多可能需要 15 分鐘才會全面生效。

合併專案上的組織政策

您可以對資源設定機構政策,該政策會與從父項資源沿用的任何政策合併。接著,系統會評估這個合併後的政策,以根據繼承規則建立新的有效政策。

  1. 使用 describe 指令取得資源的現行政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    更改下列內容:

    • PROJECT_ID:專案的唯一 ID

    • CONSTRAINT_NAME:要強制執行的服務限制。

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 describe --effective 指令顯示目前生效的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出包含從機構資源繼承的拒絕值:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
    
  3. 使用 set-policy 指令在專案中設定政策。

    1. 建立暫存檔案 /tmp/policy.yaml 來儲存政策:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        inheritFromParent: true
        rules:
        - values:
            deniedValues:
            - VALUE_B
            - VALUE_C
      
    2. 執行 set-policy 指令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. 再次使用 describe --effective 指令,顯示更新後的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出將包含資源政策和父項政策合併後的有效結果:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
            - VALUE_A
            - VALUE_B
            - VALUE_C
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

復原預設的限制行為

您可以使用 reset 指令,將政策重設為使用限制的預設行為。如需所有可用限制及其預設值的清單,請參閱「機構政策限制」。以下範例假設預設限制行為是允許所有值。

  1. 取得專案的有效政策,以顯示目前合併的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    PROJECT_ID 替換為專案的專屬 ID。指令輸出將如下所示:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. 使用 reset 指令重設機構政策。

    gcloud org-policies reset CONSTRAINT_NAME \
        --project=PROJECT_ID
    
  3. 取得有效政策以驗證預設行為:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出將允許所有的值:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

刪除組織政策

您可以刪除資源中的組織政策。未設定組織政策的資源會繼承其父項資源的任何政策。如果您刪除了機構資源上的組織政策,有效政策將會是限制的預設行為。

下列步驟說明如何刪除機構的機構政策。

  1. 使用 delete 指令刪除機構資源的政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替換為機構資源的唯一 ID。指令輸出內容如下:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 取得機構上的有效政策,以驗證限制未強制執行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    指令輸出將如下所示:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

下列步驟說明如何刪除專案上的組織政策:

  1. 使用 delete 指令刪除專案的政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    其中 PROJECT_ID 是專案的唯一識別碼。指令輸出將如下所示:

    Deleted policy
    [projects/PROJECT_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 取得專案上的有效政策,以驗證限制未強制執行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出將如下所示:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

在機構政策中使用布林值規則

對機構資源設定強制執行

以下程序說明如何使用 Google Cloud CLI,透過布林值規則設定組織政策。如要瞭解如何使用 Google Cloud 控制台查看及設定機構政策,請參閱「建立及管理政策」。

  1. 使用 describe 指令取得機構資源的現行政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替換為機構資源的唯一 ID。您也可以將組織政策分別套用到具有 --folder--project 標記的資料夾或專案,以及資料夾 ID專案 ID

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 指令在專案中設定政策。

    1. 建立暫存檔案 /tmp/policy.yaml 來儲存政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
    2. 執行 set-policy 指令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. 使用 describe --effective 查看目前生效的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    指令輸出將如下所示:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: true
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

覆寫專案的組織政策

如要為專案覆寫機構政策,請設定政策,對專案以下階層的所有資源停用限制的強制執行。

  1. 取得資源上的現有政策,顯示政策是空的。

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    其中 PROJECT_ID 是專案的唯一識別碼

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 取得專案的有效政策,以確認該限制正在專案上強制執行。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出將如下所示:

    name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: true
    
  3. 使用 set-policy 指令在專案中設定政策。

    1. 建立暫存檔案 /tmp/policy.yaml 來儲存政策:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: false
      
    2. 執行 set-policy 指令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. 取得有效政策,表示系統已不在專案上強制執行限制。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    指令輸出將如下所示:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: false
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

刪除組織政策

您可以刪除資源中的組織政策。未設定組織政策的資源會繼承其父項資源的任何政策。如果您刪除了機構資源上的組織政策,有效政策將會是限制的預設行為。

下列步驟說明如何刪除機構和專案的機構政策。

  1. 使用 delete 指令從機構資源刪除政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替換為機構資源的唯一 ID。指令輸出內容如下:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 取得機構上的有效政策,以驗證限制未強制執行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. 使用 delete 指令從專案中刪除機構政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    指令輸出將如下所示:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  4. 取得專案上的有效政策,以驗證限制未強制執行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    PROJECT_ID 替換為專案的唯一 ID。

    如果未設定政策,系統會傳回 NOT_FOUND 錯誤:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

機構政策變更最多可能需要 15 分鐘才會全面生效。

在機構政策中使用受管理限制

受管理限制是以自訂機構政策平台為基礎建構而成。他們可以使用機構政策服務的政策模擬器,並試行機構政策,更安全地部署政策變更。

查看及找出受管理限制

如要查看貴機構可用的受管理限制,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。

    前往「機構政策」

  2. 從專案選擇工具中,選取要查看機構政策的專案、資料夾或機構。隨即顯示「Organization policies」(機構政策) 頁面,其中列出適用於這項資源的機構政策限制。

  3. 您可以依限制類型篩選或排序機構政策清單,找出受管理限制。從清單中選取要查看詳細資料的受管理限制。在隨即顯示的「政策詳情」頁面中,您可以查看這項機構政策的來源、對這項資源進行的有效政策評估、這項資源的機構政策目前設定、限制條件的詳細資料,以及使用限制條件的預設參數。

gcloud

如要列出機構政策中對機構強制執行的受管理和自訂限制,請使用 org-policies list-custom-constraints 指令。

gcloud org-policies list-custom-constraints \
  --organization=ORGANIZATION_ID

ORGANIZATION_ID 替換為機構 ID。

如要取得資源特定受管理限制的詳細資料,請使用 org-policies describe-custom-constraint 指令。

gcloud org-policies describe-custom-constraint CONSTRAINT_NAME \
    --organization=ORGANIZATION_ID

更改下列內容:

  • CONSTRAINT_NAME:要取得詳細資料的受管理限制名稱。例如:iam.managed.disableServiceAccountKeyUpload

  • ORGANIZATION_ID:貴機構的 ID。

REST

如要列出機構政策中設定的受管理和自訂限制,請使用organizations.customConstraints.list方法。

  GET https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/customConstraints

ORGANIZATION_ID 替換為機構 ID。

建立及更新受管理限制

機構政策由限制的設定來定義。政策可以在資源上設定、從父項資源繼承,也可以重設為 Google 代管的預設行為。

如要根據受管理限制建立或更新機構政策,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Organization policies」(組織政策) 頁面。

前往「機構政策」

  1. 從專案選擇工具中,選取要編輯機構政策的專案、資料夾或機構。隨即顯示「Organization policies」(機構政策) 頁面,其中列出可供這個資源使用的機構政策限制,並提供篩選功能。

  2. 從清單中選取要更新機構政策的受管理限制。

  3. 如要更新資源的機構政策,請按一下「管理政策」

  4. 在「編輯政策」頁面中,選取「覆寫上層政策」

  5. 選取「新增規則」

  6. 在「Enforcement」(強制執行) 下,選取是否要強制執行這項機構政策。

  7. 如要根據標記為機構政策設定條件,請按一下「新增條件」。如果您在組織政策中新增條件規則,就必須新增至少一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定機構政策」。

  8. 如果這項限制支援參數,這些參數會顯示在「參數」下方,並顯示已設定的值。如果未設定參數,系統會改為顯示 Google 代管的預設值。

    如要變更參數,請選取「編輯」

    1. 在「值」下方選取「預設」,即可重設這項限制,並使用及顯示 Google 代管的預設值。

    選取「使用者定義」來設定參數。

    1. 如果參數接受多個值,請在欄位中輸入允許或拒絕的值。選取「新增值」 ,即可新增更多欄位。

    用來驗證參數值的一般運算語言 (CEL) 運算式,請參閱「有效值運算式」。所有使用者定義的值都必須與該運算式相符。

    1. 如果是布林值參數,請選取「True」或「False」,判斷是否應套用參數。

    2. 按一下 [儲存]

  9. 如要預覽機構政策變更的影響,請按一下「測試變更」。如要進一步瞭解如何測試機構政策變更,請參閱「使用 Policy Simulator 測試機構政策變更」。

  10. 如要在模擬測試模式下強制執行機構政策,請按一下「設定模擬測試政策」。詳情請參閱「以模擬執行模式建立機構政策」。

  11. 確認機構政策在試營運模式下運作正常後,請按一下「設定政策」,設定正式政策。

gcloud

  1. 建立 YAML 檔案來定義機構政策。如果這項限制不支援參數,請省略 rules 下的 parameters 區塊。

    name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
    spec:
    rules:
        - enforce: ENFORCEMENT_STATE
          parameters:
            LIST_PARAMETER:
               - LIST_VALUE_1
               - LIST_VALUE_2
            BOOLEAN_PARAMETER: BOOLEAN_VALUE
    
    dryRunSpec:
      rules:
      - enforce: ENFORCEMENT_STATE
        parameters:
          LIST_PARAMETER:
             - LIST_VALUE_1
             - LIST_VALUE_2
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
    

    更改下列內容:

    • RESOURCE_TYPE,搭配 organizationsfoldersprojects

    • RESOURCE_ID,視 RESOURCE_TYPE 中指定的資源類型而定,可以是機構 ID、資料夾 ID、專案 ID 或專案編號。

    • CONSTRAINT_NAME 改成您要設定的限制名稱。

    • ENFORCEMENT_STATE,在設定時強制執行這項機構政策,或在設定時停用這項政策。truefalse

    • LIST_PARAMETER,並填入要設定的清單參數名稱。如需可用參數清單,請參閱限制說明。

    • LIST_VALUE_1LIST_VALUE_2 和其他清單值,可根據這個參數的設定,允許或拒絕值清單。如要瞭解可接受的值,請參閱限制說明。

    • BOOLEAN_PARAMETER,並將其設為要設定的布林值參數名稱。如需可用參數清單,請參閱限制說明。

    • BOOLEAN_VALUE,搭配 TrueFalse 使用。

    (選用) 如要根據標記設定機構政策條件,請在 rules 中新增 condition 區塊。如果為組織政策新增條件規則,至少須新增一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定機構政策」。

  2. 執行 org-policies set-policy 指令並加上 dryRunSpec 旗標,以模擬執行模式設定機構政策:

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    POLICY_PATH 替換為機構政策 YAML 檔案的完整路徑。

    如要進一步瞭解試執行機構政策,請參閱以試執行模式建立機構政策

  3. 使用 policy-intelligence simulate orgpolicy 指令,在強制執行機構政策變更前,預先瞭解影響:

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    更改下列內容:

    • ORGANIZATION_ID 替換為您的機構 ID,例如 1234567890123。系統不支援模擬多個機構的變更。

    • POLICY_PATH,並提供機構政策 YAML 檔案的完整路徑。

    如要進一步瞭解如何測試機構政策變更,請參閱「使用 Policy Simulator 測試機構政策變更」。

  4. 確認模擬測試模式中的機構政策運作正常後,請使用 org-policies set-policy 指令和 spec 旗標設定正式政策:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    POLICY_PATH 替換為機構政策 YAML 檔案的完整路徑。

REST

如要設定機構政策,請使用 organizations.policies.create 方法。

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

要求 JSON 主體包含組織政策的定義。如果這項限制不支援參數,請省略 rules 下方的 parameters 區塊。

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
        "parameters": {
          "LIST_PARAMETER": [
            "LIST_VALUE_1",
            "LIST_VALUE_2"
          ],
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
        }
      }
    ]
  }
  "dryRunSpec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
        "parameters": {
          "LIST_PARAMETER": [
            "LIST_VALUE_1",
            "LIST_VALUE_2"
          ],
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
        }
      }
    ]
  }
}

更改下列內容:

  • RESOURCE_TYPE,搭配 organizationsfoldersprojects

  • RESOURCE_ID,視 RESOURCE_TYPE 中指定的資源類型而定,可以是機構 ID、資料夾 ID、專案 ID 或專案編號。

  • CONSTRAINT_NAME 改成您要設定的限制名稱。

  • ENFORCEMENT_STATE,在設定時強制執行這項機構政策,或在設定時停用這項政策。truefalse

  • LIST_PARAMETER,並填入要設定的清單參數名稱。如需可用參數清單,請參閱限制說明。

  • LIST_VALUE_1LIST_VALUE_2 和其他清單值,可根據這個參數的設定,允許或拒絕值清單。如要瞭解可接受的值,請參閱限制說明。

  • BOOLEAN_PARAMETER,並將其設為要設定的布林值參數名稱。如需可用參數清單,請參閱限制說明。

  • BOOLEAN_VALUE,搭配 TrueFalse 使用。

(選用) 如要根據標記設定機構政策條件,請在 rules 中新增 condition 區塊。如果為組織政策新增條件規則,至少須新增一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定機構政策」。

如要進一步瞭解試執行機構政策,請參閱以試執行模式建立機構政策

機構政策變更最多可能需要 15 分鐘才會全面生效。