為貴機構佈建資料落地功能

本文說明如何為 Apigee 機構佈建僅限靜態資料的資料落地,或進階資料落地。

另請參閱「資料落地簡介」。

僅為貴機構提供靜態資料落地機制

Apigee 管理員如要為機構佈建僅限靜態資料的資料落地功能,請使用其中一個可用的付費機構佈建選項,限制資料儲存位置。佈建時,請務必勾選「啟用資料落地」核取方塊。

為貴機構佈建進階資料落地功能

Apigee 管理員如要為機構佈建進階資料落地機制,包括資料儲存 (靜態)、處理 (使用中) 和傳輸 (傳輸中),請完成下列步驟。

# 步驟 說明 執行者
1 建立 Assured Workloads 資料夾 在 Google Cloud 機構中建立 Assured Workloads 資料夾,設定並強制執行必要的機構政策,限制資源只能在允許的位置使用。 Google Cloud 具備 Assured Workloads 管理權限的管理員
2 使用進階資料落地設定佈建 使用其中一種可用的付費機構佈建選項,為付費機構佈建進階資料落地功能。

您必須使用管轄區控制台存取 Apigee 使用者介面,或使用區域端點存取 Apigee API,具體取決於控制層位置。

Apigee 機構管理員

建立 Assured Workloads 資料夾

附註:您必須是 Google Cloud 系統管理員,且具備 Assured Workloads 管理權限,才能設定 Assured Workload 資料夾。

機構可透過 Assured Workloads,對 Google Cloud 資源套用並強制執行法規、區域和主權控管機制。

使用 Google Cloud 控制台,在 Google Cloud 組織中建立 Assured Workloads 資料夾,並根據法規要求選取控管機制套件。控制措施套件是一組控制措施,合併後可做為法規遵循架構、法規或規章的基準。控制項套件會設定並強制執行必要的組織政策限制,以:

  • 限制資源用量,僅限支援的產品
  • 只允許在允許的位置建立或使用資源

如要進一步瞭解 Assured Workloads,請參閱「Assured Workloads 總覽」。

使用進階資料落地功能佈建

注意:您必須是 Apigee 機構管理員,才能為付費機構佈建進階資料駐留功能。

Apigee 管理員使用佈建選項佈建付費組織時,必須使用管轄區控制台存取 Apigee UI,或使用 CLI 時的區域端點。

使用管轄區控制台

為機構佈建進階資料落地功能時,您需要使用以位置為準的管轄區控制台,才能存取 Apigee UI。使用管轄區控制台佈建 Apigee 機構時,系統會自動設定下列欄位:

  • 已選取「啟用資料落地設定」 (且無法取消選取)
  • 控制層代管管轄區 選項會根據使用的管轄區控制台篩選
  • 其他區域選取器都會經過篩選,只顯示所選控制層代管管轄區內的地點

如要瞭解如何存取管轄區控制台,請參閱「管轄區 Google Cloud 控制台」和「Assured Workloads 中的共同責任」。

使用區域端點

為機構佈建進階資料落地時,請使用下列區域端點:

apigee.CONTROL_PLANE_LOCATION.rep.googleapis.com

其中 CONTROL_PLANE_LOCATION 是 Apigee 控制層資料的實際儲存位置。如需可用控制層位置的清單,請參閱「使用區域端點進行進階資料落地」。

在佈建期間,您有責任選取適當的值。如果您使用的位置違反現行的機構政策,就會收到 Permission Denied 錯誤訊息。

舉例來說,下列指令會在美國區域建立已啟用 CMEK 的 Apigee 機構。另請參閱 Apigee 機構 API。

curl "https://apigee.us.rep.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \
  -X POST
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "$PROJECT_ID",
    "runtimeType": "CLOUD", # Hybrid organizations aren't supported
    "billingType": "$BILLING_TYPE", # Eval organizations aren't supported
    "controlPlaneEncryptionKeyName" : "'"$CONTROL_PLANE_KEY_ID"'",
    "apiConsumerDataLocation" : "'"$CONSUMER_DATA_REGION"'",  # Must be single region in US
    "apiConsumerDataEncryptionKeyName" : "'"$CONSUMER_DATA_KEY_ID"'",
    "authorizedNetwork" : "'"$NETWORK_NAME"'", # Must be created in the US region
    "runtimeDatabaseEncryptionKeyName" : "'"$RUNTIMEDB_KEY_ID"'"
  }'

如何使用 gcloud CLI 建立防護等級為「外部」的 CMEK 金鑰

在歐盟區域佈建 Apigee 機構時,如要使用進階資料落地功能,您必須建立保護等級為外部的客戶自行管理的加密金鑰 (CMEK)。您必須使用 Google Cloud CLI 建立 CMEK 金鑰,因為歐盟管轄區控制台不支援設定外部備份的 CMEK 金鑰。此外,您還需要設定外部金鑰管理工具 (EKM)。

如要建立 CMEK 金鑰及設定 EKM,請按照下列各節的步驟操作:

設定 EKM

為歐盟區域建立的 CMEK 金鑰必須採用外部防護等級,因此您必須設定 EKM。如要設定 EKM,請按照下列各節的說明操作:

