【模块一】kubernetes容器编排进阶实战之kubernetes准入控制

kubernetes 准入 控制

Kubernetes API 鉴权流程

Kubernetes API 鉴权类型

鉴权类型:鉴权 | Kubernetes

Node(节点鉴权):针对kubelet发出的API请求进行鉴权。
授予node节点的kubelet读取services、endpoints、secrets、configmaps等事件状态,并向API server更新pod与node状态。
Webhook: 是一个HTTP回调,发生某些事情时调用的HTTP调用。
# Kubernetes API 版本
apiVersion: v1
# API 对象种类
kind: Config
# clusters 代表远程服务。
clusters:
- name: name-of-remote-authz-service
  cluster:
 # 对远程服务进行身份认证的 CA。
    certificate-authority: /path/to/ca.pem
 # 远程服务的查询 URL。必须使用 'https'。
    server: https://authz.example.com/authorize

ABAC(Attribute-based access control ):基于属性的访问控制,1.6之前使用,将属性与账户直接绑定。
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "user1", "namespace": "*", "resource": "*", 
"apiGroup": "*"}} #用户user1对所有namespace所有API版本的所有资源拥有所有权限((没有设置"readonly": true)。

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "user2", "namespace": "myserver", "resource": 
"pods", "readonly": true}} #用户user2对namespace myserver的pod有只读权限。--authorization-mode=...,RBAC,ABAC --authorization-policy-file=mypolicy.json #开启ABAC参数

RBAC(Role-Based Access Control):基于角色的访问
控制,将权限与角色(role)先进行关联,然后将角色
与用户进行绑定(Binding)从而继承角色中的权限。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role #类似为role即角色
metadata:
  namespace: default #角色所在的namespace
  name: pod-reader  #角色名称

猜你喜欢

转载自blog.csdn.net/weixin_74814027/article/details/144809779
今日推荐