Docker push and pull с использованием отдельных учетных данных - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать отдельный push-pull для реестра докеров с точки зрения безопасности. Можно ли его создать в любом из контейнерных реестров.

1 Ответ

0 голосов
/ 04 мая 2018

В Docker Registry 2.0 появился новый протокол аутентификации и авторизации на основе токенов. ACL поддерживается, если вы используете аутентификацию на основе токенов для реестра Docker. Вы можете использовать готовое решение ACL, подобное этому https://github.com/cesanta/docker_auth. Это соответствует мелкозернистым правилам ACL, например,

acl:
  - match: {account: "admin"}
    actions: ["*"]
    comment: "Admin has full access to everything."
  - match: {account: "user"}
    actions: ["pull"]
    comment: "User \"user\" can pull stuff."
  # Access is denied by default.

см. Полный пример https://github.com/cesanta/docker_auth/blob/master/examples/simple.yml

Для вашего сценария вы можете создать двух пользователей только с разрешениями push и pull, а затем войти в систему как соответствующий пользователь для операции (push или pull).

Если вы используете Docker Hub, уже существует своего рода ACL для организаций.

Docker Hub организации позволяют создавать команды, чтобы вы могли дать доступ коллег к общим репозиториям изображений. Докер-хаб организация может содержать публичные и частные репозитории, как учетная запись пользователя. Доступ к push или pull для этих хранилищ распределяется путем определения групп пользователей, а затем конкретные репозитории. Создание репозитория ограничено пользователями в группа владельца организации. Это позволяет распространять ограниченное получить доступ к изображениям Docker и выбрать, какие пользователи Docker Hub могут публиковать новые изображения.

https://docs.docker.com/docker-hub/orgs/#repository-team-permissions

Разрешения накапливаются. Например, если у вас есть запись разрешения, у вас автоматически есть разрешения на чтение:

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

  • Доступ на запись позволяет пользователям перемещаться в неавтоматизированные репозитории на Docker Hub.

  • Доступ администратора позволяет пользователям изменять репозитории «Описание», «Права соавторов», видимость «Public / Private» и «Удалить».

В вашем сценарии у вас должно быть как минимум два зарегистрированных пользователя-концентратора, тогда один из них может быть членом команды с правами доступа Read , другой пользователь может быть членом команды с Запись (и автоматически Чтение ) доступ.

Примечание. Пользователь, который еще не подтвердил свой адрес электронной почты, имеет только Доступ на чтение к хранилищу независимо от прав их команды членство дало им.

...