Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Выделенные конечные точки данных в Реестр контейнеров Azure предоставляют URL-адреса, ограниченные конкретным реестром, для скачивания слоёв образов контейнеров, заменяя стандартные конечные точки Azure Storage с подстановочным знаком (*.blob.core.windows.net). Это позволяет жестко ограничить правила брандмауэра клиента и устранять риски кражи данных.
Note
Выделенные конечные точки данных используются только при загрузке BLOB-объектов слоя (получении). При загрузке BLOB-объектов во время push-операций они передаются через сервер аутентификации (глобальную или региональную конечную точку), а не через выделенную конечную точку данных.
Функция выделенных конечных точек данных доступна для реестров на уровне службPremium.
Выделенные конечные точки данных также являются необходимым условием для конечных точек с двойным стеком IPv6. В реестре должны быть включены выделенные конечные точки для данных, прежде чем можно будет задать протокол его конечной точки как IPv4AndIPv6.
Как работает загрузка образов контейнеров: сервер входа и перенаправление 307 на конечные точки данных
Извлечение содержимого из реестра включает два типа конечных точек:
Конечная точка сервера входа — используется для проверки подлинности и обнаружения содержимого. Сервер входа может быть следующим:
-
Глобальная конечная точка (
contoso.azurecr.io) — ACR автоматически направляет запросы на геореплику с лучшим профилем производительности сети для клиента. Дополнительные сведения см. в разделе георепликации. -
Региональная конечная точка (
contoso.eastus.geo.azurecr.io) — направляет запросы непосредственно к определённой геореплике, в обход маршрутизации, управляемой Azure. Дополнительные сведения см. в разделе георепликации.
При выполнении таких команд, как
docker pull contoso.azurecr.io/hello-world(глобальная конечная точка) илиdocker pull contoso.eastus.geo.azurecr.io/hello-world(региональная конечная точка), клиент проходит проверку подлинности на сервере входа и согласовывает, какие слои составляют запрошенный артефакт.-
Глобальная конечная точка (
Конечная точка данных , используемая для скачивания фактических BLOB-объектов уровня изображений. После того как сервер входа идентифицирует необходимые слои, он перенаправляет клиент, чтобы скачать их из конечной точки данных.
ACR управляет базовыми учетными записями хранения для конечных точек данных. Преимущества включают балансировку нагрузки, разделение содержимого между учетными записями хранения для более высокой параллельной доставки и поддержки нескольких регионов с георепликацией.
Без выделенных конечных точек данных
Без выделенных конечных точек для данных сервер аутентификации возвращает перенаправление 307 для загрузки BLOB-объектов слоёв в учетные записи хранения Azure с использованием URL-адресов с подстановочными знаками (*.blob.core.windows.net).
Использование глобальной конечной точки (управляемая Azure маршрутизация):
Использование региональной конечной точки (заданная клиентом маршрутизация):
В обоих случаях, чтобы разрешить эти загрузки через брандмауэр, необходимо разрешить *.blob.core.windows.net — широкий подстановочный знак, охватывающий все учетные записи хранения Azure, а не только хранилище вашего реестра.
Использование выделенных конечных точек данных
При включённых выделенных конечных точках данных сервер входа выдаёт перенаправление 307 для скачивания BLOB-объектов слоёв на URL-адреса, относящиеся к конкретному реестру и ограниченные регионом.
Использование глобальной конечной точки (управляемая Azure маршрутизация):
Использование региональной конечной точки (заданная клиентом маршрутизация):
Каждая геореплика получает собственную выделенную конечную точку данных по шаблону [registry].[region].data.azurecr.io. Правила брандмауэра могут быть ограничены этими конкретными конечными точками вместо широкого подстановочного знака.
Почему важны выделенные конечные точки данных
Риск кражи данных без выделенных конечных точек данных
Без выделенных конечных точек для данных правила брандмауэра должны разрешать *.blob.core.windows.net, чтобы обеспечить скачивание слоёв. Этот универсальный шаблон открывает доступ ко всем учетным записям хранения Azure, а не только к хранилищу вашего реестра. Злоумышленник может развернуть код, который записывает данные в любую учётную запись хранения Azure, доступную из сети.
Правила брандмауэра с ограниченной областью с выделенными конечными точками данных
Выделенные конечные точки данных позволяют заменить общий подстановочный знак *.blob.core.windows.net правилами брандмауэра с ограниченной областью действия для конечных точек данных вашего реестра. Например, можно разрешить только contoso.eastus.data.azurecr.io и contoso.westeurope.data.azurecr.io в конфигурации брандмауэра — ограничить доступ к хранилищу реестра и заблокировать проникновение в другие учетные записи хранения.
Это относится к клиентам, подключающимся с локальных узлов, устройств Интернета вещей, пользовательских агентов сборки или любой среды, в которой частные конечные точки не являются вариантом.
Выделенные конечные точки данных с георепликацией
Для геореплицированных реестров каждая геореплика получает собственную выделенную конечную точку данных. Шаблон URL-адреса: [registry].[region].data.azurecr.io.
При извлечении изображения из глобальной конечной точки ACR направляет запрос на геореплику с лучшим профилем производительности сети для клиента. Затем обслуживающая геореплика отправляет перенаправление 307 для загрузки BLOB-объектов слоёв на собственную выделенную конечную точку данных обслуживающей геореплики. Перенаправление всегда остается в том же регионе, что и геореплика, обслуживающая запрос, — запрос на извлечение, направленный к геореплике «Восточная часть США», всегда перенаправляется на contoso.eastus.data.azurecr.io, а не на выделенную конечную точку данных в другом регионе.
Это также применяется при использовании региональных конечных точек. При обращении к региональной конечной точке (contoso.eastus.geo.azurecr.io) загрузка слоёв перенаправляется на contoso.eastus.data.azurecr.io — никогда не в другой регион. Это означает, что правила брандмауэра могут настраиваться отдельно для каждого региона.
Включение выделенных конечных точек данных
Note
Если вы ранее настроили правила доступа брандмауэра клиента для существующих *.blob.core.windows.net конечных точек, переход на выделенные конечные точки данных влияет на подключение клиента, что приводит к сбоям при извлечении данных. Чтобы обеспечить стабильный доступ для клиентов, добавьте новые правила конечной точки данных в правила брандмауэра клиента. После завершения включите выделенные конечные точки данных для реестров с помощью Azure CLI или других средств.
При извлечении изображения, если включены выделенные конечные точки данных, ACR предоставляет клиенту временную ссылку загрузки при каждом извлечении слоя изображений. Эта ссылка указывает на выделенную конечную точку данных и действительна не менее 20 минут и не более 30 минут, предоставляя безопасный, короткий URL-адрес для скачивания слоя. После истечения срока действия ссылки клиент просто запрашивает новый, если он должен скачать другой слой при извлечении изображений.
Включить выделенные конечные точки данных можно с помощью портала Azure или Azure CLI. Конечные точки данных соответствуют региональным шаблонам, <registry-name>.<region>.data.azurecr.io. В геореплицированном реестре включение точек доступа данных активирует конечные точки во всех регионах реплик.
Включение выделенных конечных точек данных с помощью портала Azure
- Перейдите в реестр контейнеров.
- В меню службы в разделе "Параметры" выберите "Сеть".
- В общедоступном доступе установите флажок "Использовать выделенную конечную точку данных ".
- Нажмите Сохранить.
Теперь на портале Azure отображаются конечные точки данных.
Включение выделенных конечных точек данных с помощью Azure CLI
az acr update --name myregistry --data-endpoint-enabled
Чтобы просмотреть конечные точки данных, используйте команду az acr show-endpoints.
az acr show-endpoints --name myregistry
В этом примере выходных данных показана полная схема конечной точки, включая выделенные конечные точки данных и региональные конечные точки (если они включены):
{
"loginServer": "myregistry.azurecr.io",
"dataEndpoints": [
{
"region": "eastus",
"endpoint": "myregistry.eastus.data.azurecr.io"
},
{
"region": "westus",
"endpoint": "myregistry.westus.data.azurecr.io"
}
],
"regionalEndpoints": [
{
"region": "eastus",
"endpoint": "myregistry.eastus.geo.azurecr.io"
},
{
"region": "westus",
"endpoint": "myregistry.westus.geo.azurecr.io"
}
]
}
После настройки выделенных конечных точек данных для реестра можно включить правила доступа брандмауэра клиента для конечных точек данных. Включите правила доступа к конечной точке данных для всех необходимых разделов реестра. Подробная информация приведена в статье Настройка правил для доступа к реестру контейнеров Azure за брандмауэром.
Ограничение сетевого доступа к конечным точкам данных
После включения выделенных конечных точек данных можно ограничить доступ клиентов к этим конечным точкам. Существует два подхода:
Azure частные конечные точки (виртуальная сеть)
Частные конечные точки Azure — наиболее безопасный способ управления сетевым доступом клиентов в виртуальной сети к реестру. При настройке частных конечных точек сервер входа (глобальная конечная точка и региональные конечные точки) и конечные точки данных доступны из виртуальной сети с помощью частных IP-адресов, назначенных ресурсу частной конечной точки в виртуальной сети. Клиенты также могут отключить доступ к общедоступной сети в реестре, гарантируя, что выделенные конечные точки данных доступны только через частную конечную точку.
Если в реестре настроена по крайней мере одна частная конечная точка, выделенные конечные точки данных автоматически включены. Дополнительные сведения см. в статье "Частное подключение к реестру из виртуальной сети с помощью частных конечных точек".
Рекомендации по IP-адресу частной конечной точки
Каждый ресурс частной конечной точки использует частные IP-адреса из подсети виртуальной сети. Запланируйте размер подсети соответствующим образом:
-
1 IP-адрес для глобальной конечной точки (
myregistry.azurecr.io) -
1 IP-адрес для каждой геореплики для выделенных конечных точек доступа к данным (
myregistry.<region>.data.azurecr.io) — автоматически включается при настройке приватной конечной точки -
1 IP-адрес для геореплики для региональных конечных точек (
myregistry.<region>.geo.azurecr.io) — только если региональные конечные точки включены в реестре.
Например, для реестра с 3 георепликами и региональными конечными точками требуется 1 (глобальный) + 3 (данные) + 3 (региональные) = 7 частных IP-адресов на ресурс частной конечной точки. Дополнительные сведения см. в статье "Частное подключение к реестру из виртуальной сети с помощью частных конечных точек".
Правила брандмауэра клиента
Если частные конечные точки не являются вариантом, настройте правила брандмауэра клиента, чтобы разрешить доступ к выделенным конечным точкам данных для каждого требуемого региона реестра. Подробная информация приведена в статье Настройка правил для доступа к реестру контейнеров Azure за брандмауэром.
Дальнейшие шаги
- Узнайте о георепликации и о том, как выделенные конечные точки данных работают с региональными конечными точками.
- Узнайте, как включить конечные точки IPv6 с поддержкой двух стеков, которые основаны на выделенных конечных точках данных.
- Полный список типов конечных точек, форматов URL-адресов и флагов CLI см. в справочнике по конечным точкам Реестр контейнеров Azure.