Kubernetes ABAC(Attribute-Based Access Control)授权模式是一种基于属性的访问控制模型,它可以根据用户或组的属性决定是否允许他们访问 Kubernetes 集群中的资源。
在使用 ABAC 授权模式时,管理员需要定义一些规则来限制哪些用户或组有权访问集群中的不同资源。这些规则通常包括一个或多个属性和一个操作,如“查看”、“创建”、“修改”或“删除”。
下面是一些示例规则:
{
"apiVersion": "abac.authorization.kubernetes.io/v1beta1",
"kind": "Policy",
"spec": {
"user": "admin",
"namespace": "*",
"resource": "*",
"readonly": true
}
}
这个示例规则表示只有 admin 用户能够读取任何命名空间下的所有资源。
要启用 ABAC 授权模式,管理员必须在 kube-apiserver 的启动参数中添加 –authorization-mode=ABAC,并指定存储策略文件路径(通过 –authorization-policy-file 选项)。另外,还需在 kubelet 的启动参数中添加 –authorization-mode=ABAC 选项。
需要注意的是,在 Kubernetes v1.19 版本之后,已经弃用了 ABAC 授权模式,并且在将来的版本中将被移除。建议使用更安全、更灵活的 RBAC (Role-Based Access Control)或其他授权模式。




