Автоматические сборки dockerhub - требуются ли широкие права на github? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь протестировать автоматические сборки контейнеров на Dockerhub и вижу, что мне нужно связать свою учетную запись github с моей hub.docker.account.
Однако, когда я нажимаю кнопку «Подключить», яЯ перешел на страницу авторизации на github, на которой написано:

Docker Hub Builder by docker wants to access your larryms account

Repositories
Public and private
This application will be able to read and write all public and private repository data. 
This includes the following:

- Code
- Issues
- Pull requests
- Wikis
- Settings
- Webhooks and services
- Deploy keys
- Collaboration invites

Это кажется слишком разрешительным и слишком широким;если я правильно понимаю, мне нужно предоставить Docker Hub Builder доступ на чтение и запись к всем моим репозиториям на github, как общедоступным, так и частным .

Есть ли способ сделать это, используя принцип наименьших привилегий, например, только предоставить необходимые права Docker Hub Builder (надеюсь, только для чтения) только конкретным репозиториям github?

1 Ответ

0 голосов
/ 09 ноября 2019

Области OAuth на GitHub действительно широки (см. https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes,, где вы не можете предоставить доступ на чтение, не предоставив также права на запись). Однако области применяются вместе с фактическими разрешениями, которые пользователь имеет в рассматриваемом репо. То есть, если пользователь имеет доступ только для чтения к репо X, и пользователь предоставил токен oauth с областью чтения и записи для dockerhub, dockerhub сможет читать из репо X только от имени этого пользователя. Если пользователь получит доступ администратора к репо X позже, уже предоставленный токен доступа не позволит доступа администратора, так как область действия токена допускает только чтение и запись.

Имея это в виду, вы можете создатьвыделенный пользователь для dockerhub в вашей организации github, и предоставьте этому пользователю доступ для чтения к соответствующим репозиториям. Затем подключите dockerhub к вашей учетной записи github с этим пользователем, предоставив доступ только для чтения к выбранным репозиториям.

...