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

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

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

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

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

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

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

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

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

Apigee 機構管理員

建立 Assured Workloads 資料夾

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

機構可透過 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 錯誤。

舉例來說,下列指令會在美國區域建立已啟用客戶自行管理的加密金鑰的 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 位置。請將這個值設為:
    • 將「控制層加密金鑰」設為下列其中一個多區域金鑰:useurope
    • 針對 API 消費者資料加密金鑰、執行階段資料庫加密金鑰和執行階段磁碟加密金鑰,請設為下列其中一個單一區域金鑰:europe-*us-*。舉例來說,europe-west1us-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 的專案Google Cloud 移至 Assured Workloads 資料夾。詳情請參閱「遷移工作負載」。
  2. 如果您在進階資料落地功能正式推出前建立 Apigee 機構,就必須重新設定全域網路資源,將其遷移至所需管轄區。否則,您可以略過這個步驟。