本篇文章將簡單說明 GitHub Codespace 安全性架構與一些最佳實踐,協助使用者理解如何維護安全性。雖然 Codespace 已經提供安全防護功能,但使用者仍有義務維持其安全性 (如安裝安全且受信任的延伸模組或開發工具) 以降低被攻擊的風險。
Codespace 皆有自己的虛擬機器與網路,是獨立且彼此分離 (意思是指兩個 Codespace 並不會在同一座虛擬機器上),其網路已經設定防火牆避免 internet 傳入,也防止了 Codespace 透過內部網路互相溝通,以確保不會被攻陷後,平行的取得其他 codespace 相關資訊。目前只允許 Codespace 到網際網路的輸出。
無論是從瀏覽器或 Visual Studio Code 連接至 Codespace,系統皆會提示使用 GitHub 進行驗證。當每次連線或重新啟動 Codespace 時皆會指派一個自動到期的 Token,而無需重新進行身分認證。Token 內包含了讀取與寫入權限,當使用者僅有讀取權限時,其 Commit 或 Push new branch,Codespace 則會Fork 此 Repository 至自己的 Repository 內,並更新 Token 權限。
GitHub Codespaces 服務以 TLS 加密連線到使用者的 codespace。只有 codespace 的建立者才能連接,其前面提到的內容相同,第一次連線是透過 GitHub 進行身份驗證。如果需要存取 Codespace 執行的服務,則可以設定 Port Forwarding (如進行 Web Application 開發時需要啟動網站),預設情況下,皆需要進行身分驗,其有效時限為 3 小時。其 Port Forwarding 可以分成三種類型:
與任何開發環境、工具一樣,即使是使用雲端開發環境,您仍需要注意