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 網路限制也適用於 Cloud Composer 環境。詳情請參閱 VPC Service Controls 說明文件。
如果 Cloud Composer 環境受到外圍防護的保護,則會限制存取公開 PyPI 存放區的權限。詳情請參閱「在 VPC Service Controls 中安裝 PyPI 套件」。
如果您的環境使用私人 IP 網路,所有內部流量都會轉送至您的 VPC 網路,但透過私人 Google 存取權可供私人 IP 環境使用的 Google API、服務和網域的流量除外。
視您設定虛擬私人雲端網路的方式而定,私人 IP 環境可以透過虛擬私人雲端網路存取網際網路。
在 VPC Service Controls 模式中,網路伺服器的存取權受到範圍保護,範圍外則會遭到封鎖。如要允許服務範圍以外的存取權,請視需要設定存取層級或輸入和輸出規則。此外,您也可以限制網路伺服器的存取權,只允許特定 IP 範圍存取。
關於 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,請按照下列步驟操作:
為專案啟用 Access Context Manager API 和 Cloud Composer API。請參閱「啟用 API」一文。
請按照 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 使用的所有其他服務:
- 將服務新增至受限制的服務。
- 將服務新增至可透過虛擬私有雲存取的服務。
建立新的 Cloud Composer 環境:
- 使用 Google Cloud CLI 建立環境。
- 使用
--enable-private-environment
引數啟用私人 IP。 - 使用
--web-server-allow-all
、--web-server-allow-ip
或--web-server-deny-all
引數,指定網路伺服器的存取參數。如要進一步瞭解如何使用這些引數,請參閱「建立環境」一文。為提升保護力,請只允許特定 IP 範圍存取網路伺服器。 使用
--enable-private-builds-only
引數禁止安裝公開網際網路存放區中的套件。範例:
gcloud composer environments create example-environment \ --location us-central1 \ --enable-private-environment \ --web-server-allow-all \ --enable-private-builds-only
根據預設,只有安全性邊界內的使用者才能存取 Airflow UI 和 API。如果您想在安全邊界之外使用,請設定存取層級或入站和出站規則。
將現有環境新增至範圍
如果環境使用私人 IP,且已停用從公開存放區安裝 PyPI 套件的功能,您可以將包含環境的專案新增至邊界。
如要將現有的 Cloud Composer 3 環境更新為這項設定,請按照下列步驟操作:
- 請確認您已按照上一節的說明建立或設定邊界。
- 使用 Google Cloud CLI 更新環境。
- 使用
--enable-private-environment
引數啟用私人 IP。 - 使用
--enable-private-builds-only
引數禁止安裝公開網際網路存放區中的套件。 - 如有需要,請設定 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 存放區:
將貴機構使用的經過審查的套件填入其中,然後設定 Cloud Composer 從私人存放區安裝 Python 依附元件。
從公開存放區安裝
如何從外部存放區安裝 PyPI 套件:
- 建立 Artifact Registry 遠端存放區。
- 授予這個存放區上游來源的存取權。
- 設定 Airflow 從 Artifact Registry 存放區安裝套件。
VPC Service Controls 記錄
排解建立環境的問題時,您可以分析 VPC Service Controls 產生的稽核記錄。
除了其他記錄訊息外,您也可以查看記錄,瞭解設定環境元件的 cloud-airflow-prod@system.gserviceaccount.com
和 service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
服務帳戶相關資訊。
Cloud Composer 服務會使用 cloud-airflow-prod@system.gserviceaccount.com
服務帳戶管理環境的租用戶專案元件。
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
服務帳戶 (也稱為 Composer 服務代理人服務帳戶) 會管理服務和主機專案中的環境元件。