安全性最佳做法

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer„�

保護 Cloud Composer 環境安全,對於保護機密資料和防止未經授權的存取至關重要。本頁列出重要最佳做法,包括網路安全、身分與存取權管理、加密和環境設定管理方面的建議。

如要進一步瞭解 Cloud Composer 提供的安全防護功能,請參閱安全性總覽

使用版本控管管理環境設定和 DAG

Airflow CI/CD 管道範例
圖 1. Airflow CI/CD 管道範例 (按一下可放大)
  • 使用 Terraform 建立環境。 這樣一來,您就能將環境的設定以程式碼形式儲存在存放區中。這樣一來,您就能在套用環境設定變更前先進行審查,並指派權限較少的使用者角色,減少有權變更設定的使用者人數。

  • 在 Identity and Access Management 中,停用一般使用者對 DAG 和環境設定的直接存取權,詳情請參閱「Identity and Access Management」一節。

  • 使用 CI/CD 管道在環境中部署 DAG,以便從存放區擷取 DAG 程式碼。這樣一來,系統就會先審查及核准 DAG,再將變更合併至版本控管系統。在審查期間,核准者會確保 DAG 符合團隊內建立的安全條件。審查步驟至關重要,可避免部署可能執行非預期動作的 DAG。

    審查 DAG 時,請考量以下重要安全事項:

    • 修改環境值區內容的 DAG 不得修改其他 DAG 的程式碼或存取機密資料,除非是預期行為。

    • 除非有意為之,否則 DAG 不得直接查詢 Airflow 資料庫。Cloud Composer 環境中的 DAG 可以存取 Airflow 資料庫中的所有資料表。您可以從任何資料表擷取資訊、處理資訊,然後將資訊儲存在 Airflow 資料庫以外的位置。

網路安全

  • 使用私人 IP 環境,讓執行環境叢集的 Airflow 元件不會獲派公開 IP 位址,且只能透過 Google 的內部網路通訊。

  • 實作嚴格的防火牆規則,控管環境叢集的傳入和傳出流量。

  • 設定連線至 Google API 和服務:透過 private.googleapis.com 網域,讓環境僅透過可從 Google Cloud內部路由傳送的 IP 位址存取 Google API 和服務。

  • 檢查專案和環境所在的虛擬私有雲網路中的一般防火牆規則。視設定方式而定,環境的 Airflow 元件 (例如執行 DAG 的 Airflow 工作站) 可能會存取網際網路。

Identity and Access Management

  • 隔離權限。 建立環境服務帳戶,並為不同環境使用不同的服務帳戶。請只將嚴格來說操作這些環境所需的權限,指派給這些服務帳戶,並執行 Airflow DAG 中定義的作業。

  • 請避免使用權限廣泛的服務帳戶。雖然可以建立使用具備廣泛權限帳戶的環境 (例如「編輯者」基本角色授予的權限),但這會導致 DAG 使用的權限超出預期,造成風險。

  • 請勿依賴 Cloud Composer 使用的 Google 服務預設服務帳戶。如果減少這些服務帳戶的可用權限,專案中的其他 Google 服務通常也會受到影響。

  • 請務必熟悉環境服務帳戶的安全性注意事項,並瞭解這個帳戶如何與您在專案中授予個別使用者的權限和角色互動。

  • 遵循最低權限原則。只授予使用者必要的最低權限。舉例來說,您可以指派 IAM 角色,讓只有管理員可以存取環境的 bucket 和叢集,並為一般使用者停用直接存取權。舉例來說,「Composer User」角色只允許存取 DAG UI 和 Airflow UI。

  • 強制執行 Airflow UI 存取權控管機制,根據使用者的 Airflow 角色減少 Airflow UI 和 DAG UI 的顯示內容,並指派個別 DAG 的 DAG 層級權限。

  • 定期查看。定期稽核 IAM 權限和角色,找出並移除任何過多或未使用的權限。

  • 請注意傳遞及儲存機密資料:

    • 傳遞或儲存個人識別資訊或密碼等私密資料時,請務必謹慎。視需要使用 Secret Manager 安全地儲存 Airflow 連線和 Airflow 密鑰、API 金鑰、密碼和憑證。請勿將這項資訊儲存在 DAG 或環境變數中。

    • 只將環境值區的 IAM 權限授予信任的使用者。盡可能使用物件專屬權限。 環境服務帳戶的安全考量列出多種方式,讓有權存取環境 bucket 的使用者,能以環境服務帳戶的名義執行動作。

    • 請務必瞭解快照中儲存的資料,並只將建立環境快照和存取快照儲存 bucket 的權限授予信任的使用者。

    • Cloud Composer 的所有外部介面預設都會使用加密機制。連線至外部產品和服務時,請務必使用加密通訊 (SSL/TLS)。

後續步驟