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 或 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 项目能够感知证书轮换。 您可以访问我们的 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中,关闭应用程序的公共系统提供的域映射。 转至应用程序,从应用程序的 域映射 选项卡中,选择 无外部系统域映射。
- 单击 创建 以保存应用程序修订版。
有关 CIS中的 DDoS 的更多信息,请参阅 处理 CIS中的分布式拒绝服务攻击。 有关解决层 7 攻击的更多方法,请参阅 缓解 CIS 中的层 7 攻击。