身份识别与访问管理,一个 Web 服务用于给第三方用户提供访问控制服务,即资源授权功能
- 用户名和密码进行认证
- 用户需要在
IAM中创建属于自己的密钥资源,访问资源通过密钥 - 通过授权策略完成授权
IAM会根据用户的请求内容和授权策略来决定一个授权请求是否被允许
iam-apiserver- 通过
RESTful API完成用户、密钥和授权策略的增删改查
- 通过
iam-authz-server- 从
iam-apiserver拉取密钥和授权策略,并缓存在内存中,用户通过请求iam-authz-server提供的/v1/authz接口来完成资源的授权
- 从
iam-pump- 从
Redis中拉取缓存的授权日志,分析后存入Mongo数据库中
- 从
iam-sdk- 参考
K8S的client-go,封装了iam-apiserver和iam-authz-server的接口
- 参考
iamctl- 参考了
kubectl的实现,通过iam-sdk来操作iam-apiserver和iam-authz-server
- 参考了
- 旁路
- 第三方应用
iam-webconsole- 系统的前端,调用
iam-apiserver实现用户、密钥和策略的增删改查
- 系统的前端,调用
iam-operating-system- 运营系统,展示运营数据
loadbalance- 负载均衡器
Redis- 缓存数据库,用来缓存密钥和授权策略,降低访问延时,同时也会缓存授权日志作为运营系统的数据来源
MariaDB- 持久化用户、密钥和授权策略信息
MongoDB- 存储授权日志,供后期运营系统展示和分析