如果您有法規遵循或監管規定,必須將資料儲存在特定位置,或是使用客戶自行管理的加密金鑰 (CMEK),建議您同時設定機構政策和可觀測性 bucket 的預設設定。機構政策和可觀測性 bucket 的預設設定可讓您指定儲存位置,以及這些 bucket 是否使用 Google 預設加密或客戶自行管理的加密金鑰 (CMEK)。
對於機構、資料夾和專案,可觀測性 bucket 的預設設定可讓您設定下列項目:
- 預設儲存位置。
- 每個位置都有預設的 Cloud Key Management Service 金鑰。
系統會透過兩種方式使用預設設定:
系統自動建立可觀測性 bucket 時,會使用預設設定判斷 bucket 的位置和加密金鑰。如果您未定義預設設定,系統會選取位置,且 bucket 會使用 Google 預設加密機制。
發出 API 要求來啟動可觀測性 bucket 的建立作業時,您需要提供位置。不過,除非 API 要求的引數指定金鑰,否則系統會自動使用預設設定定義的 Cloud KMS 金鑰加密資料。
由於可觀測性 bucket 的上層一律為專案,因此建立 bucket 時,系統會先搜尋專案層級的預設設定。如果沒有,系統會搜尋父項的上層項目,找出預設設定。舉例來說,如果您為資料夾定義預設設定,這些設定會套用至該資料夾的子系,但已設定預設設定的子系除外。
您也可以使用組織政策,限制新觀測能力 bucket 的位置、要求使用 CMEK,或限制可用於加密的 Cloud KMS 金鑰。如果您設定的機構政策要求使用 CMEK,則必須設定可觀測性 bucket 的預設設定。否則,系統建立的觀測能力 bucket 將無法完成佈建。
本文不適用於儲存記錄資料的記錄檔儲存空間。如要瞭解如何設定預設位置或為記錄儲存值區啟用 CMEK,請參閱「設定 Cloud Logging 的預設資源設定」。
適用的組織政策
如要控管觀測能力 bucket 的建立位置,以及這些 bucket 的加密金鑰管理員,建議您設定下列組織政策:
限制 ID 為
constraints/gcp.resourceLocations的政策。這項政策定義了一系列可建立新資源的位置。如要使用可觀測性值區,這組位置必須包含至少一個支援的可觀測性值區位置。具有限制 ID
constraints/gcp.restrictNonCmekServices的Deny政策。這項政策規定新資源必須以 CMEK 加密。限制 ID 為
constraints/gcp.restrictCmekCryptoKeyProjects的政策。這項政策會限制用於加密的 Cloud Key Management Service 金鑰。
您可以建立組織政策,並在組織、資料夾或專案層級套用。詳情請參閱「建立及編輯政策」。
組織政策對設定預設位置的影響
發出指令設定預設位置時,Google Cloud Observability 會驗證指定位置是否符合組織政策,以及是否為支援的可觀測性 bucket 位置。如果任一驗證失敗,設定預設位置的指令也會失敗。
如果修改組織政策允許的位置清單,導致預設儲存位置不再允許,則必須另外更新該設定。您可能也需要為更新後的預設位置設定預設 Cloud KMS 金鑰。
組織政策和預設設定的互動方式
觀測能力值區的上層必須是專案。也就是說,系統無法在資料夾或機構中建立可觀測性 bucket。不過,如果您為機構或資料夾設定可觀測性 bucket 的預設設定,這些預設設定會套用至該機構或資料夾的所有子代專案。
下表列出系統用來判斷新可觀測性 bucket 位置的規則:
| 使用組織政策 限制位置 |
專案 (或上層專案) 具有 預設儲存位置 |
系統如何決定新觀測能力 bucket 的位置 |
|---|---|---|
| 否 | 否 | 系統會從支援的位置中,為觀測能力 bucket 選取位置。 |
| 是 | 否 | 系統會從機構政策允許的位置,以及可觀測性儲存空間支援的位置,選取交集位置。 如果交集為空,系統就不會建立可觀測性 bucket。 |
| 否 | 是 | 系統會將位置設為專案預設設定中定義的預設儲存位置。如果專案未定義預設儲存位置,系統會使用為上層定義的預設儲存位置。 |
| 是 | 是 | 系統會將位置設為專案預設設定中定義的預設儲存位置。如果專案未定義預設儲存位置,系統會使用上層的預設儲存位置。 如果機構政策不允許使用預設儲存位置,系統就不會建立可觀測性 bucket。 |
下表列出系統用來判斷新可觀測性 bucket 是否使用 CMEK 的規則,以及 Cloud KMS 金鑰的值 (如果使用 CMEK)。如要加密可觀測性 bucket,Cloud KMS 金鑰必須位於 bucket 所在位置,且組織政策必須允許使用該金鑰。如未指定含有 gcp.restrictCmekCryptoKeyProjects 限制的組織政策,則允許所有金鑰:
| 使用組織政策 要求使用 CMEK |
專案 (或上層專案) 具有 預設 Cloud KMS 金鑰 |
系統如何決定要使用哪個 Cloud KMS 金鑰。 |
|---|---|---|
| 否 | 否 | 可觀測性 bucket 不使用 CMEK。 |
| 是 | 否 | 系統不會建立新的觀測能力 bucket,因為組織政策要求使用 CMEK,但未定義預設 Cloud KMS 金鑰。 |
| 否 | 是 | 如要找出加密金鑰,系統會先判斷專案或其中一個上層項目是否已設定預設儲存位置。如未指定,系統會選取位置並建立觀測能力 bucket。儲存空間不使用 CMEK。 如果找到預設儲存位置,系統就會在專案的預設設定中搜尋預設 Cloud KMS 金鑰。如果專案的預設設定未指定適當的金鑰,系統就會在祖先的預設設定中,搜尋新 bucket 所在位置的預設金鑰。 發生下列任一情況:
|
| 是 | 是 | 為找出加密金鑰,系統會先判斷專案或其上層資源是否已設定預設儲存位置。如果未設定預設儲存位置,系統就不會建立新的可觀測性 bucket。 如果找到預設儲存位置,系統就會在專案的預設設定中搜尋預設 Cloud KMS 金鑰。如果專案的預設設定未指定適當的金鑰,系統就會搜尋上層預設設定,找出位於新 bucket 位置的預設金鑰。 發生下列任一情況:
|
查看觀測功能 bucket 的預設設定
本節說明如何查看資源 (組織、資料夾或專案) 的可觀測性 bucket 預設設定。
如要擷取可觀測性 bucket 的預設設定,您必須發出多個指令。第一個指令會傳回預設儲存位置。第二個指令會傳回該位置的 Cloud KMS 金鑰。
本節所述指令適用於特定資源。這些指令的回應僅限於該資源的使用者設定值。這些指令不會傳回資源可能使用的設定,但這些設定是為祖先設定。
事前準備
設定專案、IAM 角色,並選取您打算使用的介面。
設定專案和角色
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自體驗產品的實際應用成效。新客戶還能獲得價值 $300 美元的免費抵免額,能用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
如要取得查看組織、資料夾或專案可觀測性 bucket 預設設定所需的權限,請要求管理員在組織、資料夾或專案中授予您「可觀測性檢視者」 (
roles/observability.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。這個預先定義的角色具備
observability.settings.get權限,可查看機構、資料夾或專案的可觀測性 Bucket 預設設定。
選取要使用的介面
gcloud
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
取得資源的預設儲存位置
如要取得資源的預設儲存位置,請將指令傳送至資源專屬端點,並將該指令的位置設為 global。回應資料包括預設儲存位置和服務帳戶名稱。如果您需要資源的 CMEK,系統會使用這個服務帳戶擷取 Cloud KMS 金鑰。
gcloud
使用下列任何指令資料前,請先替換以下項目:
使用下列其中一種方式,將要查詢的專案、資料夾或組織 ID 傳遞至指令:--project=PROJECT_ID,其中 PROJECT_ID 包含專案的 ID。--folder=FOLDER_ID,其中 FOLDER_ID 包含資料夾 ID。--organization=ORGANIZATION_ID,其中 ORGANIZATION_ID 包含貴組織的 ID。
執行
gcloud observability settings describe
指令:
Linux、macOS 或 Cloud Shell
gcloud observability settings describe \ --location=global --project=PROJECT_ID
Windows (PowerShell)
gcloud observability settings describe ` --location=global --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability settings describe ^ --location=global --project=PROJECT_ID
以下說明指令的回應:
Parsed [location] resource: projects/my-project/locations/global defaultStorageLocation: eu name: projects/my-project/locations/global/settings serviceAccountId: service-12345@gcp-sa-observability.iam.gserviceaccount.com
Terraform
您可以使用 Terraform 為資源 (專案、資料夾或機構) 設定預設儲存位置。您無法使用 Terraform 報告資源的預設儲存位置。
REST
如要顯示資源的預設設定,請選取適當的端點,然後在 APIs Explorer 中指定路徑參數:
組織:
- API 端點:
organizations.locations.getSettings 路徑參數:
organizations/ORGANIZATION_ID/locations/global/settings
資料夾:
- API 端點:
folders.locations.getSettings 路徑參數:
folders/FOLDER_ID/locations/global/settings
專案:
路徑參數:
projects/PROJECT_ID/locations/global/settings
上述運算式中的變數具有下列意義:
- API 端點:
點選「Execute」。
如果成功,回應會是
Settings物件。如果default_storage_location欄位空白,表示未設定預設儲存位置。舉例來說,如果您發出
getSettings指令,並將路徑參數設為組織,回應會類似下列其中一項:預設儲存位置設為
"us":default_storage_location: "us" service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com未設定預設儲存位置:
service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
取得資源和位置的預設 Cloud KMS 金鑰
Cloud KMS 金鑰是區域性資源。只能用於加密或解密與金鑰儲存在相同位置的資料。針對觀測能力 bucket 支援的每個位置,以及每個組織、資料夾或專案,您可以使用 Cloud KMS 金鑰,設定觀測能力 bucket 的預設設定。
本節說明如何取得資源和位置的預設 Cloud KMS 金鑰。
gcloud
使用下列任何指令資料之前,請先替換以下項目:
- LOCATION:資源的 Cloud KMS 金鑰位置。資源可以是專案、資料夾或組織。如果將位置設為
global,指令會傳回資源的預設儲存位置。 - 使用下列其中一種方式,將要查詢的專案、資料夾或組織 ID 傳遞至指令:
--project=PROJECT_ID,其中 PROJECT_ID 包含專案的 ID。--folder=FOLDER_ID,其中 FOLDER_ID 包含資料夾 ID。--organization=ORGANIZATION_ID,其中 ORGANIZATION_ID 包含組織 ID。
執行
gcloud observability settings describe
指令:
Linux、macOS 或 Cloud Shell
gcloud observability settings describe \ --location=LOCATION --project=PROJECT_ID
Windows (PowerShell)
gcloud observability settings describe ` --location=LOCATION --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability settings describe ^ --location=LOCATION --project=PROJECT_ID
以下說明指令的回應:
Parsed [location] resource: projects/my-project/locations/us kmsKeyName: projects/my-project/locations/us/keyRings/test/cryptoKeys/test-key name: projects/my-project/locations/us/settings serviceAccountId: service-12345@gcp-sa-observability.iam.gserviceaccount.com
Terraform
您可以使用 Terraform,為位置和資源 (專案、資料夾或組織) 設定預設 Cloud Key Management Service 金鑰。您無法使用 Terraform 回報資源的預設儲存位置。
REST
如要顯示資源的預設設定,請選取適當的端點,然後在 APIs Explorer 中指定路徑參數:
組織:
路徑參數:
organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings
資料夾:
- API 端點:
folders.locations.getSettings 路徑參數:
folders/FOLDER_ID/locations/LOCATION_ID/settings
專案:
- API 端點:
projects.locations.getSettings 路徑參數:
projects/PROJECT_ID/locations/LOCATION_ID/settings
上述運算式中的變數具有下列意義:
點選「Execute」。
如果成功,回應會是
Settings物件。舉例來說,假設您發出
getSettings指令,並將路徑參數設為organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings,則回應會類似下列其中一種:如果未為機構和位置設定 Cloud KMS 金鑰,回應只會列出服務帳戶:
service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com為組織和位置設定 Cloud KMS 金鑰時,回應會包含服務帳戶和 Cloud KMS 金鑰名稱:
name: "organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings" service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com kms_key_name: "projects/my-kms-project/locations/LOCATION_ID/keyRings/my-key-ring/cryptoKeys/my-key"
設定觀測能力 bucket 的預設設定
本節說明如何為資源 (即機構、資料夾或專案) 設定可觀測性 bucket 的預設設定。
如果您打算為資源和位置啟用 CMEK,請先為該配對設定可觀測性 bucket 的預設設定,再設定預設儲存位置。設定資源和位置的預設設定時,請指定要使用的 Cloud KMS 金鑰。
以下操作說明適用於 APIs Explorer,可讓您從說明文件頁面發出 API 指令。不過,您也可以發出 curl 指令。
設定範例
本節列出常見用途。
新值區必須位於特定位置
如要要求組織中新建立的系統觀測能力 bucket 位於 us 位置,請將組織的預設儲存位置設為 us。
如要覆寫機構層級設定,並要求名為「my-eu-projects」的子資料夾中,系統建立的新可觀測性值區位於「eu」區域,請將「my-eu-projects」資料夾的預設儲存位置設為「eu」。
要求新值區位於特定位置,並使用 CMEK
如要規定機構中所有系統建立的新可觀測性值區都必須位於 us 位置並使用 CMEK,請按照下列步驟操作:
設定貴組織和
us位置的可觀測性 bucket 預設設定,以指定 Cloud KMS 金鑰。將貴組織的預設儲存位置設為「
us」。
事前準備
如果只打算設定預設儲存位置,則不需要任何 Cloud KMS 角色。
-
如要取得設定組織、資料夾或專案觀測能力 bucket 預設設定所需的權限,請要求管理員授予您組織、資料夾或專案的下列 IAM 角色:
- Observability 編輯者 (
roles/observability.editor) - Cloud KMS 管理員 (
roles/cloudkms.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備為組織、資料夾或專案設定可觀測性值區預設設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要為機構、資料夾或專案設定可觀測性 bucket 的預設設定,必須具備下列權限:
-
observability.settings.get -
observability.settings.update -
cloudkms.cryptoKeys.getIamPolicy -
cloudkms.cryptoKeys.setIamPolicy
- Observability 編輯者 (
如果您打算要求使用 CMEK,請務必在所需位置準備好 Cloud KMS 金鑰。視需要建立 Cloud KMS 金鑰環和 Cloud KMS 金鑰。
找出要更新可觀測性 bucket 預設設定的資源。這項資源可以是組織、資料夾或專案。
如果您為組織或資料夾設定預設設定,這些設定會套用至該組織或資料夾的所有子項。如果您為專案設定可觀測性 bucket 的預設設定,則這些設定只會套用至該專案。
授予資源的服務帳戶金鑰存取權
如要為資源設定預設設定,請將角色授予該資源的服務帳戶:
找出要用於加密和解密的 Cloud KMS 金鑰。
Cloud KMS 金鑰為區域性資源。舉例來說,如果您打算要求新的系統建立可觀測性儲存空間必須位於
us位置,則需要位於us位置的 Cloud KMS 金鑰。找出資源的服務帳戶。
舉例來說,如果您希望機構中所有系統建立的新可觀測性值區都位於
us位置,並使用 CMEK,請對global位置發出getSettings呼叫,並將路徑參數設為機構。回應資料會列出機構的服務帳戶:service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com將 Cloud KMS CryptoKey 加密者/解密者 (
roles.cloudkms.cryptoKeyEncrypterDecrypter) 角色授予您在上一步中識別的服務帳戶,用於加密及解密資料的 Cloud KMS 金鑰。這個角色繫結適用於特定 Cloud KMS 金鑰。
gcloud
執行
gcloud kms keys add-iam-policy-binding指令:gcloud kms keys add-iam-policy-binding KMS_KEY_NAME \ --project=KMS_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCT_NAME@gcp-sa-observability.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=LOCATION_ID \ --keyring=KMS_KEY_RING執行上一個指令前,請先替換下列項目:
- KMS_KEY_NAME:金鑰名稱。
- KMS_PROJECT_ID:由專案名稱和隨機指派的數字組成的專屬英數字元 ID,用於執行 Cloud KMS 的專案。 Google Cloud Google Cloud 如要瞭解如何取得這個 ID,請參閱「識別專案」。
- SERVICE_ACCT_NAME:資源服務帳戶的名稱,也就是您在上一個步驟中識別的名稱。
- LOCATION_ID:Cloud KMS 金鑰的位置。
- KMS_KEY_RING:Cloud KMS 金鑰環的名稱。
控制台
- 前往 Google Cloud 控制台的「金鑰管理」頁面。
- 選取包含金鑰的金鑰環名稱。
勾選金鑰的核取方塊。
「權限」分頁隨即顯示。
在「Add members」(新增成員) 對話方塊中,指定要授予存取權的 Google Cloud Observability 服務帳戶電子郵件地址。
在「Select a role」(選取角色) 選單中,選取「Cloud KMS CryptoKey Encrypter/Decrypter」(Cloud KMS CryptoKey 加密者/解密者)。
按一下「新增」。
為資源和位置設定預設 Cloud KMS 金鑰
在上一步中,您已授予資源的服務帳戶權限,可使用特定 Cloud KMS 金鑰加密及解密資料。舉例來說,您可能已授予機構的服務帳戶 IAM 角色,允許該帳戶存取 us 位置的 Cloud KMS 金鑰。
在這個步驟中,您要針對該資源和 Cloud KMS 金鑰的位置,使用金鑰資訊更新可觀測性儲存空間的預設設定。舉例來說,在這個步驟中,您可能會將機構和 us 位置的觀測值 bucket 預設設定,設定為同樣位於 us 位置的 Cloud KMS 金鑰。
接著設定預設儲存位置。如未設定預設儲存位置,即使觀測能力 bucket 位於金鑰定義的位置,也不會使用預設 Cloud KMS 金鑰加密。
gcloud
使用下列任何指令資料之前,請先替換以下項目:
- KMS_KEY_NAME:Cloud KMS 金鑰的名稱。
- LOCATION:資源的 Cloud KMS 金鑰位置。資源是專案、資料夾或機構。如果將位置設為
global,指令會傳回資源的預設儲存位置。 - 使用下列其中一項,將要查詢的專案、資料夾或組織 ID 傳遞至指令:
--project=PROJECT_ID,其中 PROJECT_ID 包含專案的 ID。--folder=FOLDER_ID,其中 FOLDER_ID 包含資料夾 ID。--organization=ORGANIZATION_ID,其中 ORGANIZATION_ID 包含組織 ID。
執行 gcloud observability settings update 指令:
Linux、macOS 或 Cloud Shell
gcloud observability settings update \ --kms-key-name=KMS_KEY_NAME \ --update-mask=kmsKeyName \ --location=LOCATION --project=PROJECT_ID
Windows (PowerShell)
gcloud observability settings update ` --kms-key-name=KMS_KEY_NAME ` --update-mask=kmsKeyName ` --location=LOCATION --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability settings update ^ --kms-key-name=KMS_KEY_NAME ^ --update-mask=kmsKeyName ^ --location=LOCATION --project=PROJECT_ID
更新指令會啟動長時間執行的作業。以下是指令的回應:
Parsed [location] resource: projects/my-project/locations/us Request issued for: [us] Waiting for operation [projects/my-project/locations/us/operations/operation-1775247021184-64e93e8161585-1a55612f-73382a5a] to complete...done. Updated location [us]. '@type': type.googleapis.com/google.cloud.observability.v1.Settings kmsKeyName: projects/my-project/locations/us/keyRings/test/cryptoKeys/test-key name: projects/my-project/locations/us/settings serviceAccountId: service-12345@gcp-sa-observability.iam.gserviceaccount.com
Terraform
如要為位置和資源設定預設 Cloud Key Management Service 金鑰,請按照下列步驟操作:
根據要設定的資源,選取適當的 Terraform 資源: Google Cloud
組織:
- 使用 Terraform 資源
google_observability_organization_settings。 - 將
organization欄位設為機構 ID。
資料夾:
- 使用 Terraform 資源
google_observability_folder_settings。 - 將
folder欄位設為資料夾的 ID。
專案:
- 使用 Terraform 資源
google_observability_project_settings。 - 將
project欄位設為專案的 ID。
- 使用 Terraform 資源
設定下列欄位:
- 將
location欄位設為預設 Cloud KMS 金鑰的位置。 - 將
kms_key_name欄位設為 Cloud KMS 金鑰。
- 將
REST
如要為資源設定預設設定,請選取適當的端點,然後在 APIs Explorer 中指定路徑參數:
組織:
- API 端點:
organizations.locations.updateSettings 路徑參數:
organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings
資料夾:
- API 端點:
folders.locations.updateSettings 路徑參數:
folders/FOLDER_ID/locations/LOCATION_ID/settings
專案:
- API 端點:
projects.locations.updateSettings 路徑參數:
projects/PROJECT_ID/locations/LOCATION_ID/settings
上述運算式中的變數具有下列意義:
- API 端點:
將 updateMask 欄位設為下列值:
updateMask=kmsKeyName請按下列方式設定要求主體:
{ "kmsKeyName":"projects/KMS_PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_NAME" }輸入值之前,請先替換下列項目:
- KMS_PROJECT_ID:由專案名稱和隨機指派的數字組成的專屬英數字元 ID,用於執行 Cloud KMS 的專案。 Google Cloud Google Cloud 如要瞭解如何取得這個 ID,請參閱「識別專案」。
- LOCATION_ID:Cloud KMS 金鑰的位置。
- KMS_KEY_RING:Cloud KMS 金鑰環的名稱。
- KMS_KEY_NAME:金鑰名稱。
"kmsKeyName"的值是金鑰的完整名稱。點選「Execute」。
如果成功,回應會是
Settings物件。舉例來說,假設您發出
updateSettings指令來設定 Cloud KMS 金鑰,並將路徑參數設為organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings,則會收到類似下列的回應:name: "organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings" service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com kms_key_name: "projects/KMS_PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_NAME"
設定資源的預設儲存位置
本步驟說明如何為資源 (即機構、資料夾或專案) 設定預設儲存位置。資源階層中的所有子項都會自動使用預設儲存位置,但您已設定預設儲存位置的子項除外。
舉例來說,如果將機構的預設儲存位置設為 us 位置,該機構中系統建立的新可觀測性 bucket 就會位於 us 位置。如要讓資料夾或專案使用不同的預設儲存位置,請為該資料夾或專案設定可觀測性 bucket 的預設設定。
如要讓資源中系統建立的可觀測性 bucket 使用 CMEK,請先完成下列步驟,再設定資源的預設儲存空間位置:
- 將 IAM 角色授予資源的服務帳戶,讓服務帳戶加密及解密資料。這個角色適用於特定 Cloud KMS 金鑰,且該金鑰位於特定位置。
- 使用 Cloud KMS 金鑰資訊,設定資源和金鑰位置的可觀測性 bucket 預設設定。
gcloud
使用下列任何指令資料之前,請先替換以下項目:
- DEFAULT_STORAGE_LOCATION:專案、資料夾或機構的預設儲存位置。這個位置適用於新的可觀測性值區。您必須輸入支援的可觀測性 bucket 位置。
- 使用下列其中一項,將要查詢的專案、資料夾或組織 ID 傳遞至指令:
--project=PROJECT_ID,其中 PROJECT_ID 包含專案的 ID。--folder=FOLDER_ID,其中 FOLDER_ID 包含資料夾 ID。--organization=ORGANIZATION_ID,其中 ORGANIZATION_ID 包含貴機構的 ID。
執行
gcloud observability settings update
指令:
Linux、macOS 或 Cloud Shell
gcloud observability settings update \ --default-storage-location=DEFAULT_STORAGE_LOCATION \ --update-mask=defaultStorageLocation \ --location=global --project=PROJECT_ID
Windows (PowerShell)
gcloud observability settings update ` --default-storage-location=DEFAULT_STORAGE_LOCATION ` --update-mask=defaultStorageLocation ` --location=global --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability settings update ^ --default-storage-location=DEFAULT_STORAGE_LOCATION ^ --update-mask=defaultStorageLocation ^ --location=global --project=PROJECT_ID
更新指令會啟動長時間執行的作業。以下是指令的回應:
Parsed [location] resource: projects/my-project/locations/global Request issued for: [global] Waiting for operation [projects/my-project/locations/global/operations/operation-1775247065869-64e93eabfee29-f7d39a96-5e23c6c7] to complete...done. Updated location [global]. '@type': type.googleapis.com/google.cloud.observability.v1.Settings defaultStorageLocation: us name: projects/my-project/locations/global/settings serviceAccountId: service-12345@gcp-sa-observability.iam.gserviceaccount.com
Terraform
如要設定預設位置,請按照下列步驟操作:
根據要設定的資源,選取適當的 Terraform 資源: Google Cloud
組織:
- 使用 Terraform 資源
google_observability_organization_settings。 - 將
organization欄位設為機構 ID。
資料夾:
- 使用 Terraform 資源
google_observability_folder_settings。 - 將
folder欄位設為資料夾的 ID。
專案:
- 使用 Terraform 資源
google_observability_project_settings。 - 將
project欄位設為專案 ID。
- 使用 Terraform 資源
設定下列欄位:
- 將
location欄位設為global。 - 將
default_storage_location欄位設為支援的位置。
- 將
REST
如要為機構、資料夾或專案設定預設儲存位置,請按照下列步驟操作:
針對要設定預設值的資源,選取適當的端點,然後在 APIs Explorer 中指定路徑參數:
組織:
- API 端點:
organizations.locations.updateSettings 路徑參數:
organizations/ORGANIZATION_ID/locations/global/settings
資料夾:
- API 端點:
folders.locations.updateSettings 路徑參數:
folders/FOLDER_ID/locations/global/settings
專案:
- API 端點:
projects.locations.updateSettings 路徑參數:
projects/PROJECT_ID/locations/global/settings
上述運算式中的變數具有下列意義:
- API 端點:
按照下列方式設定 updateMask 欄位:
updateMask=defaultStorageLocation請按下列方式設定要求主體:
{ "defaultStorageLocation":"DEFAULT_STORAGE_LOCATION" }將 DEFAULT_STORAGE_LOCATION 替換為支援的可觀測性 bucket 位置。
舉例來說,假設您希望組織中所有新建立的系統觀測能力 bucket 都位於
us位置,並使用 CMEK。在先前的步驟中,您已授予機構的服務帳戶 IAM 角色,允許該帳戶使用us位置的 Cloud KMS 金鑰加密及解密資料。您需要將 DEFAULT_STORAGE_LOCATION 設為us,才能完成設定。點選「Execute」。
如果成功,回應會是
Settings物件。舉例來說,如果您發出
updateSettings指令,並將路徑參數設為組織,並將預設儲存位置設為us,則回應會類似下列內容:default_storage_location: "us" service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
更新資源的預設儲存位置
如要更新組織、資料夾或專案的預設儲存位置,請按照設定預設儲存位置時的相同程序操作。
管理 Cloud KMS 金鑰
下列各節說明如何變更、停用或撤銷 Cloud KMS 金鑰的存取權。
更新資源和位置的預設 Cloud KMS 金鑰
如要更新特定資源和位置的 Cloud KMS 金鑰,請按照設定 Cloud KMS 金鑰時的相同程序操作。
取消設定資源和位置的預設 Cloud KMS 金鑰
如要取消設定或清除特定資源和位置的 Cloud KMS 金鑰,請按照「為位置設定預設 Cloud KMS 金鑰」一節所述的相同程序操作。 不過,設定要求主體時,請將鍵的值設為空白字串。
{
"kmsKeyName"=""
}
系統會使用下列演算法,判斷資源中的新可觀測性 bucket 是否使用 CMEK,以及要使用哪個金鑰:
系統會搜尋資源的預設設定,找出指定位置的 Cloud KMS 金鑰。如果資源沒有預設 Cloud KMS 金鑰,系統會搜尋資源的祖先,找出預設 Cloud KMS 金鑰:
搜尋完成後,系統會執行下列其中一項操作:
如果找到 Cloud KMS 金鑰,系統就會使用該金鑰加密儲存在新可觀測性 bucket 中的資料。
如果系統找不到 Cloud KMS 金鑰,則會發生下列其中一種情況:
如果機構政策要求使用 CMEK,則無法佈建新的可觀測性 bucket。
如果沒有組織政策,新的觀測能力 bucket 就不會使用 CMEK。
撤銷資源和位置的金鑰存取權
使用 Cloud KMS 金鑰為資源和位置設定可觀測性 bucket 的預設設定時,您必須將金鑰的 Cloud KMS CryptoKey Encrypter/Decrypter (roles.cloudkms.cryptoKeyEncrypterDecrypter) 角色授予資源的服務帳戶。
如果不想讓資源存取金鑰,請移除該金鑰的 IAM 繫結。如要移除這個繫結,請執行 gcloud kms keys remove-iam-policy-binding 指令。
角色變更可能要數小時才會全面生效。
金鑰輪替行為
與 Google Cloud 組織或資料夾相關聯的 Cloud KMS 金鑰輪替時,Google Cloud Observability 不會自動輪替臨時災難復原檔案的加密金鑰。現有復原檔案會繼續使用當初建立時採用的金鑰版本。新的復原檔案會使用目前的主要金鑰版本。
詳情請參閱「金鑰輪替」。
限制
為可觀測性 bucket 設定預設值時,如果包含 CMEK 設定,就會有下列已知限制。
因金鑰無法使用而導致效能降低
Google Cloud Observability 會使用 Cloud KMS API 存取 Cloud KMS 金鑰和 Cloud EKM 金鑰。這兩種金鑰都可能無法使用。
如果金鑰無法使用,會發生下列情況:
- 您無法查詢儲存的資料。
- Google Cloud Observability 會緩衝最近三小時的資料。超過這個三小時滑動視窗的資料可能會遭到捨棄。
- 如要永久儲存資料,Cloud KMS 金鑰必須在資料寫入後的 48 小時內,至少連續 24 小時可用且可存取。如果在這段期間內無法使用及存取 Cloud KMS 金鑰,資料可能不會完整保留在儲存空間,而是遭到捨棄。