Контроллер доступа Kubernetes, kyverno, позволяет помещать в кластер неподписанные образы

Я новичок в Kubernetes. Я пытаюсь подписать образ Docker с помощью Cosign и проверить образ с помощью контроллера доступа Kyverno. Но в моей настройке контроллер допуска Kyverno позволяет помещать в кластер неподписанные изображения.

Файл политики Киверно,

      apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: kyverno
  namespace: kyverno
spec:
  validationFailureAction: Enforce
  background: false
  webhookTimeoutSeconds: 30
  failurePolicy: Fail
  rules:
    - name: kyverno
      match:
        any:
        - resources:
            kinds:
              - Pod
      verifyImages:
      - imageReferences:
        - "localhost:5000/nginx_signed"
        attestors:
        - entries:
          - keyless:
              subject: "xxx@gmail.com"
              issuer: "https://accounts.google.com"
              rekor:
               url: "https://rekor.sigstore.dev"   

Я следую этому руководству для проверки изображения с помощью Kyverno,

https://kyverno.io/docs/writing-policies/verify-images/sigstore/

В моей настройке первый пример, упомянутый в приведенном выше руководстве, работает, как и ожидалось. Но когда я использую файл политики и метод подписи без ключа, контроллер доступа Kyverno не работает, и модуль создается с неподписанным образом.

1 ответ

Причина, по которой это происходит, заключается в том, чтоverifyImages.imageReferencesустановлен неправильно.

Изображение, которое вы используете, также имеет тег или дайджест в конце, но ссылка на ваше изображение им не соответствует. Сейчас он соответствует только тогда, когда изображение является в точности строкой.localhost:5000/nginx_signed

Вам следует обновить ссылку на изображение наlocalhost:5000/nginx_signed*так, чтобы оно соответствовалоlocalhost:5000/nginx_signed:<ANY-TAG>илиlocalhost:5000/nginx_signed@sha256:<DIGEST-HASH>.

Я бы также посоветовал вам публиковать вопросы, связанные с Kyverno, на канале Kyverno в Kubernetes Slack: https://slack.k8s.io/#kyverno

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