Kubernetes RBAC:权限不匹配

Kubernetes RBAC:权限不匹配,kubernetes,Kubernetes,我面临下一个问题。我想问库伯内特斯我是否能做些手术: $ kubectl auth can-i list secrets --namespace iotdevadm no - no RBAC policy matched 上面,我要求列出秘密。根据回应,我不能这样做 然而: $ kubectl get secrets NAME TYPE DATA AGE builde

我面临下一个问题。我想问库伯内特斯我是否能做些手术:

$ kubectl auth can-i list secrets --namespace iotdevadm
no - no RBAC policy matched
上面,我要求列出秘密。根据回应,我不能这样做

然而:

$ kubectl get secrets
NAME                              TYPE                                  DATA   AGE
builder-dockercfg-9m9rf           kubernetes.io/dockercfg               1      23h
builder-token-6xxdn               kubernetes.io/service-account-token   4      23h
builder-token-qc7q7               kubernetes.io/service-account-token   4      23h
default-dockercfg-qs7sj           kubernetes.io/dockercfg               1      23h
default-token-n4lpw               kubernetes.io/service-account-token   4      23h
default-token-n7rhh               kubernetes.io/service-account-token   4      23h
deployer-dockercfg-nhnps          kubernetes.io/dockercfg               1      23h
deployer-token-5rkb6              kubernetes.io/service-account-token   4      23h
deployer-token-v85wp              kubernetes.io/service-account-token   4      23h
istio.builder                     istio.io/key-and-cert                 3      23h
istio.default                     istio.io/key-and-cert                 3      23h
istio.deployer                    istio.io/key-and-cert                 3      23h
istio.kafka                       istio.io/key-and-cert                 3      16h
istio.zeppelin                    istio.io/key-and-cert                 3      18h
kafka-dockercfg-whltw             kubernetes.io/dockercfg               1      16h
kafka-token-crrxt                 kubernetes.io/service-account-token   4      16h
kafka-token-j5dgd                 kubernetes.io/service-account-token   4      16h
sh.helm.release.v1.kafka.v1       helm.sh/release.v1                    1      16h
sh.helm.release.v1.spark.v1       helm.sh/release.v1                    1      16h
sh.helm.release.v1.zeppelin.v1    helm.sh/release.v1                    1      18h
sh.helm.release.v1.zookeeper.v1   helm.sh/release.v1                    1      16h
spark-secret                      Opaque                                0      16h
zeppelin-dockercfg-7zdkm          kubernetes.io/dockercfg               1      18h
zeppelin-token-85jtc              kubernetes.io/service-account-token   4      18h
zeppelin-token-x4r5c              kubernetes.io/service-account-token   4      18h

kubectl get secrets
将列出
default
命名空间中的机密,除非您在kubeconfig文件中为当前集群设置了命名空间上下文


kubectl get secrets-n iotdavm
列出
iotdavm
命名空间中的机密。

kubectl get secrets
将列出
默认
命名空间中的机密,除非您在kubeconfig文件中为当前集群设置了命名空间上下文


kubectl get secrets-n iotdavdm
列出来自
iotdavdm
命名空间的机密。

您正在运行的命令不同-一个有get,另一个有list

kubectl get secrets
上述命令将获取kubeconfig中配置的命名空间中的机密。我假设kubeconfig中的名称空间是
iotdavm
。如果情况并非如此,则运行下面的命令

kubectl get secrets -n iotdevadm
检查权限的等效命令应如下所示

kubectl auth can-i get secrets --namespace iotdevadm

此命令将检查在命名空间中的kubeconfig中配置的用户获取机密的权限
iotdavm

您正在运行的命令不同-一个有get,另一个有list

kubectl get secrets
上述命令将获取kubeconfig中配置的命名空间中的机密。我假设kubeconfig中的名称空间是
iotdavm
。如果情况并非如此,则运行下面的命令

kubectl get secrets -n iotdevadm
检查权限的等效命令应如下所示

kubectl auth can-i get secrets --namespace iotdevadm

此命令将检查在命名空间
iotdavm

中的kubeconfig中配置的用户获取机密的权限,假设我们在该命名空间testns中创建了命名空间testns和服务帐户testsa。如果您尝试按以下方式验证kubectl can-i…
,您应该:

$ kubectl auth can-i get pods --as=system:serviceaccount:testns:testsa -n testns
no

$ kubectl auth can-i get secrets --as=system:serviceaccount:testns:testsa -n testns
no
假设现在您有一个角色允许列出pod,但没有为其上的秘密指定权限。一旦您将此角色与命名空间testns中的服务帐户testsa绑定,您就应该有如下内容:

$ kubectl auth can-i get pods --as=system:serviceaccount:testns:testsa -n testns
yes

$ kubectl auth can-i get secrets --as=system:serviceaccount:testns:testsa -n testns
no

假设我们在这个名称空间testns中创建了名称空间testns和服务帐户testsa。如果您尝试按以下方式验证kubectl can-i…,您应该:

$ kubectl auth can-i get pods --as=system:serviceaccount:testns:testsa -n testns
no

$ kubectl auth can-i get secrets --as=system:serviceaccount:testns:testsa -n testns
no
假设现在您有一个角色允许列出pod,但没有为其上的秘密指定权限。一旦您将此角色与命名空间testns中的服务帐户testsa绑定,您就应该有如下内容:

$ kubectl auth can-i get pods --as=system:serviceaccount:testns:testsa -n testns
yes

$ kubectl auth can-i get secrets --as=system:serviceaccount:testns:testsa -n testns
no

你查过答案了吗?他们帮你解决了你的问题?如果是的话,请考虑一下。你检查过答案了吗?他们帮你解决了你的问题?如果是的话,请考虑一下。