Существует ряд опций аутентификации, представленных в https://cloud.google.com/container-registry/docs/advanced-authentication. Они имеют тенденцию подчеркивать кратковременный доступ, потому что в противном случае:
- злонамеренный запрос извлечения может отправить контейнеры в GCR
- кто-то, имеющий доступ к среде CI, может запускать команды с доступом
- кто-то, имеющий доступ к среде CI, может извлечь этот постоянный токен и использовать его повторно
Если ваша цель в использовании «постоянного токена» связана с производительностью, есть много других областей, где можно попытаться повысить эффективность, которые безопаснее.
Если вы уже используете механизм Access Token , возможно, в вашей среде CI уже есть ключи служебной учетной записи. Если эта учетная запись службы имеет доступ к реестру контейнера, вы можете использовать механизм аутентификации JSON Key File для более «постоянного» доступа.
Любые привилегии, связанные с этой учетной записью службы, подвержены риску утечки любому, кто может скопировать ключ учетной записи службы из системы CI. Мне нравится кодировать ключи base64 в CI, чтобы минимизировать вероятность случайного отображения, хотя это очень мало для предотвращения преднамеренной кражи.