建置流程顯示原始碼不會持久保存,但你的企業審查仍卡在資料駐留、留存與稽核證據。
最快做法:先分開核對原始碼、建置輸出和腳本外連;證據不足的工作流暫緩,或留在可由你驗收的自管/遠端 Mac CI。
適合企業安全與合規負責人:確認雲端建置是否符合內部資料政策。
適合 CI 平台負責人:檢查倉庫授權、建置腳本及輸出處理。
適合企業 IT 與技術決策者:評估 Xcode Cloud,並界定 Mac CI 備選方案。
安全與合規負責人:驗收 Xcode Cloud 企業資料安全邊界
先把服務公開承諾與企業政策分成兩欄。Apple 說明 Xcode Cloud 使用臨時隔離環境建置,原始碼不會被持久保存;建置輸出則會加密傳輸與靜態儲存。這些是可供核查的控制聲明,不等於對資料駐留、刪除期限或企業合規的普遍保證。Apple 的 Xcode Cloud 安全說明
| 資料類別 | Apple 公開說明可支持的判斷 | 仍須由你核實 |
|---|---|---|
| 原始碼 | 建置使用臨時隔離環境,原始碼不會被持久保存 | 建置期間的存取範圍、資料所在地,以及你組織要求的刪除證據 |
| 建置日誌與其他輸出 | 建置輸出加密傳輸並以加密方式靜態儲存 | 內容是否含機密、誰可存取、留存與刪除方式 |
| 測試結果與產物 | 屬於需納入審查的建置輸出 | 是否包含個人資料、簽署資訊或受限制的發布資料 |
| 腳本外部呼叫 | 不應直接視為平台本身的資料處理承諾 | 外部服務、上傳目的地、憑證及其各自的處理規則 |
不要把「加密」當成「符合政策」的替代說法。加密說明的是資料保護方式,不會自行回答資料儲存在哪裡、保存多久、如何證明刪除,或企業能否取得所需稽核紀錄。把資料分類、地域限制、第三方審查和證據保存要求逐項寫成驗收條件,再對照 Apple 當時有效的文件。
提醒:若內部政策要求指定司法管轄區、明確刪除期限或可供稽核的證據,公開安全頁面沒有直接回答時,就應記為「尚未證實」,不能把推定填成已通過。
原始碼管理負責人:逐一收緊倉庫授權
雲端建置要讀取程式碼,前提是程式碼託管端有對應的連線與授權。你的審查重點不是只確認建置能否啟動,而是確認授權涵蓋哪些倉庫、哪些身份可以管理連線,以及人員或專案變更後如何撤銷。
Apple 的程式碼管理接入設定文件與連接程式碼託管服務的說明可用來核對接入方式。實際審查時,請將文件描述和你組織的權限設定分開留證;官方說明不會自動證明你的授權範圍符合最小權限。
| 核對項目 | 驗收動作 | 不通過時的處理 |
|---|---|---|
| 倉庫範圍 | 記錄連線可讀取的專案及倉庫,確認是否超出工作流所需 | 收窄授權,或拆分不同敏感等級的工作流 |
| 管理身份 | 查明由誰建立、修改和移除連線 | 指定責任人,並把離職或職務異動納入撤權流程 |
| 自託管倉庫 | 畫出 CI 取得程式碼的實際路徑,確認落在核准邊界內 | 先確認接入方式及網路路徑,再決定是否納入 |
| 權限撤銷 | 演練撤銷身份或連線後,舊授權是否失效 | 未能證明撤銷有效前,不放入高敏感倉庫 |
CI 平台負責人:盤點臨時環境與腳本外連
「不會被持久保存」描述的是原始碼的持久保存狀態,不是原始碼不會在建置期間進入執行環境。也不要由此推論所有外部資料流都受相同控制。你需要分別盤點工作流取得程式碼的方式,以及自訂腳本會讀取、傳送或上傳哪些內容。
Apple 的自訂建置腳本文件與環境變數參考可協助你核對腳本執行方式與可用變數。檢視時逐段搜尋外部服務呼叫、檔案上傳、套件下載和憑證讀取;再確認腳本輸出是否可能把權杖、內部路徑或程式碼片段寫入日誌。
可勾選驗收清單
- [ ] 列出每個工作流可讀取的倉庫與分支,確認範圍符合任務需要。
- [ ] 搜尋自訂腳本中的外部連線、上傳指令及第三方服務呼叫。
- [ ] 確認憑證不以明文寫入腳本、日誌或建置產物。
- [ ] 逐項辨識日誌及測試輸出可能包含的機密欄位。
- [ ] 確認團隊能說明授權撤銷、輸出存取及資料刪除的責任人與證據。
- [ ] 對每個無法由文件或內部測試證實的要求標記風險負責人及上線條件。
清單中任何一項無法驗證,都不等於平台一定不安全;它代表該項控制尚未達到你組織的證據門檻。先限制相關工作流,再補足文件、測試或替代架構的評估。
FAQ:處理資料留存、輸出保護與駐留疑問
原始碼會在建置後長期留在 Xcode Cloud 嗎?
Apple 公開說明表示,建置在臨時隔離環境中進行,原始碼不會被持久保存。這不能回答企業要求的特定刪除期限或資料所在地;若你的政策需要這類證明,應另外取得可直接支持要求的資料,而不是從「非持久保存」推導出未經確認的結論。
建置日誌、測試結果和產物應分開檢查嗎?
應分開。日誌可能暴露路徑、權杖或診斷資訊,測試結果也可能包含測試資料,產物則可能帶有受限的程式碼或發布內容。Apple 說明建置輸出會加密傳輸與靜態儲存;你仍須自行核對內容分類、存取對象、留存要求及刪除證據。
公開文件能證明符合企業資料駐留政策嗎?
不能單憑臨時建置環境或加密聲明確認資料駐留地點、司法管轄區或處理路徑。先把組織的地域要求寫清楚,再尋找能直接證明符合該要求的現行文件。若證據不足,就限制相關資料進入工作流,並評估其他可驗證的 Mac CI 部署方式。
審核倉庫授權與自訂腳本時,應留存哪些證據?
保存授權涵蓋範圍、連線管理者、撤銷測試結果,以及腳本中外部服務、上傳位置和憑證使用方式的審查紀錄。Apple 的接入與腳本文檔可作為核對依據,但你還要確認組織實際設定與政策一致,並記錄未解決的資料流風險由誰承擔。
應用團隊負責人:分開管理日誌、測試結果與產物
把「建置輸出」拆成可管理的資料項目。日誌、測試結果、封存檔和其他輸出可能含有不同敏感資訊,也可能適用不同的存取與留存政策。Apple 公開安全說明涵蓋建置輸出的加密傳輸與靜態儲存;它沒有替你的團隊決定哪些資料可保留多久,或哪些人應能下載。
建議在工作流上標明輸出類型、內容負責人、核准的存取群組,以及團隊要求的處理方式。再抽查真實建置輸出,確認腳本沒有把秘密或機密內容寫入日誌。若涉及簽署憑證或發布產物,也要由負責人確認其管理方式符合組織政策,不要因原始碼不持久保存就略過這項審查。
採購與法務負責人:建立可追溯的證據紀錄
將 Apple 官方安全頁面、服務條款及企業內部審查紀錄分開歸檔,並在每份紀錄旁註明「能支持什麼」與「沒有回答什麼」。例如,加密聲明可支持傳輸及靜態儲存的保護方式,不能單獨支持特定地域、保存期限或稽核能力。
核對工作流角色時,可參考 Apple 的帳戶與角色說明,並另行確認你實際採用的權限設定。官方文件、合約條款與內部控制測試各自回答不同問題,不應合併成一個「已合規」標籤。
記錄時至少保留要求、證據來源、審查人、未解問題和風險負責人。若資料分類或工作流發生變更,重做相關核對;不要只在首次上線時留存一次截圖,之後便假設控制仍然有效。
架構決策者:依證據決定採用、限用或保留 Mac CI
Apple 的基礎架構驗證建置說明可供你核對相關建置機制;它不能替代資料治理與合規審查。最後用責任矩陣收斂結論,不要用單一安全聲明替整條工作流背書。
| 決策 | 適用條件 | 上線前的必要動作 |
|---|---|---|
| 採用 | 倉庫授權、輸出處理與組織政策均有相符證據 | 保存審查紀錄,指定控制負責人 |
| 限用 | 部分要求已確認,仍有範圍可控的證據缺口 | 限制資料類別或工作流,訂明補證條件 |
| 保留或轉入 Mac CI | 地域、網路、留存或稽核要求無法由現有證據確認 | 評估自管或遠端 Mac 的部署條件,逐項核實責任與控制 |
場景案例:若團隊的一般測試工作流已有清楚的倉庫權限與輸出管理紀錄,可按內部核准範圍評估採用;若某條發布工作流依賴自訂上傳腳本,而目的地與資料處理方式尚未獲批,就先限用該工作流。若地域或稽核要求仍無法證明,將受控任務保留在你能完成驗收的 Mac CI 路徑,直到缺口有明確結論。
Xcode Cloud 的優點是 Apple 已公開部分建置環境與加密控制;限制則是公開承諾不能代替你確認地域、留存、審計,以及自訂腳本另行建立的資料流。自管 Mac CI 能讓你依內部架構設計控制,但也須自行承擔修補、監控、憑證管理和維運責任。遠端 Mac 適合作為待驗證的替代路徑,不應未經審查就視為天然符合要求。
若你需要比較遠端 Mac 的交付選項,可先查看香港遠端 Mac 方案與遠端 Mac 方案頁,並向 MACCOME 核實與你工作流相關的存取、隔離及資料處理條件。當現有託管 CI 無法證明地域或留存要求時,租用實體 Mac 作為受控任務的執行環境,可能比把未核准的資料流直接放進雲端工作流更合適;若你需要長期固定負載或必須掌握實體介面,則應把自購設備一併納入評估。