設定可觀測性 bucket 的預設值

這份文件說明如何設定機構、資料夾或專案,確保可觀測性值區符合法規或監管規定。您可以透過機構政策和可觀測性 bucket 的預設設定,指定儲存位置,以及這些 bucket 是否使用 Google 預設加密機制或客戶自行管理的加密金鑰 (CMEK)。

對於機構、資料夾和專案,可觀測性 bucket 的預設設定可讓您設定下列項目:

  • 預設儲存位置。
  • 每個位置的預設 Cloud Key Management Service 金鑰。

為專案設定後,這些設定只會套用至該專案中建立的新可觀測性 bucket。如果為資料夾或機構設定這些選項,這些設定會套用至在資料夾或機構後代專案中建立的新可觀測性儲存空間,但您已設定預設設定的專案除外。

您也可以使用機構政策,限制新可觀測性值區的位置、要求使用 CMEK,或限制可用於加密的 Cloud KMS 金鑰。如果您設定的機構政策要求使用 CMEK,則必須為可觀測性值區設定預設設定。否則,系統建立的觀測儲存空間將無法完成佈建。

本文不適用於儲存記錄檔資料的記錄檔值區。如要瞭解如何設定預設位置或為記錄檔儲存空間要求 CMEK,請參閱「設定 Cloud Logging 的預設資源設定」。

適用的組織政策

如要控管觀測能力 bucket 的建立位置,以及管理這些 bucket 加密金鑰的對象,建議您設定下列組織政策:

  • 限制 ID 為 constraints/gcp.resourceLocations 的政策。這項政策定義了一組位置,可在其中建立新資源。如要使用可觀測性 bucket,這組位置必須至少包含一個支援的可觀測性 bucket 位置

  • 限制 ID 為 constraints/gcp.restrictNonCmekServicesDeny 政策。這項政策要求使用 CMEK 加密新資源

  • 限制 ID 為 constraints/gcp.restrictCmekCryptoKeyProjects 的政策。這項政策會限制用於加密的 Cloud Key Management Service 金鑰。

您可以建立組織政策,並在機構、資料夾或專案層級套用。詳情請參閱「建立及編輯政策」。

組織政策如何影響設定預設位置

發出指令設定預設位置時,Google Cloud 可觀測性會驗證指定位置是否符合貴機構政策,以及是否為支援的可觀測性值區位置。如果任一驗證失敗,設定預設位置的指令也會失敗。

如果您修改組織政策允許的位置清單,導致預設儲存位置不再允許,則必須另外更新該設定。您可能也需要為更新後的預設位置設定預設 Cloud KMS 金鑰。

組織政策和預設設定的互動方式

可觀測性 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 金鑰。如果專案的預設設定未指定適當的金鑰,系統就會在祖先的預設設定中,搜尋新值區位置的預設金鑰。

發生下列其中一種情況:

  • 找不到金鑰: 新的可觀測性值區不會使用 CMEK。
  • 找到並允許金鑰:系統會建立可觀測性 bucket。
  • 找到金鑰,但系統不允許使用: 系統不會建立新的觀測能力 bucket

如要找出加密金鑰,系統會先判斷專案或其任一上層是否已設定預設儲存位置。如果未設定預設儲存位置,系統就不會建立新的可觀測性值區

如果找到預設儲存位置,系統會搜尋專案的預設設定,找出預設 Cloud KMS 金鑰。如果專案的預設設定未指定適當的金鑰,系統就會在祖先的預設設定中,搜尋新值區位置的預設金鑰。

發生下列其中一種情況:

  • 找不到金鑰: 系統不會建立新的可觀測性值區。
  • 找到並允許金鑰:系統會建立可觀測性 bucket。
  • 找到金鑰,但系統不允許使用: 系統不會建立新的觀測能力 bucket

查看可觀測性 bucket 的預設設定

本節說明如何查看資源 (組織、資料夾或專案) 的可觀測性值區預設設定。

如要擷取可觀測性 bucket 的預設設定,您必須發出多個指令。第一個指令會傳回預設儲存位置。第二個指令會傳回該位置的 Cloud KMS 金鑰。

本節所述指令適用於特定資源。這些指令的回應僅限於該資源的使用者設定值。這些指令不會傳回資源可能使用的設定,但這些設定是為祖系設定。

事前準備

設定專案、IAM 角色,然後選取您打算使用的介面。

