1
0
mirror of synced 2026-01-04 09:06:46 -05:00
Files
docs/translations/ru-RU/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md
2022-11-16 21:42:42 +00:00

17 KiB
Raw Blame History

title, intro, versions, topics, shortTitle, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
title intro versions topics shortTitle ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Разрешение доступа к частному реестру образов для пространства кода Секреты позволяют {% data variables.product.prodname_github_codespaces %} получать доступ к частному реестру образов.
fpt ghec
* *
Codespaces
Private image registry c11cfe0179856caf17f30ac32830ee1485defa3c e8c012864f MT ru-RU 11/09/2022 148159208

Сведения о частных реестрах образов и {% data variables.product.prodname_github_codespaces %}

Реестр — это безопасное пространство для хранения, администрирования и получения частных образов контейнеров. Вы можете использовать его для хранения одного или нескольких образов. К примерм реестров относятся {% data variables.product.prodname_container_registry %}, {% data variables.product.prodname_npm_registry %}, Azure Container Registry и DockerHub.

{% data variables.packages.prodname_ghcr_and_npm_registry %} можно настроить так, чтобы во время создания codespace образы контейнеров могли легко извлекаться в {% data variables.product.prodname_github_codespaces %} без необходимости предоставлять учетные данные для проверки подлинности. Для других реестров образов необходимо создать секреты в {% data variables.product.prodname_dotcom %} для хранения сведений о доступе, что позволит {% data variables.product.prodname_github_codespaces %} получать доступ к образам, хранящимся в этом реестре.

Доступ к изображениям, хранящимся в {% data variables.packages.prodname_ghcr_and_npm_registry %}

{% data variables.packages.prodname_ghcr_and_npm_registry %} предоставляет самый простой способ использования образов контейнеров разработки для {% data variables.product.prodname_github_codespaces %}.

Дополнительные сведения см. в разделах Работа с реестром контейнеров и Работа с реестром npm.

Доступ к образу, опубликованному в том же репозитории, что и пространство кода

Если вы публикуете образ контейнера в {% data variables.packages.prodname_ghcr_or_npm_registry %} в том же репозитории, в который запускается codespace, вы сможете автоматически получить этот образ при создании codespace. Вам не придется предоставлять дополнительные учетные данные, если только выбор параметра Наследовать доступ от репозитория не был отменен при публикации образа контейнера.

Наследование доступа от репозитория, из которого был опубликован образ

По умолчанию при публикации образа контейнера в {% data variables.packages.prodname_ghcr_or_npm_registry %} образ наследует параметр доступа к репозиторию, из которого был опубликован образ. Например, если репозиторий является общедоступным, образ также является общедоступным. Если репозиторий является частным, образ также является частным, но доступен из репозитория.

Это поведение определяется параметром Наследовать доступ от репозитория. Доступ наследовать из репозитория выбирается по умолчанию при публикации через {% data variables.product.prodname_actions %}, но не при публикации непосредственно в {% data variables.packages.prodname_ghcr_or_npm_registry %} с помощью {% data variables.product.pat_generic %}.

Если параметр Наследовать доступ от репозитория не был выбран при публикации образа, можно вручную добавить репозиторий в элементы управления доступом опубликованного образа контейнера. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

Доступ к образу, опубликованному в организации, в которой будет запущено пространство кода

Если вы хотите, чтобы образ контейнера был доступен для всех пространств кода в организации, рекомендуется опубликовать образ контейнера с внутренней видимостью. При этом образ автоматически станет видимым для всех пространств кода в организации, если только репозиторий, из которого запускается пространство кода, не является общедоступным.

Если пространство кода запускается из общедоступного репозитория, ссылающегося на внутренний или частный образ, необходимо вручную разрешить общедоступному репозиторию доступ к внутреннему образу контейнера. Это позволяет избежать случайной утечки внутреннего образа. Дополнительные сведения см. в разделе Обеспечение доступа Codespaces к пакету.

Доступ к частному контейнеру из подмножества репозиториев в организации

Если вы хотите разрешить подмножеству репозиториев организации доступ к образу контейнера или разрешить доступ к внутреннему или частному образу из пространства кода, запущенного в общедоступном репозитории, можно вручную добавить репозитории в параметры доступа образа контейнера. Дополнительные сведения см. в разделе Обеспечение доступа Codespaces к пакету.

Публикация образа контейнера из пространства кода

Простой доступ из codespace к {% data variables.packages.prodname_ghcr_or_npm_registry %} ограничен извлечением образов контейнеров. Если вы хотите опубликовать образ контейнера из пространства кода, необходимо использовать {% data variables.product.pat_v1 %} с областью write:packages .

