AVa*_*arf 18 rbac service-accounts kubernetes
我想给我的应用程序有限的访问权限来获取不同状态集(可能还有部署)的副本,并在必要时扩大或缩小它们。
我为此创建了 ServiceAccount、Rolebinding 和 Role,但我找不到规则动词的完整列表(“get”、“watch”、“list”、“update”)以及它们的限制是什么,例如我可以使用update用于缩放还是我需要另一个动词?我在哪里可以找到描述这些动词的列表或表格?
我的 yaml 文件:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: scaler-role
namespace: {{ .Release.Namespace | quote }}
rules:
- apiGroups: ["apps"]
resources: ["statefulset"]
verbs: ["get", "watch", "list", "update"]
Run Code Online (Sandbox Code Playgroud)
最好的办法是
kubectl api-resources --sort-by name -o wide
Run Code Online (Sandbox Code Playgroud)
上面的api-resources命令是明确的并且易于grep。可以通过以下方式获得可能动词的完整列表:
$ kubectl api-resources --no-headers --sort-by name -o wide | sed 's/.*\[//g' | tr -d "]" | tr " " "\n" | sort | uniq
create
delete
deletecollection
get
list
patch
update
watch
Run Code Online (Sandbox Code Playgroud)
API 参考文档的资源操作部分(例如https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/)对它们进行了一些讨论,但没有提及deletecollection(顺便说一句:查看有趣的信息aboutdeletecollection ; 建议无论何时您给予,如果资源支持delete,您也应该给予deletecollection许可)。
授权概述的确定请求动词部分确实简要提到了,以及其他六个动词(例如@RoryMcCune 正确指出的),不幸的是,它们没有出现在命令的输出中。deletecollectionescalatekubectl api-resources -o wide
顺便说一句,该api-resources命令还列出了命令的短名称,例如svcfor services。
可以在这里找到简短的描述https://kubernetes.io/docs/reference/access-authn-authz/authorization/#define-the-request-verb
我有一个用于更新部署的 docker 映像标签的角色,如下所示(我不使用我的角色来创建部署,只是为了修补映像标签)
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: deployer
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "patch"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17950 次 |
| 最近记录: |