ConnectorsProxy
是一个核心组件,提供在 Kubernetes 集群内对集成工具的安全无密访问。它作为代理服务器,负责认证注入和请求路由到目标工具。
ConnectorsProxy
使客户端能够访问工具资源而无需直接处理凭证。这种方式带来了显著的安全优势:
平台支持内置和自定义代理实现,以满足多样化的工具认证需求。
内置的 ConnectorsProxy
实现提供了对 HTTP/HTTPS 协议的全面支持,支持 Basic Auth 和 Bearer Token 认证方式。它同时支持正向代理和反向代理功能。
作为标准 HTTP 代理,使用 http_proxy
和 https_proxy
环境变量。当代理接收到客户端请求时,它会:
客户端通过连接到连接器代理地址而非原始工具 URL 来访问工具。代理会:
对于需要特殊认证机制的工具,可以开发自定义代理实现。根据具体需求,这些代理可以作为正向代理或反向代理实现。
示例:OCI Connector 使用自定义的 OCI 插件代理,支持带有 Bearer Token 授权的 OCI 协议,适用于 Harbor 和 Docker Registry 等注册中心。
用户可以开发自定义代理服务器,并在 connectorclass 中指定。
每个 Connector
都有一个唯一的代理地址用于访问工具资源。代理地址存储在 status.proxy.httpAddress
字段中:
客户端使用此代理地址访问由连接器指定的工具内的资源。
有关 connectorclass 的更多字段,请参见 ConnectorClass
Connectors Proxy
可与 Connectors CSI Driver 无缝协作,提供完整的无密访问解决方案:
Connectors Proxy
负责认证注入和请求路由到目标工具此集成在以下场景中特别有用:
有关使用 Connectors Proxy
和 Connectors CSI Driver
实现完整无密访问场景,请参见 如何使用 Git Connector 完成无凭证存储的 Git clone
可以在 ConnectorClass 中指定要使用的代理服务器:
由此 ConnectorClass 创建的连接器将使用 connectors-proxy-service
作为其实际代理服务器。
内置代理配置示例:
自定义代理配置示例:
自定义代理可以指向任何能够处理代理请求的地址。
客户端使用 Connectors Proxy 时必须提供认证。认证使用 ServiceAccount 令牌,且该 ServiceAccount 必须具有目标 Connector 的读取权限。
内置正向代理认证
认证凭证通过 Proxy-Authorization
头传递:
<connector-namespace>/<connector-name>
示例:对于 default
命名空间下的 github
Connector:
通过此代理的请求在访问 GitHub 服务时会自动注入 default/github
连接器的认证凭证。
内置反向代理认证
认证凭证通过 Basic Auth 传递:
示例:对于 default
命名空间下的 github
Connector:
代理在将请求转发到 GitHub 服务时会自动注入 default/github
连接器的认证凭证。