Как я могу проверить, разрешено ли использование podsecuritypolicy в пространстве имен с помощью kubectl auth can-i ... psp?

Ошибка возвращается - error: you must specify two or three arguments: verb, resource, and optional resourceName когда я казнил

      kubectl auth --as=system:serviceaccount:mytest1:default can-i use psp 00-mytest1

У меня уже есть следующие манифесты для podsecuritypolicy (psp.yaml), role (role.yaml) и rolebinding (rb.yaml) и развернуты в пространстве имен mytest1.

psp.yaml

          apiVersion: policy/v1beta1
    kind: PodSecurityPolicy
    metadata:
      name: 00-mytest1
      labels: {}
      annotations:
        seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'runtime/default'
        seccomp.security.alpha.kubernetes.io/defaultProfileName:  'runtime/default'
    spec:
      privileged: false
      allowPrivilegeEscalation: false
      requiredDropCapabilities:
      - ALL
      runAsUser:
        rule: 'MustRunAsNonRoot'
      runAsGroup:
        rule: 'MustRunAs'
        ranges:
        - min: 1000 
          max: 1000
        - min: 1
          max: 65535
      supplementalGroups:
        rule: 'MayRunAs'
        ranges:
        - min: 1
          max: 65535
      fsGroup:
        rule: 'MayRunAs'
        ranges:
        - min: 1
          max: 65535
      seLinux:
        rule: 'RunAsAny'
      hostNetwork: false
      hostIPC: false
      hostPID: false
      hostPorts: []
      volumes:
      - configMap
      - downwardAPI
      - emptyDir
      - projected
      - secret

role.yaml

          apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: mytest1
      namespace: "mytest1"
      labels: {}
    rules:
    - apiGroups: ['policy']
      resources: ['podsecuritypolicies']
      verbs:     ['use']
      resourceNames: ['00-mytest1']

и rb.yaml

          apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: mytest1
      namespace: "mytest1"
      labels: {}
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: mytest1
    subjects:
    - kind: ServiceAccount
      name: default
      namespace: "mytest1"

Я жду возвращения yes или no для kubectl auth can-i ...проверьте, а не указанную выше ошибку. Правильный ли вариант использования для проверки аутентификации? Я ценю его исправление.

2 ответа

Вам не хватает флага --subresource. Если я выполню

      kubectl auth --as=system:serviceaccount:mytest1:default can-i use psp --subresource=00-mytest1

У меня есть четкий ответ. В моей ситуации:

      no

Вы также можете получить такое предупреждение:

      Warning: resource 'podsecuritypolicies' is not namespace scoped in group 'policy'

Но это напрямую связано с вашим конфигом.

Дополнительные сведения о проверке команды kubectl auth can-i

      kubectl auth can-i --help

в вашем терминале. Вы также можете прочитать этот документ .

Этот не работает:

      kubectl auth can-i create deployments --namespace dev

Однако это работает, когда указано имя «ресурса» , как показано ниже:

      kubectl auth can-i get pods/dark-blue-app -n blue

Обязательно включитеresource name / name-of-the-physical resource

Другие вопросы по тегам