kubernetes - 适用于组和用户的 Kubernetes ABAC 策略?
问题描述
目前,我有一个 ABAC 策略,它赋予“system:autheticated”所有访问权限。当我定义了这个时,K8s 可以正常启动,但是如果我删除它,K8s 就不会启动。我试图找出我的 K8s 集群上正在使用哪些命名空间、服务帐户、组、用户等,以便我可以在 ABAC 策略中定义一组特定的用户/组。
如何获取 K8s 集群中的组和用户?我正在使用“kubectl --namespace=kube-system get serviceaccounts”来获取服务帐户......但是组和用户在哪里定义?
解决方案
对于您可以尝试的组(例如“system:masters”):
kubectl get clusterrolebindings -o json | jq -r '.items[] | select(.subjects[0].kind=="Group") | select(.subjects[0].name=="system:masters") | .metadata.name'
此外,您可以--all-namespaces=true
在 kubectl 命令中一次读取所有命名空间。
您还应该检查所有本地文件以了解可能应用的策略。
这是关于使用 ABAC 授权的 Kubernetes 文档
至于用户,我只能找到一种方法来检查特定用户是否能够,例如,在命名空间中创建部署:
$ kubectl auth can-i create deployments --namespace dev
yes
$ kubectl auth can-i create deployments --namespace prod
no
推荐阅读
- mysql - 使用带有多个循环的 mysql 在 Node.js 中查询
- r - 为一天中的每个小时创建假人
- python - 如何在 keras 中训练顺序模型,将列表作为输出和输入?
- c# - 有没有办法在linq中做到这一点?
- javascript - CORS - Java 和 Javascript
- python-3.x - 当我们指定负小数时,函数如何工作
- .net - 错误 - 托管服务器上的 403.14 IIS,但本地应用程序有效
- netcdf4 - 使用 Python 进行 THREDDS 和 METAR 绘图
- terraform - Terraform 资源中的条件嵌套块
- javascript - 在 JavaScript 中使用 prompt() 存储用户输入的最佳方法是什么?