使用自訂機構政策
本頁面說明如何使用機構政策服務自訂限制,限制下列 Trusted Cloud by S3NS 資源的特定作業:
bigquerydatatransfer.googleapis.com/TransferConfig
如要進一步瞭解機構政策,請參閱「自訂機構政策」。
關於機構政策和限制
Trusted Cloud 機構政策服務可讓您透過程式以集中方式控管機構資源。身為機構政策管理員,您可以定義機構政策,也就是一組稱為「限制」的限制,適用於 Trusted Cloud by S3NS 資源階層中的Trusted Cloud 資源和這些資源的子系。您可以在機構、資料夾或專案層級強制執行機構政策。
機構政策為各種 Trusted Cloud 服務提供內建的受管理限制條件。不過,如果您想進一步控管機構政策中受限制的特定欄位,並以更精細的方式進行自訂控管,也可以建立自訂限制,並在機構政策中使用這些自訂限制。
政策繼承
根據預設,機構政策會由您強制執行政策的資源子項繼承。舉例來說,如果您對資料夾套用政策, Trusted Cloud 就會對資料夾中的所有專案套用該政策。如要進一步瞭解這項行為和如何變更,請參閱「階層評估規則」。
優點
您可以使用自訂機構政策,允許或拒絕 BigQuery 資料移轉服務移轉設定的特定作業,以符合機構的遵循規定和安全性要求。如果建立或更新轉移設定的要求無法滿足機構政策設定的自訂限制,則要求會失敗,並傳回錯誤至呼叫端。
事前準備
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Make sure that billing is enabled for your Trusted Cloud project.
-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 請務必確認您知道自己的機構 ID。
-
機構資源上的「機構政策管理員 」(
roles/orgpolicy.policyAdmin
) -
建立或更新 BigQuery 資料移轉服務移轉設定:
BigQuery 管理員 (
roles/bigquery.admin
) 在專案資源上 -
orgpolicy.*
機構資源 -
建立或更新 BigQuery 資料移轉服務的移轉設定:
-
專案資源的
bigquery.transfers.get
-
專案資源的
bigquery.transfers.update
-
專案資源的
ORGANIZATION_ID
:貴機構 ID,例如123456789
。CONSTRAINT_NAME
:您要為新自訂限制設定的名稱。自訂限制的開頭必須為custom.
,且只能包含大寫英文字母、小寫英文字母或數字。例如,custom.dtsEnableEmailNotification
。這個欄位的長度上限為 70 個半形字元。RESOURCE_NAME
:包含您要限制的物件和欄位的Trusted Cloud 資源完整限定名稱。例如:bigquerydatatransfer.googleapis.com/TransferConfig
。CONDITION
:針對支援的服務資源表示法編寫的 CEL 條件。這個欄位的長度上限為 1000 個半形字元。如要進一步瞭解可用於寫入條件的資源,請參閱「支援的資源」。例如:resource.emailPreferences.enableFailureEmail == true
。ACTION
:如果符合condition
,則採取的動作。可能的值為ALLOW
和DENY
。DISPLAY_NAME
:限制的易讀名稱。這個欄位的長度上限為 200 個半形字元。DESCRIPTION
:在違反政策時,要以錯誤訊息形式顯示的限制說明。這個欄位的長度上限為 2000 個半形字元。- 在 Trusted Cloud 控制台中,前往「Organization policies」(機構政策) 頁面。
- 在專案選擇工具中,選取要設定機構政策的專案。
- 在「Organization policies」頁面的清單中選取限制條件,即可查看該限制條件的「Policy details」頁面。
- 如要設定這項資源的機構政策,請按一下「管理政策」。
- 在「Edit policy」頁面中,選取「Override parent's policy」。
- 按一下「新增規則」。
- 在「Enforcement」(強制執行) 部分,選取是否要啟用這項機構政策的強制執行功能。
- 選用:如要讓機構政策依標記而定,請按一下「新增條件」。請注意,如果您在組織政策中新增條件規則,則必須至少新增一項無條件規則,否則無法儲存政策。詳情請參閱「設定含有標記的組織政策」。
- 按一下「測試變更」,模擬機構政策的效果。舊版受管理限制條件無法進行政策模擬。詳情請參閱「 使用 Policy Simulator 測試組織政策變更」。
- 如要完成並套用機構政策,請按一下「設定政策」。這項政策最多需要 15 分鐘才會生效。
-
PROJECT_ID
:您要強制執行限制的專案。 -
CONSTRAINT_NAME
:您為自訂限制定義的名稱。例如:custom.dtsEnableEmailNotification
。 - 您的機構 ID
- 專案 ID
將下列檔案儲存為
constraint-dts-enable-email.yaml
:name: organizations/ORGANIZATION_ID/customConstraints/custom.dtsEnableEmailNotification resourceTypes: - bigquerydatatransfer.googleapis.com/TransferConfig methodTypes: - CREATE condition: resource.emailPreferences.enableFailureEmail == true actionType: ALLOW displayName: The BigQuery Data Transfer Service always enables email notications description: The BigQuery Data Transfer Service always enables email notications on data transfer failures.
將
ORGANIZATION_ID
替換為您的機構 ID。這項限制定義了檢查是否為新移轉設定啟用電子郵件通知的限制條件。如果未啟用,系統會拒絕該操作。
套用限制:
gcloud org-policies set-custom-constraint ~/constraint-dts-enable-email.yaml
確認限制條件是否存在:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
輸出結果會與下列內容相似:
CUSTOM_CONSTRAINT ACTION_TYPE METHOD_TYPES RESOURCE_TYPES DISPLAY_NAME custom.dtsEnableEmailNotification ALLOW CREATE bigquerydatatransfer.googleapis.com/TransferConfig The BigQuery Data Transfer Service always enables email notications ...
將下列檔案儲存為
policy-dts-enable-email.yaml
:name: projects/PROJECT_ID/policies/custom.dtsEnableEmailNotification spec: rules: - enforce: true
將
PROJECT_ID
替換為您的專案 ID。套用政策:
gcloud org-policies set-policy ~/policy-dts-enable-email.yaml
確認政策是否存在:
gcloud org-policies list --project=PROJECT_ID
輸出結果會與下列內容相似:
CONSTRAINT LIST_POLICY BOOLEAN_POLICY ETAG custom.dtsEnableEmailNotification - SET CPyxlbgGENDL3tEC-
必要的角色
如要取得管理組織政策所需的權限,請要求管理員授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色包含管理機構政策所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
必須具備下列權限,才能管理組織政策:
建立自訂限制
自訂限制是在 YAML 檔案中定義,並由您要套用機構政策的服務支援的資源、方法、條件和動作定義。您可以使用一般運算語言 (CEL) 定義自訂限制條件。如要進一步瞭解如何使用 CEL 在自訂限制中建立條件,請參閱「建立及管理自訂限制」一文的 CEL 相關部分。
如要建立自訂限制,請使用下列格式建立 YAML 檔案:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- 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
。完成後,自訂限制會列入 Trusted Cloud by S3NS 機構政策清單,成為機構政策。如要確認自訂限制是否存在,請使用 gcloud org-policies list-custom-constraints
指令:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
替換為機構資源的 ID。詳情請參閱「查看組織政策」。強制執行自訂機構政策
您可以建立參照限制的機構政策,然後將該機構政策套用至 Trusted Cloud by S3NS 資源,藉此強制執行限制。控制台
gcloud
如要建立包含布林值規則的機構政策,請建立參照限制的政策 YAML 檔案:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
取代下列內容:
如要強制執行包含限制的機構政策,請執行下列指令:
gcloud org-policies set-policy POLICY_PATH
將 POLICY_PATH
替換為機構政策 YAML 檔案的完整路徑。這項政策最多需要 15 分鐘才會生效。
測試自訂機構政策
以下範例會建立自訂限制和政策,要求針對特定專案中的所有新轉移設定啟用電子郵件通知。
開始之前,請先瞭解下列事項:
建立限制
建立政策
套用政策後,請等待約兩分鐘, Trusted Cloud 才會開始強制執行政策。
測試政策
在專案中,嘗試建立 BigQuery 資料移轉服務移轉設定,並關閉電子郵件通知。
輸出內容如下:
Operation denied by custom org policy: ["customConstraints/custom.dtsEnableEmailNotification": "The BigQuery Data Transfer Service always enables email notications on data transfer failures."].
常見用途的自訂機構政策範例
下表列出常見用途的部分自訂限制條件語法:
說明 | 限制條件語法 |
---|---|
禁止從 Azure Blob 儲存體移轉資料 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.denyDtsAzureTransfers resourceTypes: - bigquerydatatransfer.googleapis.com/TransferConfig methodTypes: - CREATE condition: resource.dataSourceId == "azure_blob_storage" actionType: DENY displayName: Deny data transfers from Azure Blob Storage to BigQuery description: Disallow creating data transfer configurations from Azure Blob Storage. |
一律啟用自動排程功能 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.dtsNoManualSchedule resourceTypes: - bigquerydatatransfer.googleapis.com/TransferConfig methodTypes: - CREATE - UPDATE condition: resource.scheduleOptions.disableAutoScheduling == false actionType: ALLOW displayName: Transfer configurations always enable auto-scheduling description: Always enable auto-scheduling for BigQuery Data Transfer Service transfer configurations. |
Google Ads 轉移作業必須有超過三天的資料重新整理時間 |
name: organizations/ORGANIZATION_ID/customConstraints/custom.dtsGoogleAdsConstraint resourceTypes: - bigquerydatatransfer.googleapis.com/TransferConfig methodTypes: - CREATE - UPDATE condition: resource.dataSourceId == "google_ads" && resource.dataRefreshWindowDays < 3 actionType: DENY displayName: Google Ads transfers data refresh window must be greater than three days description: Disallow creating Google Ads data transfer configurations whose data refresh window is less than three days. |
BigQuery 資料移轉服務支援的資源
下表列出可在自訂限制中參照的 BigQuery 資料移轉服務資源。資源 | 欄位 |
---|---|
bigquerydatatransfer.googleapis.com/TransferConfig |
resource.dataRefreshWindowDays
|
resource.dataSourceId
| |
resource.destinationDatasetId
| |
resource.disabled
| |
resource.displayName
| |
resource.emailPreferences.enableFailureEmail
| |
resource.encryptionConfiguration.kmsKeyName
| |
resource.name
| |
resource.notificationPubsubTopic
| |
resource.schedule
| |
resource.scheduleOptions.disableAutoScheduling
| |
resource.scheduleOptions.endTime
| |
resource.scheduleOptions.startTime
| |
resource.scheduleOptionsV2.eventDrivenSchedule.pubsubSubscription
| |
resource.scheduleOptionsV2.timeBasedSchedule.endTime
| |
resource.scheduleOptionsV2.timeBasedSchedule.schedule
| |
resource.scheduleOptionsV2.timeBasedSchedule.startTime
|