設定專案和角色

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 如要取得查看機構、資料夾或專案可觀測性 bucket 預設設定所需的權限,請要求管理員在機構、資料夾或專案中授予您「可觀測性檢視者」 (roles/observability.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    這個預先定義的角色具備 observability.settings.get 權限,可查看機構、資料夾或專案的可觀測性 Bucket 預設設定。

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

選取要使用的介面

gcloud

在 Google Cloud 控制台中啟用 Cloud Shell。

啟用 Cloud Shell

控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。

Terraform

如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。

  1. 安裝 Google Cloud CLI。

  2. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  3. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

    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。
將 `default_storage_location` 設為 [支援的位置](/stackdriver/docs/observability/observability-bucket-locations)

執行 gcloud beta observability settings describe 指令:

Linux、macOS 或 Cloud Shell

gcloud beta observability settings describe \
 --location=global --project=PROJECT_ID

Windows (PowerShell)

gcloud beta observability settings describe `
 --location=global --project=PROJECT_ID

Windows (cmd.exe)

gcloud beta 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

  1. 如要顯示資源的預設設定,請選取適當的端點,然後在 API Explorer 中指定路徑參數:

    機構:

    資料夾:

    專案:

    上述運算式中的變數具有下列意義:

    • ORGANIZATION_ID:機構的專屬數字 ID。如要瞭解如何取得這個 ID,請參閱「取得機構 ID」。
    • FOLDER_ID:資料夾的專屬數字 ID。如要瞭解如何使用資料夾,請參閱「建立及管理資料夾」。
    • PROJECT_ID:專案的 ID。
  2. 點選「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 beta observability settings describe 指令:

Linux、macOS 或 Cloud Shell

gcloud beta observability settings describe \
 --location=LOCATION --project=PROJECT_ID

Windows (PowerShell)

gcloud beta observability settings describe `
 --location=LOCATION --project=PROJECT_ID

Windows (cmd.exe)

gcloud beta 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

  1. 如要顯示資源的預設設定,請選取適當的端點,然後在 API Explorer 中指定路徑參數:

    機構:

    資料夾:

    專案:

    上述運算式中的變數具有下列意義:

    • ORGANIZATION_ID:機構的專屬數字 ID。如要瞭解如何取得這個 ID,請參閱「取得機構 ID」。
    • FOLDER_ID:資料夾的專屬數字 ID。如要瞭解如何使用資料夾,請參閱「建立及管理資料夾」。
    • PROJECT_ID:專案的 ID。
    • LOCATION_ID:要查看 CMEK 設定的位置。
  2. 點選「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 金鑰。

這些操作說明適用於 API Explorer,可讓您從說明文件頁面發出 API 指令。不過,您也可以發出 curl 指令。

設定範例

本節列出常見用途。

規定新值區必須位於特定位置

如要規定機構中系統建立的新可觀測性值區必須位於 us 位置,請將機構的預設儲存空間位置設為 us

如要覆寫機構層級設定,並要求在名為 my-eu-projects 的子資料夾中,系統建立的新可觀測性值區位於 eu 區域,請將 my-eu-projects 資料夾的預設儲存空間位置設為 eu

要求新值區位於特定位置並使用 CMEK

如要規定機構中所有系統建立的新可觀測性值區都必須位於 us 位置並使用 CMEK,請按照下列步驟操作:

  1. 為貴機構和 us 位置設定可觀測性值區的預設設定,以指定 Cloud KMS 金鑰。

  2. 將貴機構的預設儲存位置設為 us

事前準備

如果您只打算設定預設儲存位置,則不需要任何 Cloud KMS 角色。

  1. 完成必要設定,即可查看可觀測性 bucket 的預設設定

  2. 如要取得為機構、資料夾或專案設定可觀測性 bucket 預設設定所需的權限,請要求管理員在機構、資料夾或專案中授予您下列 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    這些預先定義的角色具備為組織、資料夾或專案設定可觀測性值區預設設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

    所需權限

    如要為機構、資料夾或專案設定可觀測性 bucket 的預設設定,您必須具備下列權限:

    • observability.settings.get
    • observability.settings.update
    • cloudkms.cryptoKeys.getIamPolicy
    • cloudkms.cryptoKeys.setIamPolicy

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

  3. 如果您打算要求使用 CMEK,請務必在所需位置備妥 Cloud KMS 金鑰。如有必要,請建立 Cloud KMS 金鑰環Cloud KMS 金鑰

  4. 找出您要更新可觀測性 bucket 預設設定的資源。這項資源可以是機構、資料夾或專案。

    如果您為機構或資料夾設定預設設定,這些設定會套用至該機構或資料夾的所有子系。如果您為專案設定可觀測性 bucket 的預設設定,則這些設定只會套用至該專案。

授予資源的服務帳戶金鑰存取權

如要為資源設定預設設定,請為該資源的服務帳戶授予角色:

  1. 找出要用於加密和解密的 Cloud KMS 金鑰。

    Cloud KMS 金鑰是區域性資源。舉例來說,如果您打算要求新的系統建立可觀測性 bucket 必須位於 us 位置,則需要位於 us 位置的 Cloud KMS 金鑰。

  2. 找出資源的服務帳戶。

    舉例來說,如果您希望組織中所有新建立的系統可觀測性 bucket 都位於 us 位置,並使用 CMEK,請global 位置發出 getSettings 呼叫,並將路徑參數設為組織。回應資料會列出機構的服務帳戶:

    service_account_id: service-org-ORGANIZATION_ID@gcp-sa-observability.iam.gserviceaccount.com
    
  3. Cloud KMS CryptoKey Encrypter/Decrypter (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 金鑰環的名稱。

    控制台

    1. 前往 Google Cloud 控制台的「金鑰管理」頁面。

      前往「金鑰管理」頁面

    2. 選取包含金鑰的金鑰環名稱。
    3. 勾選金鑰的核取方塊。

      「Permissions」(權限) 分頁隨即顯示。

    4. 在「Add members」(新增成員) 對話方塊中,指定您授予存取權的 Google Cloud Observability 服務帳戶的電子郵件地址。

    5. 在「Select a role」(選取角色) 選單中,選取「Cloud KMS CryptoKey Encrypter/Decrypter」(Cloud KMS CryptoKey 加密者/解密者)

    6. 按一下「新增」。

為資源和位置設定預設 Cloud KMS 金鑰

在上一步中,您已授予資源的服務帳戶權限,可使用特定 Cloud KMS 金鑰加密及解密資料。舉例來說,您可能已授予機構的服務帳戶 IAM 角色,讓該帳戶可存取 us 位置的 Cloud KMS 金鑰。

在這個步驟中,您要針對該資源和 Cloud KMS 金鑰的位置,使用金鑰資訊更新可觀測性值區的預設設定。舉例來說,在這個步驟中,您可以為機構和 us 位置設定可觀測性 bucket 的預設設定,並將 Cloud KMS 金鑰也設在 us 位置。

接著設定預設儲存位置。如果您未設定預設儲存位置,即使可觀測性值區位於定義金鑰的位置,這些值區也不會使用預設 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 beta observability settings update 指令:

Linux、macOS 或 Cloud Shell

gcloud beta observability settings update \
 --kms-key-name=KMS_KEY_NAME \
 --update-mask=kms-key-name \
 --location=LOCATION --project=PROJECT_ID

Windows (PowerShell)

gcloud beta observability settings update `
 --kms-key-name=KMS_KEY_NAME `
 --update-mask=kms-key-name `
 --location=LOCATION --project=PROJECT_ID

Windows (cmd.exe)

gcloud beta observability settings update ^
 --kms-key-name=KMS_KEY_NAME ^
 --update-mask=kms-key-name ^
 --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 金鑰,請按照下列步驟操作:

  1. 根據要設定的資源,選取適當的 Terraform 資源: Google Cloud

    機構:

    資料夾:

    專案:

  2. 設定下列欄位:

    1. location 欄位設為預設 Cloud KMS 金鑰的位置。
    2. kms_key_name 欄位設為 Cloud KMS 金鑰。
  3. 更新 main.tf 檔案後,請升級 Terraform 安裝版本:

    terraform -init upgrade
    

    由於必要的 Terraform 資源為Beta 版,因此必須升級。

REST

  1. 如要設定資源的預設設定,請選取適當的端點,然後在 API Explorer 中指定路徑參數:

    機構:

    資料夾:

    專案:

    上述運算式中的變數具有下列意義:

    • ORGANIZATION_ID:機構的專屬數字 ID。如要瞭解如何取得這個 ID,請參閱「取得機構 ID」。
    • FOLDER_ID:資料夾的專屬數字 ID。如要瞭解如何使用資料夾,請參閱「建立及管理資料夾」。
    • PROJECT_ID:專案的 ID。
    • LOCATION_ID:Cloud KMS 金鑰的位置。
  2. updateMask 欄位設為下列值:

    updateMask=kmsKeyName
    
  3. 將「要求主體」設定如下:

    {
      "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" 的值是金鑰的完整名稱。

  4. 點選「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,請先完成下列步驟,再為資源設定預設儲存位置:

  1. 將 IAM 角色授予資源的服務帳戶,讓服務帳戶可以加密及解密資料。這個角色適用於特定 Cloud KMS 金鑰,且該金鑰位於特定位置。
  2. 使用 Cloud KMS 金鑰資訊,為資源和金鑰位置設定可觀測性值區的預設設定

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 beta observability settings update 指令:

Linux、macOS 或 Cloud Shell

gcloud beta observability settings update \
 --default-storage-location=DEFAULT_STORAGE_LOCATION \
 --update-mask=default-storage-location \
 --location=global --project=PROJECT_ID

Windows (PowerShell)

gcloud beta observability settings update `
 --default-storage-location=DEFAULT_STORAGE_LOCATION `
 --update-mask=default-storage-location `
 --location=global --project=PROJECT_ID

Windows (cmd.exe)

gcloud beta observability settings update ^
 --default-storage-location=DEFAULT_STORAGE_LOCATION ^
 --update-mask=default-storage-location ^
 --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

如要設定預設位置,請按照下列步驟操作:

  1. 根據要設定的資源,選取適當的 Terraform 資源: Google Cloud

    機構:

    資料夾:

    專案:

  2. 設定下列欄位:

    1. location 欄位設為 global
    2. default_storage_location 欄位設為支援的位置
  3. 更新 main.tf 檔案後,請升級 Terraform 安裝版本:

    terraform -init upgrade
    

    由於必要的 Terraform 資源為測試版,因此必須升級。

REST

如要為機構、資料夾或專案設定預設儲存位置,請按照下列步驟操作:

  1. 如要設定資源的預設設定,請選取適當的端點,然後在 API Explorer 中指定路徑參數:

    機構:

    資料夾:

    專案:

    上述運算式中的變數具有下列意義:

    • ORGANIZATION_ID:機構的專屬數字 ID。如要瞭解如何取得這個 ID,請參閱「取得機構 ID」。
    • FOLDER_ID:資料夾的專屬數字 ID。如要瞭解如何使用資料夾,請參閱「建立及管理資料夾」。
    • PROJECT_ID:專案的 ID。
  2. updateMask 欄位設為下列值:

    updateMask=defaultStorageLocation
    
  3. 將「要求主體」設定如下:

    {
      "defaultStorageLocation"="DEFAULT_STORAGE_LOCATION"
    }
    

    DEFAULT_STORAGE_LOCATION 替換為支援的觀測能力 bucket 位置

    舉例來說,假設您希望組織中所有系統建立的新觀測能力 bucket 都位於 us 位置,並使用 CMEK。在先前的步驟中,您已授予機構的服務帳戶 IAM 角色,允許該帳戶使用 us 位置的 Cloud KMS 金鑰加密及解密資料。將 DEFAULT_STORAGE_LOCATION 設為 us,即可完成設定。

  4. 點選「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"=""
}

系統會使用下列演算法,判斷資源中的新可觀測性值區是否使用 CMEK,以及要使用哪一個金鑰:

  1. 系統會搜尋資源的預設設定,找出指定位置的 Cloud KMS 金鑰。如果資源沒有預設的 Cloud KMS 金鑰,系統會搜尋資源的祖先,找出預設的 Cloud KMS 金鑰:

  2. 搜尋完成後,系統會執行下列其中一項操作:

    • 如果找到 Cloud KMS 金鑰,系統就會使用該金鑰加密儲存在新可觀測性值區中的資料。

    • 如果系統找不到 Cloud KMS 金鑰,可能是發生下列情況:

      • 如果機構政策要求使用 CMEK,則無法佈建新的可觀測性 bucket。

      • 如果沒有機構政策,新的可觀測性 bucket 就不會使用 CMEK。

撤銷資源和位置的金鑰存取權

使用 Cloud KMS 金鑰為資源和位置設定可觀測性儲存空間的預設設定時,您必須將金鑰的 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 會緩衝最近三小時的資料。超過這個三小時滑動視窗的資料可能會遭到捨棄。
  • 如要永久儲存資料,在資料寫入後的 48 小時內,Cloud KMS 金鑰必須可供使用及存取至少連續 24 個小時。如果在這段期間無法使用及存取 Cloud KMS 金鑰,資料可能無法完整儲存,甚至遭到捨棄。

後續步驟