設定 VPC Service Controls

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

VPC Service Controls 可讓機構在Google Cloud 資源周圍定義安全範圍,以降低資料竊取風險。

Cloud Composer 環境可部署在服務範圍內。使用 VPC Service Controls 設定環境,即可在確保機密資料隱密性的同時,充分運用 Cloud Composer 的全代管工作流程自動化調度管理功能。

Cloud Composer 支援 VPC Service Controls 表示:

  • 您現在可以選取 Cloud Composer 做為 VPC Service Controls 範圍內的安全服務。
  • Cloud Composer 使用的所有基礎資源都會設為支援 VPC Service Controls 架構,並遵循相關規則。

使用 VPC Service Controls 部署 Cloud Composer 環境可讓您:

  • 降低資料外洩風險。
  • 防範因存取控管機制設定錯誤而導致資料外洩。
  • 降低惡意使用者將資料複製到未經授權的Google Cloud 資源,或外部攻擊者從網際網路存取Google Cloud 資源的風險。

關於 Cloud Composer 中的 VPC Service Controls

關於 VPC Service Controls 中 Google API 和服務的連線

Cloud Composer 3 會透過 restricted.googleapis.com 將流量路由至 Google 服務,以便存取這個範圍支援的 Google API、服務和網域。

如需進一步瞭解相關資訊,以及透過 restricted.googleapis.com 提供的服務和網域清單,請參閱虛擬私人雲端說明文件中的「網路設定」一節。

Cloud Composer 3 會封鎖對 Google API、服務和網域的呼叫,如果這些項目不在必要 API 和服務清單中,就會遭到封鎖。如要從 DAG 呼叫 API,請務必:

  • 將服務新增至受限制的服務
  • 將服務新增至可透過虛擬私有雲存取的服務

舉例來說,如果您使用 VertexAI 運算子,請將 aiplatform.googleapis.com 新增至受限制的服務和可存取 VPC 的服務。

詳情請參閱 VPC Service Controls 說明文件中的「管理服務範圍」。

在範圍中建立環境

如要在邊界內部署 Cloud Composer,請按照下列步驟操作:

  1. 為專案啟用 Access Context Manager APICloud Composer API。請參閱「啟用 API」一文。

  2. 請按照 VPC Service Controls 說明文件中的範圍設定操作說明建立範圍。除了您要限制的其他服務之外,請確認限制服務清單中包含 Cloud Composer 使用的所有服務:

    • Cloud Composer API (composer.googleapis.com)
    • Artifact Registry API (artifactregistry.googleapis.com)
    • Compute Engine API (compute.googleapis.com)
    • Kubernetes Engine API (container.googleapis.com)
    • Container File System API (containerfilesystem.googleapis.com)
    • Cloud DNS API (dns.googleapis.com)
    • Service Account Credentials API (iamcredentials.googleapis.com)
    • Cloud Logging API (logging.googleapis.com)
    • Cloud Monitoring API (monitoring.googleapis.com)
    • Cloud Pub/Sub API (pubsub.googleapis.com)
    • Cloud SQL Admin API (sqladmin.googleapis.com)
    • Cloud Storage API (storage.googleapis.com)

    • 對於 DAG 使用的所有其他服務:

      1. 將服務新增至受限制的服務。
      2. 將服務新增至可透過虛擬私有雲存取的服務。
  3. 建立新的 Cloud Composer 環境:

    1. 使用 Google Cloud CLI 建立環境。
    2. 使用 --enable-private-environment 引數啟用私人 IP。
    3. 使用 --web-server-allow-all--web-server-allow-ip--web-server-deny-all 引數,指定網路伺服器的存取參數。如要進一步瞭解如何使用這些引數,請參閱「建立環境」一文。為提升保護力,請只允許特定 IP 範圍存取網路伺服器。
    4. 使用 --enable-private-builds-only 引數禁止安裝公開網際網路存放區中的套件。

      範例:

      gcloud composer environments create example-environment \
        --location us-central1 \
        --enable-private-environment \
        --web-server-allow-all \
        --enable-private-builds-only
      
  4. 根據預設,只有安全性邊界內的使用者才能存取 Airflow UI 和 API。如果您想在安全邊界之外使用,請設定存取層級入站和出站規則

將現有環境新增至範圍

如果環境使用私人 IP,且已停用從公開存放區安裝 PyPI 套件的功能,您可以將包含環境的專案新增至邊界。

如要將現有的 Cloud Composer 3 環境更新為這項設定,請按照下列步驟操作:

  1. 請確認您已按照上一節的說明建立或設定邊界。
  2. 使用 Google Cloud CLI 更新環境。
  3. 使用 --enable-private-environment 引數啟用私人 IP。
  4. 使用 --enable-private-builds-only 引數禁止安裝公開網際網路存放區中的套件。
  5. 如有需要,請設定 Airflow 網路伺服器的存取權。為提升保護力,請只允許特定 IP 範圍存取網路伺服器。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --enable-private-environment \
  --enable-private-builds-only

在 VPC Service Controls 中安裝 PyPI 套件

在預設的 VPC Service Controls 設定中,Cloud Composer 僅支援從可透過虛擬私有雲網路的內部 IP 位址空間存取的私人存放區安裝 PyPI 套件。

根據預設,VPC 服務控管範圍內的所有 Cloud Composer 環境都無法存取公開 PyPI 存放區。

從私人存放區安裝

建議的設定是設定私人 PyPI 存放區:

  1. 將貴機構使用的經過審查的套件填入其中,然後設定 Cloud Composer 從私人存放區安裝 Python 依附元件

從公開存放區安裝

如何從外部存放區安裝 PyPI 套件:

  1. 建立 Artifact Registry 遠端存放區
  2. 授予這個存放區上游來源的存取權
  3. 設定 Airflow 從 Artifact Registry 存放區安裝套件

VPC Service Controls 記錄

排解建立環境的問題時,您可以分析 VPC Service Controls 產生的稽核記錄。

除了其他記錄訊息外,您也可以查看記錄,瞭解設定環境元件的 cloud-airflow-prod@system.gserviceaccount.comservice-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com 服務帳戶相關資訊。

Cloud Composer 服務會使用 cloud-airflow-prod@system.gserviceaccount.com 服務帳戶管理環境的租用戶專案元件

service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com 服務帳戶 (也稱為 Composer 服務代理人服務帳戶) 會管理服務和主機專案中的環境元件。

後續步驟