Kubernetes RBA C: несоответствие разрешений - PullRequest
0 голосов
/ 26 мая 2020

У меня следующая проблема. Спрашиваю у кубернетов, могу ли я произвести какую-то операцию:

$ 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

Ответы [ 3 ]

2 голосов
/ 26 мая 2020

kubectl get secrets отобразит секреты из пространства имен default, если вы не установили контекст пространства имен для текущего кластера в файле kubeconfig.

kubectl get secrets -n iotdevadm, чтобы перечислить секреты из пространства имен iotdevadm.

0 голосов
/ 24 июня 2020

Допустим, у нас есть пространство имен testns и учетная запись службы testsa , созданная в этом пространстве имен testns . Если вы попробуете kubectl auth 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

Допустим, теперь у вас есть роль, разрешающая перечисление подов, но не определенные права для секретов на ней. Как только вы привяжете эту роль к учетной записи службы testsa в пространстве имен testns , у вас должно получиться что-то вроде этого:

$ 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
0 голосов
/ 26 мая 2020

Команды, которые вы выполняете, разные - у одной есть get, а у другой есть список.

kubectl get secrets

Вышеупомянутая команда получит секреты в пространстве имен, настроенном в kubeconfig. Я предполагаю, что пространство имен iotdevadm в kubeconfig. Если это не так, запустите команду ниже.

kubectl get secrets -n iotdevadm

Эквивалентная команда для проверки разрешения должна быть такой, как показано ниже.

kubectl auth can-i get secrets --namespace iotdevadm

Эта команда проверяет разрешение на получение секретов для пользователя, настроенного в kubeconfig в пространстве имен iotdevadm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...