如果您有法規遵循或法規要求,必須將資料儲存在特定位置,或使用客戶自行管理的加密金鑰 (CMEK),建議您同時設定組織政策和觀測能力 bucket 的預設設定。您可以透過組織政策和觀測能力 bucket 的預設設定,指定這些 bucket 的儲存位置和加密模型。這些 bucket 可使用 Google 預設加密機制或客戶自行管理的加密金鑰 (CMEK)。
您可以透過觀測能力 bucket 的預設設定,為組織、資料夾和專案設定下列項目:
- 預設儲存位置。
- 每個位置都有預設的 Cloud Key Management Service 金鑰。
系統會透過兩種方式使用預設設定:
系統自動建立觀測能力 bucket 時,會使用預設設定來決定 bucket 的位置和加密金鑰。如未定義預設設定,系統會選取位置,並使用 Google 預設加密機制加密 bucket。
透過發出 API 要求來建立觀測能力 bucket 時,您必須提供位置。不過,除非 API 要求的引數指定金鑰,否則系統會自動使用預設設定定義的 Cloud KMS 金鑰加密資料。
觀測能力 bucket 的上層一律是專案,因此建立 bucket 時,系統會先搜尋專案層級的預設設定。如果不存在,系統會搜尋父項的上層項目,尋找預設設定。舉例來說,如果您為資料夾定義預設設定,這些設定會套用至該資料夾的子系,但已設定預設設定的子系除外。
您也可以使用組織政策,限制新觀測能力 bucket 的位置、要求使用 CMEK,或限制可用於加密的 Cloud KMS 金鑰。如果您設定的組織政策要求使用 CMEK,則必須為觀測能力 bucket 指定預設設定。否則,系統建立的觀測能力 bucket 佈建作業會失敗。
本文不適用於儲存記錄資料的記錄檔 bucket。如要瞭解如何設定預設位置,或要求記錄檔 bucket 使用 CMEK,請參閱「設定 Cloud Logging 的預設資源設定」。
適用的組織政策
如要控管觀測能力 bucket 的建立位置,以及由誰管理這些 bucket 的加密金鑰,建議您設定下列組織政策:
限制 ID 為
constraints/gcp.resourceLocations的政策。這項政策定義了可建立新資源的位置。如要使用觀測能力 bucket,這組位置必須至少包含一個支援的觀測能力 bucket 位置。具有限制 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。 |
下表列出系統用來判斷新的觀測能力 bucket 是否使用 CMEK 的規則,以及 Cloud KMS 金鑰的值 (如有)。如要加密觀測能力 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 角色,並選取要使用的介面。
設定專案和角色
-
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 CLI,然後使用聯合身分登入 gcloud CLI。 登入後, 執行下列指令來初始化 Google Cloud CLI:
gcloud initTerraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果傳回驗證錯誤,請確認您已使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後使用聯合身分登入 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.
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.未設定預設儲存位置:
service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.
取得資源和位置的預設 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.
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.為組織和位置設定 Cloud KMS 金鑰後,回應會包含服務帳戶和 Cloud KMS 金鑰名稱:
name: "organizations/ORGANIZATION_ID/locations/LOCATION_ID/settings" service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability. 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 的子資料夾中,系統建立的新觀測能力 bucket 必須位於 eu 區域,請將 my-eu-projects 資料夾的預設儲存位置設為 eu。
要求新值區位於特定位置,並使用 CMEK
如要要求組織中所有由系統建立的新觀測能力 bucket 都位於 us 位置,並使用 CMEK,請按照下列步驟操作:
設定貴組織和
us位置的可觀測性 bucket 預設設定,以指定 Cloud KMS 金鑰。將組織的預設儲存位置設為
us。
事前準備
如果只打算設定預設儲存位置,則不需要任何 Cloud KMS 角色。
-
如要取得設定組織、資料夾或專案觀測能力 bucket 預設設定所需的權限,請要求管理員授予您組織、資料夾或專案的下列 IAM 角色:
- 觀測能力編輯者 (
roles/observability.editor) - Cloud KMS 管理員 (
roles/cloudkms.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備所需權限,可為組織、資料夾或專案設定觀測能力 bucket 的預設設定。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能為組織、資料夾或專案設定觀測能力 bucket 的預設設定:
-
observability.settings.get -
observability.settings.update -
cloudkms.cryptoKeys.getIamPolicy -
cloudkms.cryptoKeys.setIamPolicy
- 觀測能力編輯者 (
如果您打算要求使用 CMEK,請務必在必要位置建立 Cloud KMS 金鑰。如有需要,請建立 Cloud KMS 金鑰環和 Cloud KMS 金鑰。
決定要更新哪項資源的可觀測性 bucket 預設設定。這項資源可以是組織、資料夾或專案。
如果您為組織或資料夾設定預設設定,這些設定會套用至該組織或資料夾的所有子系。如果為專案設定觀測能力 bucket 的預設設定,則這些設定只會套用至該專案。
授予資源服務帳戶金鑰存取權
針對您要設定預設值的資源,將角色授予其服務帳戶:
找出要用於加密和解密的 Cloud KMS 金鑰。
Cloud KMS 金鑰為區域性資源。舉例來說,如果您打算要求系統建立的新觀測能力 bucket 位於
us位置,則必須在us位置建立 Cloud KMS 金鑰。找出資源的服務帳戶。
舉例來說,如果您希望組織中所有系統建立的新觀測能力 bucket 都位於
us位置,並使用 CMEK,請向global位置發出getSettings呼叫,並將路徑參數設為組織。回應資料會列出組織的服務帳戶:service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.將 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. \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=LOCATION_ID \ --keyring=KMS_KEY_RING執行上一個指令前,請先替換下列項目:
- KMS_KEY_NAME:金鑰名稱。
- KMS_PROJECT_ID:執行 Cloud KMS 的 Google Cloud 專案專屬英數字元 ID,由 Google Cloud 專案名稱和隨機指派的數字組成。如要瞭解如何取得這個 ID,請參閱「識別專案」。
- SERVICE_ACCT_NAME:資源服務帳戶的名稱,也就是您在上一個步驟中識別的名稱。
- LOCATION_ID:Cloud KMS 金鑰的位置。
- KMS_KEY_RING:Cloud KMS 金鑰環的名稱。
控制台
- 前往 Google Cloud 控制台的「Key management」(金鑰管理) 頁面。
- 選取金鑰所屬金鑰環的名稱。
勾選金鑰的核取方塊。
「權限」分頁隨即顯示。
在「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 金鑰位置的可觀測性 bucket 預設設定。舉例來說,在這個步驟中,您可以將組織和 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.
Terraform
如要為位置和資源設定預設 Cloud Key Management Service 金鑰,請按照下列步驟操作:
根據要設定的 Google Cloud資源,選取適當的 Terraform 資源:
組織:
- 使用 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按照下列方式設定「Request body」(要求主體):
{ "kmsKeyName":"projects/KMS_PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_NAME" }輸入值之前,請先替換下列項目:
- KMS_PROJECT_ID:執行 Cloud KMS 的 Google Cloud 專案專屬英數字元 ID,由 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. 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。您必須輸入支援的可觀測性 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.
Terraform
如要設定預設位置,請按照下列步驟操作:
根據要設定的 Google Cloud資源,選取適當的 Terraform 資源:
組織:
- 使用 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按照下列方式設定「Request body」(要求主體):
{ "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.
更新資源的預設儲存位置
如要更新組織、資料夾或專案的預設儲存位置,請按照設定預設儲存位置的相同程序操作。
管理 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 加密者/解密者 (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 金鑰在這段期間無法使用或存取,資料可能不會完整保留在儲存空間,而是遭到捨棄。