Glance S3 驱动的 HTTP 代理支持

https://blueprints.launchpad.net/glance/+spec/http-proxy-support-for-s3

目前 S3 存储不允许操作员通过代理连接到 S3 后端。这可能会限制从不同网络安全地连接到 S3 后端的能力。我建议添加使用代理连接到 S3 后端的选项。

问题描述

如果 Glance 存储配置为使用 S3 后端,并且后端位于私有网络之后,需要远程访问,则没有安全的方式可以安全地访问 S3 后端。

提议的变更

Boto,用于与 S3 后端建立连接的库,已经支持代理配置。我建议我们启用连接以接受额外的配置选项,以便用户可以选择通过代理连接。

将添加以下配置

  • s3_store_enable_proxy: 启用代理的使用

  • s3_store_proxy_host: 代理服务器(启用代理时必需)

  • s3_store_proxy_port: 连接到代理的端口

  • s3_store_proxy_user: 代理连接的用户名。

  • s3_store_proxy_password: 用于通过代理连接的密码。

备选方案

用户可以使用系统范围的代理参数,但这会限制从外部网络连接的能力。

数据模型影响

REST API 影响

安全影响

这将引入由用户修改的安全设置。通过代理连接的能力将提供一种很好的方式来保护连接。

通知影响

其他最终用户影响

这将在存储配置中引入代理配置选项。

性能影响

其他部署者影响

此更改必须在存储选项中显式配置。

开发人员影响

实现

负责人

主要负责人

cpallares

评审人员

核心评审人

flaper87 sigmavirus24

其他审核员

rosmaita

工作项

  • 添加配置(代理名称、端口、用户、密码、默认重试次数到 S3 等)。

  • 修改对 S3 的连接,以便可以选择接受代理参数。

  • 为使用代理连接到 S3 后端的连接创建额外的单元测试。

依赖项

测试

需要单元测试来测试代理连接。

文档影响

需要更新 S3 存储的文档,以包含代理选项。

参考资料