為歐盟區域建立 CMEK 金鑰

使用下列 gcloud CLI 指令,建立歐盟區域所需的 CMEK 金鑰:

  • 控制層加密金鑰
  • API 消費者資料加密金鑰
  • 執行階段資料庫加密金鑰
  • 執行階段磁碟加密金鑰

如要進一步瞭解如何建立 CMEK 金鑰,請參閱「關於 Apigee 加密金鑰」。

重複下列步驟,建立每個必要的 CMEK 金鑰:

  1. 使用下列指令在歐盟區域中建立金鑰環:
    gcloud kms keyrings create DATA_KEY_RING \
          --location LOCATION \
          --project=PROJECT_ID
        
  2. 使用下列指令建立外部金鑰:
    gcloud kms keys create DATA_KEY_NAME \
          --keyring=DATA_KEY_RING \
          --location LOCATION \
          --purpose encryption \
          --protection-level external \
          --skip-initial-version-creation \
          --default-algorithm external-symmetric-encryption \
          --project PROJECT_ID
        
  3. 使用下列指令,建立指向上一步驟中設定的 EKM 的金鑰版本:
    gcloud kms keys versions create \
      --key DATA_KEY_NAME \
      --keyring DATA_KEY_RING \
      --location LOCATION \
      --external-key-uri "EKM_URI" \
      --primary \
      --project PROJECT_ID
        
  4. 使用下列指令授予 Apigee 服務代理權限:
    gcloud kms keys add-iam-policy-binding DATA_KEY_NAME \
          --location LOCATION \
          --keyring DATA_KEY_RING \
          --member serviceAccount:service-$(gcloud projects describe $project --format="value(projectNumber)")@gcp-sa-apigee.iam.gserviceaccount.com \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project PROJECT_ID
        

其中:

  • DATA_KEY_RING:控制層、API 消費者資料、執行階段資料庫或執行階段磁碟金鑰環的名稱。
  • DATA_KEY_NAME:控制層、API 消費者資料、執行階段資料庫或執行階段磁碟金鑰的名稱。
  • LOCATION:金鑰環的 Cloud KMS 位置,請將這個值設為:
    • 將「控制層加密金鑰」設為下列其中一個多區域金鑰:us 或 europe。
    • 針對 API 消費者資料加密金鑰、執行階段資料庫加密金鑰和執行階段磁碟加密金鑰,請設為下列其中一個單一區域金鑰:europe-* 或 us-*。 例如 europe-west1、us-central1 等。
  • EKM_URI:EKM URI。
  • PROJECT_ID: Google Cloud 專案 ID。

設定 gcloud CLI 使用區域端點 (選用)

您可以使用 gcloud CLI 管理 Apigee 機構。對於大多數機構,gcloud CLI 會自動偵測適當的區域端點。如果 Apigee 機構名稱與 Google Cloud 專案名稱相符,這項作業就能順利完成。

但有時名稱可能不相符。舉例來說,如果您將 Apigee 組織從一個 Google Cloud 專案遷移至另一個專案,Apigee 組織的名稱和所在 Google Cloud 專案的名稱可能會不同。在這種情況下,使用 gcloud CLI 時,您需要執行下列其中一項操作:

  • 請在每個 gcloud CLI 指令中傳遞 --organization 旗標,指定目標 Apigee 機構。
  • 設定 gcloud CLI,覆寫 Apigee 端點,並強制所有指令使用新的區域端點。

    舉例來說,如要使用美國區域端點,請執行下列 gcloud CLI 指令:

    gcloud config set api_endpoint_overrides/apigee https://apigee.us.rep.googleapis.com/

查看機構的控制層位置

如果您已佈建機構 (PROJECT_ID) 以搭配資料落地功能使用,可以按照下列步驟,使用 getProjectMapping API 查看與專案相關聯的控制層位置:

  1. 授權 gcloud 使用您的 Google 使用者憑證存取 Cloud Platform:
    gcloud auth login
  2. 呼叫 getProjectMapping API。

    由於存取的資訊是中繼資料,而非客戶核心內容,因此您可以使用全域或區域端點呼叫 API。下列指令使用全域端點:

    curl -X GET https://apigee.googleapis.com/v1/organizations/PROJECT_ID:getProjectMapping \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"

    其中 PROJECT_ID 是您的 Apigee 機構名稱。

    以下是回應範例:

    {
      "organization": "my-project",
      "projectIds": [
        "my-project"
      ],
      "projectId": "my-project"
      "location": "us"
    }

遷移 Apigee 機構,支援進階資料落地功能

如要遷移現有的 Apigee 機構,讓支援靜態資料落地功能,進而支援進階資料落地功能,請按照下列步驟操作:

  1. 將佈建 Apigee 的專案移至 Assured Workloads 資料夾。Google Cloud 詳情請參閱「遷移工作負載」。
  2. 如果您在進階資料落地功能正式發布前建立 Apigee 機構,就必須重新設定 Global Networking 資源,將其遷移至所需管轄區內。否則可以略過這個步驟。