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=privatevisibility=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-SHA256
  • ECDHE-ECDSA-AES256-GCM-SHA384
  • ECDHE-RSA-AES128-GCM-SHA256
  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-CHACHA20-POLY1305
  • ECDHE-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 提供的網域可供公用網際網路使用。

  1. 取得自訂網域。
  2. 在 Code Engine中,為您的應用程式 建立自訂網域對映
  3. 設定 Cloud Internet Services (CIS) 的實例以管理自訂網域。
  4. 將自訂網域新增至 CIS 實例
  5. 在 CIS中 配置廣域負載平衡器
  6. 請在 CIS 中,為負載平衡器啟用「HTTP」代理模式。 此操作將啟用第 7 層的「DDoS」防護功能,以及其他「CIS」安全功能。
  7. 在 Code Engine中,關閉公用系統提供的應用程式網域對映。 移至應用程式,從應用程式的 網域對映 標籤中,選取 無外部系統網域對映
  8. 按一下 建立,以儲存應用程式修訂。

如需 CIS中 DDoS 的相關資訊,請參閱 處理 CIS。 如需解決第 7 層攻擊的其他方法,請參閱 CIS