Рекомендуется публиковать образы с помощью {% data variables.product.prodname_actions %}. Дополнительные сведения см. в разделе Публикация образов Docker и Публикация пакетов Node.js.

Доступ к образам, хранящимся в других реестрах контейнеров

Если вы обращаетесь к образу контейнера из реестра, который не является {% data variables.packages.prodname_ghcr_or_npm_registry %}, {% data variables.product.prodname_github_codespaces %} проверяет наличие трех секретов, которые определяют имя сервера, имя пользователя и {% data variables.product.pat_generic %} для реестра контейнеров. Если эти секреты найдены, {% data variables.product.prodname_github_codespaces %} сделает реестр доступным в пространстве кода.

  • <*>_CONTAINER_REGISTRY_SERVER
  • <*>_CONTAINER_REGISTRY_USER
  • <*>_CONTAINER_REGISTRY_PASSWORD

Секреты можно хранить на уровне пользователя, репозитория или организации, что позволяет безопасно передавать их между различными пространствами кода. При создании набора секретов для частного реестра образов необходимо заменить "<*>" в имени на постоянный идентификатор. Дополнительные сведения см. в разделе Управление зашифрованными секретами для пространств кода и Управление зашифрованными секретами для репозитория и организации в {% data variables.product.prodname_github_codespaces %}.

Если вы задаете секреты на уровне пользователя или организации, обязательно назначьте эти секреты репозиторию, в котором будет создаваться пространство кода, выбрав политику доступа из раскрывающегося списка.

Пример секрета для реестра образов

Примеры секретов

Для частного реестра образов в Azure можно создать следующие секреты:

ACR_CONTAINER_REGISTRY_SERVER = mycompany.azurecr.io
ACR_CONTAINER_REGISTRY_USER = acr-user-here
ACR_CONTAINER_REGISTRY_PASSWORD = <PERSONAL_ACCESS_TOKEN>

Дополнительные сведения об общих реестрах образов см. в разделе Серверы общих реестров образов. Обратите внимание, что доступ к реестру эластичных контейнеров AWS (ECR) осуществляется другим способом.

Пример секрета для реестра образов

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

Доступ к реестру эластичных контейнеров AWS

Чтобы получить доступ к реестру эластичных контейнеров AWS (ECR), можно предоставить идентификатор ключа доступа AWS и секретный ключ, и {% data variables.product.prodname_dotcom %} может получить маркер доступа и выполнить вход от вашего имени.

*_CONTAINER_REGISTRY_SERVER = <ECR_URL>
*_CONTAINER_REGISTRY_USER = <AWS_ACCESS_KEY_ID>
*_CONTAINER_REGISTRY_PASSWORD = <AWS_SECRET_KEY>

Кроме того, необходимо убедиться в том, что у вас есть соответствующие разрешения IAM AWS для переключения учетных данных (например, sts:GetServiceBearerToken) и операции чтения ECR (AmazonEC2ContainerRegistryFullAccess или ReadOnlyAccess).

Кроме того, если вы не хотите, чтобы GitHub выполнял переключение учетных данных от вашего имени, вы можете предоставить маркер авторизации, для получения которого используются API-интерфейсы или CLI AWS.

*_CONTAINER_REGISTRY_SERVER = <ECR_URL>
*_CONTAINER_REGISTRY_USER = AWS
*_CONTAINER_REGISTRY_PASSWORD = <TOKEN>

Так как эти токены являются короткими и должны периодически обновляться, рекомендуется указать идентификатор ключа доступа и секрет.

Хотя эти секреты могут иметь любое имя, при условии, что *_CONTAINER_REGISTRY_SERVER входит в URL-адрес ECR, мы рекомендуем использовать ECR_CONTAINER_REGISTRY_*, если вы не работаете с несколькими реестрами ECR.

Дополнительные сведения см. в разделе Документация по проверке подлинности частного реестра для ECR AWS.

Серверы общих реестров образов

Некоторые из серверов общих реестров образов перечислены ниже:

Отладка доступа к частному реестру образов

Если у вас возникли проблемы с извлечением образа из частного реестра образов, убедитесь, что вы можете успешно выполнить команду docker login -u <user> -p <password> <server> со значениями секретов, которые были определены выше. Если вход завершается с ошибкой, убедитесь, что учетные данные для входа действительны и что у вас есть необходимые разрешения на получение образа контейнера на сервере. Если вход выполнен успешно, убедитесь, что эти значения правильно скопированы в правильные секреты {% data variables.product.prodname_github_codespaces %} на уровне пользователя, репозитория или организации, и повторите попытку.