iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

本篇文章將簡單說明 GitHub Codespace 安全性架構與一些最佳實踐,協助使用者理解如何維護安全性。雖然 Codespace 已經提供安全防護功能,但使用者仍有義務維持其安全性 (如安裝安全且受信任的延伸模組或開發工具) 以降低被攻擊的風險。

https://ithelp.ithome.com.tw/upload/images/20240924/20091494R89cImChbN.jpg

 

環境隔離

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 可以分成三種類型:

  • Privately forwarded ports
    雖然可以在網路上存取,但仍需要透過 GitHub 身分驗證後才得以存取
  • Publicly forwarded ports within your organization
    同上,在 GitHub 身分驗證範圍為組織內成員
  • Publicly forwarded ports
    任何人皆可以在網路上存取,無需任何身分驗證 (如果重新新增 forwarded ports 或重新啟動 Codespace 時,皆會轉回 private。

https://ithelp.ithome.com.tw/upload/images/20240924/20091494Vbu1YgvkDW.png

 

最佳實踐

與任何開發環境、工具一樣,即使是使用雲端開發環境,您仍需要注意

  • 應該只在您了解和信任的儲存庫中開啟和工作。
  • 加入新的 dependencies 之前,請檢查其安全性 (是否有最新更新以修復任何安全漏洞)

https://ithelp.ithome.com.tw/upload/images/20240924/20091494XW6VrAMdSO.png

  • 使用開發環境秘密管理存取敏感資訊
  • 確認 contributions 與 repositories 權限關係
    • Private repository - Codespace 被授予對分支和 Parent Repository 存取權限
    • Public repository - Codespace 只能存取 Fork 和對 Parent Repository 建立 Pull Request
  • 謹慎使用 devcontainer.json - 除了設定環境,也能安裝第三方擴充功能。這意味著使用者必須確保沒有惡意執行的指令
  • 請注意延伸模組及或相關功能執行時的授權行為。建議只對有需要的人進行授權,且盡可能採取可能限制性管理策略
  • 如果可以,盡可能限制設定同步以避免惡意內容跨裝置傳輸 - 尤其對於不信任的儲存庫要建立 Codespace。

上一篇
GitHub Codespace 環境變數與秘密管理
下一篇
GitHub Codespace 問題排除與災難復原
系列文
現代化應用程式開發與維運 - GitHub Codespace 與 GitHub Copilot13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言