gpt4 book ai didi

kubernetes - Kubernetes RBAC 中的 get 与 list

转载 作者:行者123 更新时间:2023-12-01 23:16:31 24 4
gpt4 key购买 nike

getlist RBAC 动词有什么区别?

我在文档中所能找到的就是:“获取(对于单个资源),列表(对于集合,包括完整的对象内容)”,我发现严重缺乏。 listget 的超集,这意味着如果您拥有 list 权限,则可以从 get 获取所有信息,并且更多的?当我们讨论这个问题时,watch 怎么样?它是否只授予读取更改流的权限,而不授予读取完整对象的权限?

最佳答案

实际上,您可以通过 list 调用获取通常从 get 调用中获取的所有信息。但是,拥有列出资源的权限并不意味着get调用可以工作。您仍然必须使用 list 调用并以这种方式提取信息。

watch 是一个特殊动词,允许您实时查看资源更新。在没有 listget 的情况下拥有 watch 访问权限并不是很有帮助,因为您将无法在资源更新后查看资源。通过 kubectl,如果没有 get 访问资源的权限,我就无法查看该资源。

要使用这些角色,我建议在 Katacoda 上的 Kubernetes 集群中使用角色。 .

创建角色并将其授予(假)用户的初始设置:

kubectl create role deployment-getter --verb=get --resource=deployment
kubectl create role deployment-lister --verb=list --resource=deployment
kubectl create role deployment-watcher --verb=watch --resource=deployment

kubectl create rolebinding only-get --role=deployment-getter --user=only-get
kubectl create rolebinding only-list --role=deployment-lister--user=only-list
kubectl create rolebinding only-watch --role=deployment-watcher--user=only-list

kubectl run nginx --image=nginx # Make a resource to look at

然后你就可以run kubectl commands as one of the special users查看有限的 RBAC 权限是什么样的。

例如,以下命令表明我们只能使用 list 动词列出资源。

kubectl get deployment --as list-only # Prints out nginx deployment
kubectl get deployment --as get-only # RBAC error
kubectl get deployment --as watch-only # RBAC error

这个例子表明我们只能使用 get 动词来获取资源(但你也可以通过列出资源来获取类似的信息)。

kubectl get deployment nginx --as get-only -o yaml
# apiVersion: extensions/v1beta1
# kind: Deployment
# ...
kubectl get deployment nginx --as list-only -o yaml # RBAC error
kubectl get deployment --as list-only -o yaml
# apiVersion: v1
# kind: List
# items:
# - apiVersion: extensions/v1beta1
# kind: Deployment
# ...

关于kubernetes - Kubernetes RBAC 中的 get 与 list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com