為 Integration Connectors 設定 VPC Service Controls

您可以使用 VPC Service Controls 定義 Integration Connectors Google Cloud 服務的安全範圍。透過服務周圍的安全範圍,您可以限制 VPC Service Controls 範圍內的資料,並降低資料竊取的風險。如果您不熟悉 VPC Service Controls,建議您參閱下列資訊:

本文件說明如何使用 VPC Service Controls 範圍限制 Integration Connectors 服務 (connectors.googleapis.com) 的存取權。設定邊界後,您可以設定政策,決定其他 Google Cloud 服務或使用者能否存取 connectors.googleapis.com 服務。

注意事項

  • 如果連線連結至 Google Cloud 資源,則必須從 VPC Service Controls 範圍內存取該資源。
  • 如果您已連線至公開端點,請在設定 VPC Service Controls 範圍之前,確認這些連線使用 PSC (Private Service Connect) 附件連線至後端系統。如果沒有 PSC 連結,設定 VPC Service Controls 範圍後,現有的公開端點連線就會失敗。
  • 如果連線連結至非 Google Cloud 資源,連線的目的地應為 PSC 附件。未附加 PSC 的連線建立作業會失敗。
  • 如果您要為 Google Cloud 專案設定 VPC Service Controls 邊界,則必須為事件訂閱啟用私人連線,才能使用專案的事件訂閱功能

事前準備

確認您具備設定 VPC Service Controls 範圍的必要權限。 如要查看設定 VPC Service Controls 時所需的 IAM 角色清單,請參閱 VPC Service Controls 說明文件中的「使用 IAM 進行存取權控管」。

建立 VPC Service Controls 範圍

如要建立 VPC Service Controls 範圍,您可以使用 Google Cloud consolegcloud 指令,或是 accessPolicies.servicePerimeters.create API。詳情請參閱「建立服務範圍」。

下列步驟說明如何使用 gcloud 指令建立 VPC Service Controls 範圍,並啟用使用者存取權。

  1. 建立 access.yaml 檔案,其中包含可存取邊界的使用者詳細資料。例如:
    - members:
        - user:USER_EMAIL
  2. 使用下列指令取得機構的存取權政策 ID:
  3. gcloud access-context-manager policies list --organization=ORGANIZATION_ID

    這項指令會列出機構的所有政策。從清單中選取要建立 VPC Service Controls 範圍的政策。

    您可以使用 Google Cloud 控制台查看機構的資源 ID。詳情請參閱「取得機構資源 ID」。

  4. 為使用者建立存取層級。
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
    --title "CUSTOM_TITLE" \
    --basic-level-spec access.yaml \
    --policy=POLICY_ID

    在這項指令中,POLICY_ID 是您在上一個步驟中取得的值。

  5. 在 Google Cloud 專案的全球設定中,將 vpcsc 屬性的值設為 true
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": true}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    此指令會傳回作業 ID,並啟動長時間執行作業 (LRO),這項作業可能需要一段時間才能完成。等待 LRO 完成。您可以使用下列指令追蹤作業進度:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  6. 建立 VPC Service Controls 範圍,並提供使用者存取權。
    gcloud access-context-manager perimeters create PERIMETER_NAME \
    --title="PERIMETER_TITLE" \
    --resources=projects/PROJECT_ID \
    --restricted-services=connectors.googleapis.com \
    --access_levels=ACCESS_LEVEL_NAME

    這個指令需要一段時間才能完成,您可以在這個期間在新終端機中執行其他工作。

    如果您想更新存取層級,並將 connectors.googleapis.com 服務新增至現有範圍,請執行下列指令:
    gcloud access-context-manager perimeters update PERIMETER_NAME \
    --add-restricted-services="connectors.googleapis.com" \
    --add-access-levels=ACCESS_LEVEL_NAME \
    --policy=POLICY_ID

確認範圍

如要驗證範圍,請使用 gcloud access-context-manager perimeters describe PERIMETER_NAME 指令。例如:

gcloud access-context-manager perimeters describe PERIMETER_NAME

詳情請參閱「管理服務範圍」。

將專案從 VPC Service Controls 範圍中移除

如要將 Google Cloud 專案從 VPC Service Controls 範圍中移除,請執行下列步驟:

  1. 在 Google Cloud 專案的全域設定中,將 vpcsc 屬性的值設為 false
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": false}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    此指令會傳回作業 ID,並啟動長時間執行作業 (LRO),這項作業可能需要一段時間才能完成。等待 LRO 完成。您可以使用下列指令追蹤作業進度:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  2. 將專案從 VPC Service Controls 範圍中移除。
    gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME

後續步驟

瞭解 VPC Service Controls 如何保護您的資料。