IBM Cloud Docs
Code Engine 和安全性

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 作业。 但是,作业仍然可以发出外部请求,并且可以在内部调用 Code Engine 应用程序。 有关在内部调用应用程序的作业的示例,请参阅 样本 for 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 或 Web 站点上的 Code Engine 中公开应用程序或功能,您可能希望限制对特定用户或位置 (IP 地址范围) 的访问。 虽然 Code Engine 提供了限制用于管理 Code Engine 项目及其实体的 API 访问权的功能,但代码源的所有者负责添加正确的认证和授权功能,以保护到达端点时运行的代码。 例如,可以使用 IBM Cloud App ID 为代码添加认证和授权功能。
定期轮换 TLS 证书 如果要使用定制域映射来公开应用程序或函数,那么必须确保 TLS 证书具有到期日期 (例如 90 天)。 您必须使用更新后的证书 (具有自己的到期日期) 定期轮换证书。 理想情况下,使用自动化来轮换证书。 例如,您可以使用由 cron 预订触发的 Code Engine 作业来轮换证书。 如果在 IBM Cloud Secrets Manager中存储私钥,请考虑使用 IBM Cloud Event Notifications,以使 Code Engine 项目了解证书轮换。 您可以通过访问 GitHub上的 Code Engine 样本存储库来查找使用事件通知的 样本应用程序

受支持的 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 和其他 CIS 安全功能上激活 DDoS 保护。
  7. 在 Code Engine中,关闭应用程序的公共系统提供的域映射。 转至应用程序,从应用程序的 域映射 选项卡中,选择 无外部系统域映射
  8. 单击 创建 以保存应用程序修订版。

有关 CIS中的 DDoS 的更多信息,请参阅 处理 CIS中的分布式拒绝服务攻击。 有关解决层 7 攻击的更多方法,请参阅 缓解 CIS 中的层 7 攻击