Code Engine 和安全
IBM Cloud® Code Engine 的架構 是以「安全第一」的理念所建構。Code Engine 的元件 由 IBM 負責管理與維護。 透過基於 Kubernetes 命名空間的專案,將客戶及其工作負載彼此隔離。 角色型存取控制是在資源層次上執行,只容許授權使用者對專案資源執行特定作業。
使用者存取權限由「Cloud Identity and Access Management」(IAM)進行管控。 已部署的應用程式會透過 HTTPS 對外公開,而 Code Engine 會自動為您建立並管理底層的 TLS 憑證。Code Engine 可立即為您的應用程式提供 DDoS 保護。Code Engine 的 DDoS 保護功能 由 Cloud Internet Services (CIS)
提供,您無需支付任何額外費用。
Code Engine 根據定義,工作無法從外部存取。 不過,Jobs 仍可發送外部請求,並可在內部呼叫 Code Engine 應用程式。 關於在內部呼叫應用程式的工作範例,請參閱 「Code Engine 範例」GitHub 儲存庫。
您可以使用下列安全特性來加強安全。
| 安全特性 | 說明 |
|---|---|
| 使用 IAM 授權存取 | 使用 Cloud Identity and Access Management (IAM),將 Code Engine 的存取權授與其他使用者。IBM Cloud IAM 提供 IBM Cloud 平台、Code Engine及帳戶中所有資源的安全鑑別。 設定適當的使用者角色和許可權是限制誰可以存取資源的關鍵。 請參閱 管理使用者存取權。 |
| 停用外部端點 | 透過使用 --visibility=private 或 visibility=project 選項,使用未公開給外部資料流量的已停用外部端點來部署應用程式。 請參閱 Code Engine 應用程式的可見性選項。 |
| 將映像檔儲存在專用映像檔登錄中 | 設定專用映像檔登錄 (例如 IBM Cloud Container Registry提供的登錄),以控制對登錄及可在 Code Engine中部署之映像檔的存取權。 使用 IBM Cloud Container Registry Vulnerability Advisor 自動掃描映像檔。 您也可以將存取權新增至您自己的自訂專用登錄。 請參閱 存取容器登錄。 |
| 從專用儲存庫建置程式碼 | 將原始碼儲存在專用儲存庫中,然後建置至 IBM Cloud Container Registry。 請參閱 存取專用程式碼儲存庫。 |
| 使用密鑰來儲存機密性資訊 | 您可以將密碼和 SSH 金鑰等資訊儲存在密鑰中。 如需相關資訊,請參閱 使用密鑰。 |
| 新增鑑別和授權功能 | 如果您在公用 API 或網站上的 Code Engine 中公開應用程式或函數,則可能想要限制存取特定使用者或位置 (IP 位址範圍)。 雖然 Code Engine 提供用於限制存取 API 的功能,您可以使用這些 API 來管理 Code Engine 專案及其實體,但程式碼來源的擁有者必須負責新增適當的鑑別及授權功能,以保護到達端點時所執行的程式碼。 例如,您可以使用 IBM Cloud App ID 來新增程式碼的鑑別和授權功能。 |
| 定期輪替「TLS」憑證 | 如果您使用自訂網域映射來公開您的應用程式或函式,必須確保您的 TLS 憑證設有到期日期;例如 90 天。 您必須定期使用更新的憑證 (具有自己的到期日) 來輪換憑證。 理想情況下,使用自動化來輪換憑證。 例如,您可以使用由 cron 訂閱觸發的「Code Engine」工作來輪替憑證。 若您將機密資料儲存於 IBM Cloud Secrets Manager 中,請考慮使用 IBM Cloud Event Notifications,以便您的 Code Engine 專案能掌握憑證輪替的相關資訊。 您可造訪我們的 Code Engine 範例儲存庫(網址:GitHub ),查看一個 使用事件通知的範例應用程式。 |
支援的 TLS 版本與加密套件
Code Engine API 及應用程式端點支援傳輸層安全性( TLS )、1.2 (或更高版本),以及以下加密套件。
TLS 加密套件
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305
DDoS 保護
Code Engine 為您的應用程式提供立即 DDoS 保護。Code Engine的 DDoS 保護由 Cloud Internet Services (CIS) 提供,您無需額外付費。
DDoS 此防護機制可抵禦開放系統互連(OSI)第 3 層與第 4 層( TCP/IP )的協定攻擊,但不包括第 7 層( HTTP )的攻擊。
若要解決第 7 層攻擊,您可以採取下列步驟,讓您的資料流量透過使用自訂網域的安全路徑執行,且不再透過 Code Engine 提供的網域可供公用網際網路使用。
- 取得自訂網域。
- 在 Code Engine中,為您的應用程式 建立自訂網域對映。
- 設定 Cloud Internet Services (CIS) 的實例以管理自訂網域。
- 將自訂網域新增至 CIS 實例。
- 在 CIS中 配置廣域負載平衡器。
- 請在 CIS 中,為負載平衡器啟用「HTTP」代理模式。 此操作將啟用第 7 層的「DDoS」防護功能,以及其他「CIS」安全功能。
- 在 Code Engine中,關閉公用系統提供的應用程式網域對映。 移至應用程式,從應用程式的 網域對映 標籤中,選取 無外部系統網域對映。
- 按一下 建立,以儲存應用程式修訂。