ack-ram-authenticator

通过ack-ram-authenticator组件,可以让您的ACK托管集群使用Webhook方式基于阿里云RAM完成请求认证。本文介绍ack-ram-authenticator组件的功能介绍、使用说明和变更记录。

组件介绍

ack-ram-authenticator组件是面向ACK托管集群的认证插件,基于Kubernetes原生Webhook Token认证方式,实现通过RAM完成集群API Server的请求认证。同时,该组件通过CRD形式提供RAM身份和RBAC权限的映射关系,帮您更灵活地配置RBAC鉴权。

对于阿里云SSO角色对接使用ACK托管集群的场景, ack-ram-authenticator组件可以帮助您在请求API Server时,下发请求者身份对应的Session名称,从而更安全地审计不同用户在扮演相同角色后对集群API Server的访问请求。

使用ack-ram-authenticator组件后,集群的Webhook认证流程如下图所示。

1111..png

  1. 当使用kubectl等工具发起对API Server的认证请求时,首先通过KubeConfig中的exec命令插件执行机制,执行ack-ram-tool客户端工具生成签名后的STS请求URL。

  2. 发送Webhook认证请求到ACK托管集群API Server,通过Webhook认证配置路由到ack-ram-authenticator组件。

  3. 基于接收到的Token URL请求对阿里云RAM GetCallerIdentity接口进行认证。若认证成功,在ack-ram-authenticator组件中会寻找接口返回的RAM身份和用户在指定RAMIdentityMapping的CR中配置的身份映射。

  4. API Server中对映射后的用户和用户组身份进行原生RBAC鉴权,并返回鉴权结果。

使用说明

关于如何使用ack-ram-authenticator进行ACK托管集群的Webhook认证,请参见通过ack-ram-authenticator完成ACK托管集群API Server的Webhook认证

变更记录

2024年09月

版本号

变更内容

变更时间

变更影响

v0.3.0.0-gea598ff0-aliyun

升级组件使用的Golang版本为1.22.7,提升组件稳定性。

2024年09月09日

安装和卸载此组件均会重启集群控制面API Server,会影响与API Server的长连接。建议在业务低峰期进行组件的安装和卸载操作。

2024年04月

版本号

变更内容

变更时间

变更影响

v0.2.1.3-g694325a9-aliyun

请求GetCallerIdentity接口时传递组件版本信息便于问题定位。

2024年04月12日

安装和卸载此组件均会重启集群控制面API Server,会影响与API Server的长连接。建议在业务低峰期进行组件的安装和卸载操作。

v0.2.0.3-gcea89d25-aliyun

当前处于灰度发布中。

新增支持ARM架构。

2024年04月10日

2023年11月

版本号

变更内容

变更时间

变更影响

v0.2.0.0-g9cf9d682-aliyun

  • 新增支持ACK Serverless集群

  • 新增支持新版Token格式。

2023年11月15日

安装和卸载此组件均会重启集群控制面API Server,会影响与API Server的长连接。建议在业务低峰期进行组件的安装和卸载操作。

2023年05月

版本号

变更内容

变更时间

变更影响

v0.1.0.5-g6e50a122-aliyun

新增ack-ram-authenticator组件,首次发布。

2023年05月18日

安装和卸载此组件均会重启集群控制面API Server,会影响与API Server的长连接。建议在业务低峰期进行组件的安装和卸载操作。