как обезопасить простые учетные данные, используемые в секретах k8s pull - PullRequest
0 голосов
/ 30 сентября 2019

Мы видим простые учетные данные как часть файла секретных данных k8s pull. Можно ли как-нибудь обезопасить их, чтобы администратор / пользователь, обладающий полными правами, не мог их неправильно использовать?

Pull-Secret Пример:

.dockercfg: 
   {"dockercentral.test.com:5050":
      {"username": "test.it.com",
       "password":"dwew32",
       "email":"mark.test@yahoo.com",
       "auth":"br23231fsdfdfsdfs3211"
      }
   }

Выше находится файл Pull-secrets, гдемы видим имя пользователя и пароль в виде простого текста. Помогите пожалуйста надёжно их закрепить в k8s!

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Как уже указывал Мэтью, главный вопрос в том, что вы пытаетесь защитить:

  • Если вы пытаетесь защитить его внутри кластера, вы можете использовать Kubernetes RBAC и ограничить доступ определенных пользователей к секрету, содержащему эти учетные данные - просто создайте Role / ClusterRole, который запрещает разрешения на получение секретов в определенном пространстве имен (или во всех пространствах имен). Затем свяжите эту роль (используя RoleBinding / ClusterRoleBinding) с соответствующими пользователями - для получения более подробной информации см. документы .
  • Если вы спрашиваете ", как сохранить ее безопасно«Секреты - путь» (как отметил Петр). Это поднимает вопрос «как хранить секрет» - и я рассматриваю несколько вариантов в этом посте .

Надеюсь, что ответим на ваш вопрос:)

0 голосов
/ 01 октября 2019

Вы можете следовать этому руководству по документации kubernetes для создания секрета типа docker-registry для аутентификации в реестре контейнера.

Пример docker-registry secret:

apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
namespace: awesomeapps
data:
.dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg==
type: kubernetes.io/dockerconfigjson

Как видите, этот тип секрета не имеет учетных данных в виде простого текста.

Однако пользователь с правами кластерного администратора все еще может легко их расшифровать.

...