Confidential Space 總覽


機密空間提供隔離環境,可處理多方提供的私密資料,因此資料擁有者可以確保資料機密性。機密資料可能包括個人識別資訊 (PII)、受保護的健康資訊 (PHI)、智慧財產、加密密碼、機器學習 (ML) 模型等。

您可能會使用機密空間處理敏感資料,這類資料只會向原始擁有者和雙方同意的工作負載顯示。或者,您也可以使用這項功能,為終端消費者提供更完善的資料隱私權保障,因為機密空間環境的營運商或擁有者無法存取正在處理的資料。

機密空間使用受信任的執行環境 (TEE),可將密鑰只發布給授權工作負載。認證程序和強化型 OS 映像檔可協助保護工作負載,以及工作負載處理的資料,避免遭到運算子存取。

如要進一步瞭解 Confidential Space 的應用實例和安全模型,請參閱「Confidential Space 安全總覽」。

Confidential Space 元件

機密空間系統有三個核心元件:

  • 工作負載:含有程式碼的容器化映像檔,可處理受保護的資源。這項服務會在機密空間映像檔上執行,該映像檔是以Container-Optimized OS 為基礎的強化 OS。這項服務會在機密 VM 上執行,也就是提供硬體隔離和遠端認證功能的雲端 TEE。工作負載通常位於與受保護資源不同的專案中。

  • 認證服務:遠端認證驗證器,會以 OpenID Connect (OIDC) 權杖的形式傳回認證證據。權杖包含工作負載的識別屬性。認證服務會在工作負載執行的同一區域中執行。

  • 受保護的資源:受驗證和授權系統保護的受管理資源。如果資源位於 Google Cloud,則可以是受管理雲端資源,例如 Cloud Key Management Service (KMS) 金鑰或 Cloud Storage 儲存空間。如果資源不在 Google Cloud 中(例如在內部部署環境或其他雲端中),則可以是任何資源。

Confidential Space 角色

機密空間系統中的元件由三種不同角色的使用者管理:

  • 資料協作者:擁有受保護資源的人員或機構,這些資源由工作負載運作。資料協作者可以存取自己的資料、設定資料權限,並視工作負載的輸出內容而定,存取以該資料為依據的結果。

    資料協作者無法存取彼此的資料,也無法修改工作負載程式碼。

    如要進一步瞭解資料協作者的角色,請參閱「建立及授予機密資源的存取權」。

  • 工作負載作者:建立應用程式的人員,該應用程式會存取及處理機密資料。他們會將應用程式新增至容器化映像檔 (例如使用 Docker),並將映像檔上傳至 Artifact Registry 等存放區。

    工作負載作者無法存取資料或結果,也無法控管存取權。

    如要進一步瞭解工作負載作者的角色,請參閱「建立及自訂工作負載」。

  • 工作負載運算子:執行工作負載的人員。工作負載運算子通常在執行工作負載的專案中,擁有完整的管理權限。舉例來說,他們可以管理專案中的資源 (例如 Compute Engine 執行個體、磁碟和網路規則),並與作用於這些資源的任何Google Cloud API 互動。

    工作負載運算子無法存取資料,也無法控管資料存取權。他們無法影響或修改工作負載程式碼或執行環境。

    如要進一步瞭解工作負載運算子的角色,請參閱「部署工作負載」。

一個人可以擔任一或多個角色。為確保最高安全性,Confidential Space 支援信任模型,其中資料協作者、工作負載作者和工作負載運算子是互不信任的獨立各方。所有角色都必須互相合作,才能取得所需結果。

Confidential Space 流程範例

Confidential Space 會使用多項 Google Cloud 服務,協助機密地處理私人資訊。一般來說,設定 Confidential Space 的流程可能類似於以下步驟:

  1. 多位資料協作者會將加密的機密資料儲存在各自的獨立專案中,這些專案通常屬於不同機構。 Google Cloud 他們希望比較及處理這些資料,但不想向彼此或外部各方揭露資料。加密資料可能位於 Cloud StorageBigQuery 或其他服務。

  2. 資料協作者會建立模擬的非機密資料,用於測試工作負載。這些資料可能是不同的檔案,或位於其他位置,例如獨立的 Cloud Storage bucket。

  3. 資料協作者會建立工作負載身分池 (WIP)。之後,在工作負載運算子獨立專案中執行的工作負載,就能使用該 WIP 存取協作者的機密資料。

  4. 工作負載作者會編寫程式碼來處理機密資料。在與資料協作者和工作負載運算子不同的專案中,他們使用 Docker 建構容器化映像檔,並上傳至 Artifact Registry

  5. 工作負載運算子會在獨立專案中建立服務帳戶,該帳戶具有讀取權限,可存取資料協作者加密機密資料的儲存位置,以及寫入權限,可將解密資料的運算結果輸出至某個位置 (例如 Cloud Storage 值區)。稍後,這個服務帳戶會附加至執行工作負載的 Confidential VM。

  6. 資料協作者會將「提供者」新增至工作負載身分集區。他們會為供應商新增詳細資料,例如必須使用的認證服務、屬性對應 (用於在記錄中建立稽核追蹤記錄) 和屬性條件。 這些詳細資料會驗證 Confidential Space 映像檔、工作負載容器和工作負載 VM 執行個體所做的聲明。如果工作負載通過這項驗證,就能存取及解密機密資料。

  7. 在工作負載運算子的專案中啟動機密 VM 執行個體,即可在非機密資料上測試工作負載。VM 是以 Confidential Space 映像檔的偵錯版本為基礎,該版本會載入容器化工作負載。

    驗證 VM 的認證後,如果工作負載符合資料協作者的條件,附加至 VM 的服務帳戶就能存取機密資料、處理資料並輸出結果。

  8. 監控及偵錯完成後,工作負載就會更新,以供實際使用。資料協作者會視需要進一步更新及鎖定工作負載身分識別提供者,並可能選擇先以非機密資料測試正式版工作負載。

  9. 所有相關人員都同意正式環境工作負載,並準備開始處理機密資料。

需求條件

機密空間必須使用機密 VM 才能運作。機密 VM 執行個體必須使用 AMD SEV、Intel TDX 或 Intel TDX with NVIDIA Confidential Computing (搶先版) 做為機密運算技術。請參閱「支援的設定」,瞭解硬體設定選項,以及可建立機密 VM 執行個體的位置。

後續步驟