Połączenie prywatnie do rejestru kontenerów platformy Azure przy użyciu usługi Azure Private Link

Ogranicz dostęp do rejestru, przypisując prywatne adresy IP sieci wirtualnej do punktów końcowych rejestru i używając usługi Azure Private Link. Ruch sieciowy między klientami w sieci wirtualnej a prywatnymi punktami końcowymi rejestru przechodzi przez sieć wirtualną i łącze prywatne w sieci szkieletowej firmy Microsoft, eliminując narażenie z publicznego Internetu. Usługa Private Link umożliwia również dostęp do rejestru prywatnego ze środowiska lokalnego za pośrednictwem usługi Azure ExpressRoute, prywatnej komunikacji równorzędnej lub bramy sieci VPN.

Ustawienia DNS dla prywatnych punktów końcowych rejestru można skonfigurować tak, aby ustawienia rozpoznawały przydzielony prywatny adres IP rejestru. Dzięki konfiguracji DNS klienci i usługi w sieci mogą nadal uzyskiwać dostęp do rejestru pod w pełni kwalifikowaną nazwą domeny rejestru, taką jak myregistry.azurecr.io.

W tym artykule pokazano, jak skonfigurować prywatny punkt końcowy dla rejestru przy użyciu witryny Azure Portal (zalecane) lub interfejsu wiersza polecenia platformy Azure. Ta funkcja jest dostępna w warstwie usługi rejestru kontenerów Premium . Aby uzyskać informacje na temat warstw i limitów usługi rejestru, zobacz Warstwy usługi Azure Container Registry.

Ważne

Niektóre funkcje mogą być niedostępne lub wymagają większej liczby konfiguracji w rejestrze kontenerów, który ogranicza dostęp do prywatnych punktów końcowych, wybranych podsieci lub adresów IP.

  • Gdy dostęp do sieci publicznej do rejestru jest wyłączony, dostęp do rejestru przez niektóre zaufane usługi , w tym Azure Security Center, wymaga włączenia ustawienia sieci w celu obejścia reguł sieciowych.
  • Po wyłączeniu dostępu do sieci publicznej wystąpienia niektórych usług platformy Azure, w tym usług Azure DevOps Services, nie są obecnie w stanie uzyskać dostępu do rejestru kontenerów.
  • Prywatne punkty końcowe nie są obecnie obsługiwane przez agentów zarządzanych usługi Azure DevOps. Musisz użyć własnego agenta z widokiem sieciowym do prywatnego punktu końcowego.
  • Jeśli rejestr ma zatwierdzony prywatny punkt końcowy, a dostęp do sieci publicznej jest wyłączony, repozytoria i tagi nie mogą być wyświetlane poza siecią wirtualną przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub innych narzędzi.

Uwaga

Od października 2021 r. nowe rejestry kontenerów zezwalają na maksymalnie 200 prywatnych punktów końcowych. Utworzone wcześniej rejestry zezwalają na maksymalnie 10 prywatnych punktów końcowych. Użyj polecenia az acr show-usage, aby wyświetlić limit dla rejestru. Otwórz bilet pomocy technicznej, aby zwiększyć limit do 200 prywatnych punktów końcowych.

Wymagania wstępne

  • Sieć wirtualna i podsieć, w której skonfigurować prywatny punkt końcowy. W razie potrzeby utwórz nową sieć wirtualną i podsieć.
  • W przypadku testowania zaleca się skonfigurowanie maszyny wirtualnej w sieci wirtualnej. Aby uzyskać instrukcje tworzenia testowej maszyny wirtualnej w celu uzyskania dostępu do rejestru, zobacz Tworzenie maszyny wirtualnej z obsługą platformy Docker.
  • Aby użyć kroków interfejsu wiersza polecenia platformy Azure w tym artykule, zalecany jest interfejs wiersza polecenia platformy Azure w wersji 2.6.0 lub nowszej. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Możesz też uruchomić polecenie w usłudze Azure Cloud Shell.
  • Jeśli jeszcze nie masz rejestru kontenerów, utwórz jeden (wymagana warstwa Premium) i zaimportuj przykładowy publiczny obraz, taki jak mcr.microsoft.com/hello-world z usługi Microsoft Container Registry. Na przykład użyj witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure, aby utworzyć rejestr.

Rejestrowanie dostawcy zasobów rejestru kontenerów

Aby skonfigurować dostęp do rejestru przy użyciu łącza prywatnego w innej subskrypcji lub dzierżawie platformy Azure, musisz zarejestrować dostawcę zasobów dla usługi Azure Container Registry w tej subskrypcji. Użyj witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub innych narzędzi.

Przykład:

az account set --subscription <Name or ID of subscription of private link>

az provider register --namespace Microsoft.ContainerRegistry

Skonfiguruj prywatny punkt końcowy podczas tworzenia rejestru lub dodaj prywatny punkt końcowy do istniejącego rejestru.

Tworzenie prywatnego punktu końcowego — nowy rejestr

  1. Podczas tworzenia rejestru w portalu na karcie Podstawy w jednostce SKU wybierz pozycję Premium.

  2. Wybierz kartę Sieć.

  3. W obszarze Łączność sieciowa wybierz pozycję Prywatny punkt końcowy>+ Dodaj.

  4. Wprowadź lub wybierz następujące informacje:

    Ustawienie Wartość
    Subskrypcja Wybierz subskrypcję.
    Grupa zasobów Wprowadź nazwę istniejącej grupy lub utwórz nową.
    Nazwisko Wprowadź unikatową nazwę.
    Podźródło rejestru Wybieranie rejestru
    Sieć
    Sieć wirtualna Wybierz sieć wirtualną dla prywatnego punktu końcowego. Przykład: myDockerVMVNET.
    Podsieć Wybierz podsieć dla prywatnego punktu końcowego. Przykład: myDockerVMSubnet.
    integracja Prywatna strefa DNS
    Integruj z prywatną strefą DNS Wybierz opcję Tak.
    Prywatna strefa DNS Wybierz (nowy) privatelink.azurecr.io
  5. Skonfiguruj pozostałe ustawienia rejestru, a następnie wybierz pozycję Przejrzyj i utwórz.

Create registry with private endpoint

Link prywatny jest teraz skonfigurowany i gotowy do użycia.

Tworzenie prywatnego punktu końcowego — istniejący rejestr

  1. W portalu przejdź do rejestru kontenerów.

  2. W obszarze Ustawienia wybierz pozycję Sieć.

  3. Na karcie Prywatne punkty końcowe wybierz pozycję + Prywatny punkt końcowy. Add private endpoint to registry

  4. Na karcie Podstawy wprowadź lub wybierz następujące informacje:

    Ustawienie Wartość
    Szczegóły projektu
    Subskrypcja Wybierz subskrypcję.
    Grupa zasobów Wprowadź nazwę istniejącej grupy lub utwórz nową.
    Szczegóły wystąpienia
    Nazwisko Wprowadź nazwę.
    Region (Region) Wybierz region.
  5. Wybierz pozycję Dalej: Zasób.

  6. Wprowadź lub wybierz następujące informacje:

    Ustawienie Wartość
    Metoda połączenia W tym przykładzie wybierz pozycję Połączenie do zasobu platformy Azure w moim katalogu.
    Subskrypcja Wybierz subskrypcję.
    Typ zasobu Wybierz pozycję Microsoft.ContainerRegistry/registries.
    Zasób Wybierz nazwę rejestru
    Docelowy podźródło Wybieranie rejestru
  7. Wybierz pozycję Dalej: Konfiguracja.

  8. Wprowadź lub wybierz informacje:

    Ustawienie Wartość
    Sieć
    Sieć wirtualna Wybierz sieć wirtualną dla prywatnego punktu końcowego
    Podsieć Wybierz podsieć dla prywatnego punktu końcowego
    integracja Prywatna strefa DNS
    Integruj z prywatną strefą DNS Wybierz opcję Tak.
    Prywatna strefa DNS Wybierz (nowy) privatelink.azurecr.io
  9. Wybierz pozycję Przejrzyj i utwórz. Zostanie wyświetlona strona Przeglądanie i tworzenie , na której platforma Azure weryfikuje konfigurację.

  10. Po wyświetleniu komunikatu Walidacja przekazana wybierz pozycję Utwórz.

Potwierdzanie konfiguracji punktu końcowego

Po utworzeniu prywatnego punktu końcowego ustawienia DNS w strefie prywatnej są wyświetlane z ustawieniami Prywatnych punktów końcowych w portalu:

  1. W portalu przejdź do rejestru kontenerów i wybierz pozycję Ustawienia > Sieć.
  2. Na karcie Prywatne punkty końcowe wybierz utworzony prywatny punkt końcowy.
  3. Wybierz pozycję Konfiguracja DNS.
  4. Przejrzyj ustawienia linku i niestandardowe ustawienia DNS.

Endpoint DNS settings in portal

Konfigurowanie prywatnego punktu końcowego — interfejs wiersza polecenia

Przykłady interfejsu wiersza polecenia platformy Azure w tym artykule używają następujących zmiennych środowiskowych. Do skonfigurowania prywatnego punktu końcowego potrzebne będą nazwy istniejącego rejestru kontenerów, sieci wirtualnej i podsieci. Podstaw wartości odpowiednie dla danego środowiska. Wszystkie przykłady są sformatowane dla powłoki Bash:

REGISTRY_NAME=<container-registry-name>
REGISTRY_LOCATION=<container-registry-location> # Azure region such as westeurope where registry created
RESOURCE_GROUP=<resource-group-name> # Resource group for your existing virtual network and subnet
NETWORK_NAME=<virtual-network-name>
SUBNET_NAME=<subnet-name>

Wyłączanie zasad sieciowych w podsieci

Wyłącz zasady sieciowe, takie jak sieciowe grupy zabezpieczeń w podsieci dla prywatnego punktu końcowego. Zaktualizuj konfigurację podsieci za pomocą polecenia az network vnet subnet update:

az network vnet subnet update \
 --name $SUBNET_NAME \
 --vnet-name $NETWORK_NAME \
 --resource-group $RESOURCE_GROUP \
 --disable-private-endpoint-network-policies

Konfigurowanie prywatnej strefy DNS

Utwórz prywatną strefę dns platformy Azure dla prywatnej domeny rejestru kontenerów platformy Azure. W kolejnych krokach utworzysz rekordy DNS dla domeny rejestru w tej strefie DNS. Aby uzyskać więcej informacji, zobacz Opcje konfiguracji DNS w dalszej części tego artykułu.

Aby użyć strefy prywatnej do zastąpienia domyślnej rozpoznawania nazw DNS dla rejestru kontenerów platformy Azure, strefa musi mieć nazwę privatelink.azurecr.io. Uruchom następujące polecenie az network private-dns zone create , aby utworzyć strefę prywatną:

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name "privatelink.azurecr.io"

Uruchom polecenie az network private-dns link vnet create , aby skojarzyć strefę prywatną z siecią wirtualną. W tym przykładzie jest tworzony link o nazwie myDNSLink.

az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --zone-name "privatelink.azurecr.io" \
  --name MyDNSLink \
  --virtual-network $NETWORK_NAME \
  --registration-enabled false

Tworzenie prywatnego punktu końcowego rejestru

W tej sekcji utwórz prywatny punkt końcowy rejestru w sieci wirtualnej. Najpierw pobierz identyfikator zasobu rejestru:

REGISTRY_ID=$(az acr show --name $REGISTRY_NAME \
  --query 'id' --output tsv)

Uruchom polecenie az network private-endpoint create, aby utworzyć prywatny punkt końcowy rejestru.

Poniższy przykład tworzy punkt końcowy myPrivateEndpoint i połączenie usługi my Połączenie ion. Aby określić zasób rejestru kontenerów dla punktu końcowego, przekaż polecenie --group-ids registry:

az network private-endpoint create \
    --name myPrivateEndpoint \
    --resource-group $RESOURCE_GROUP \
    --vnet-name $NETWORK_NAME \
    --subnet $SUBNET_NAME \
    --private-connection-resource-id $REGISTRY_ID \
    --group-ids registry \
    --connection-name myConnection

Uzyskiwanie konfiguracji adresu IP punktu końcowego

Aby skonfigurować rekordy DNS, pobierz konfigurację adresu IP prywatnego punktu końcowego. Skojarzony z interfejsem sieciowym prywatnego punktu końcowego w tym przykładzie to dwa prywatne adresy IP rejestru kontenerów: jeden dla samego rejestru i jeden dla punktu końcowego danych rejestru. Jeśli rejestr jest replikowany geograficznie, dodatkowy adres IP jest skojarzony z każdą repliką.

Najpierw uruchom polecenie az network private-endpoint show , aby wykonać zapytanie dotyczące prywatnego punktu końcowego dla identyfikatora interfejsu sieciowego:

NETWORK_INTERFACE_ID=$(az network private-endpoint show \
  --name myPrivateEndpoint \
  --resource-group $RESOURCE_GROUP \
  --query 'networkInterfaces[0].id' \
  --output tsv)

Następujące polecenia az network nic show pobierają prywatne adresy IP i nazwy FQDN dla rejestru kontenerów i punktu końcowego danych rejestru:

REGISTRY_PRIVATE_IP=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry'].privateIpAddress" \
  --output tsv)

DATA_ENDPOINT_PRIVATE_IP=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry_data_$REGISTRY_LOCATION'].privateIpAddress" \
  --output tsv)

# An FQDN is associated with each IP address in the IP configurations

REGISTRY_FQDN=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry'].privateLinkConnectionProperties.fqdns" \
  --output tsv)

DATA_ENDPOINT_FQDN=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry_data_$REGISTRY_LOCATION'].privateLinkConnectionProperties.fqdns" \
  --output tsv)

Dodatkowe punkty końcowe dla replik geograficznych

Jeśli rejestr jest replikowany geograficznie, wykonaj zapytanie dotyczące dodatkowego punktu końcowego danych dla każdej repliki rejestru. Na przykład w regionie eastus :

REPLICA_LOCATION=eastus
GEO_REPLICA_DATA_ENDPOINT_PRIVATE_IP=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry_data_$REPLICA_LOCATION'].privateIpAddress" \
  --output tsv) 

GEO_REPLICA_DATA_ENDPOINT_FQDN=$(az network nic show \
  --ids $NETWORK_INTERFACE_ID \
  --query "ipConfigurations[?privateLinkConnectionProperties.requiredMemberName=='registry_data_$REPLICA_LOCATION'].privateLinkConnectionProperties.fqdns" \
  --output tsv)

Po dodaniu nowej replikacji geograficznej zostanie ustawione oczekiwanie na połączenie prywatnego punktu końcowego. Aby zatwierdzić połączenie prywatnego punktu końcowego skonfigurowane ręcznie, uruchom polecenie az acr private-endpoint-connection approve .

Tworzenie rekordów DNS w strefie prywatnej

Następujące polecenia tworzą rekordy DNS w strefie prywatnej dla punktu końcowego rejestru i jego punktu końcowego danych. Jeśli na przykład masz rejestr o nazwie myregistry w regionie westeurope, nazwy punktów końcowych to myregistry.azurecr.io i myregistry.westeurope.data.azurecr.io.

Najpierw uruchom polecenie az network private-dns record-set a create , aby utworzyć puste zestawy rekordów A dla punktu końcowego rejestru i punktu końcowego danych:

az network private-dns record-set a create \
  --name $REGISTRY_NAME \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP

# Specify registry region in data endpoint name
az network private-dns record-set a create \
  --name ${REGISTRY_NAME}.${REGISTRY_LOCATION}.data \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP

Uruchom polecenie az network private-dns record-set a add-record, aby utworzyć rekordy A dla punktu końcowego rejestru i punktu końcowego danych:

az network private-dns record-set a add-record \
  --record-set-name $REGISTRY_NAME \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP \
  --ipv4-address $REGISTRY_PRIVATE_IP

# Specify registry region in data endpoint name
az network private-dns record-set a add-record \
  --record-set-name ${REGISTRY_NAME}.${REGISTRY_LOCATION}.data \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP \
  --ipv4-address $DATA_ENDPOINT_PRIVATE_IP

Dodatkowe rekordy dla replik geograficznych

Jeśli rejestr jest replikowany geograficznie, utwórz dodatkowe ustawienia DNS dla każdej repliki. Kontynuuj przykład w regionie eastus :

az network private-dns record-set a create \
  --name ${REGISTRY_NAME}.${REPLICA_LOCATION}.data \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP

az network private-dns record-set a add-record \
  --record-set-name ${REGISTRY_NAME}.${REPLICA_LOCATION}.data \
  --zone-name privatelink.azurecr.io \
  --resource-group $RESOURCE_GROUP \
  --ipv4-address $GEO_REPLICA_DATA_ENDPOINT_PRIVATE_IP

Link prywatny jest teraz skonfigurowany i gotowy do użycia.

Wyłączanie dostępu publicznego

W wielu scenariuszach wyłącz dostęp do rejestru z sieci publicznych. Ta konfiguracja uniemożliwia klientom spoza sieci wirtualnej dotarcie do punktów końcowych rejestru.

Wyłączanie dostępu publicznego — portal

  1. W portalu przejdź do rejestru kontenerów i wybierz pozycję Ustawienia > Sieć.
  2. Na karcie Dostęp publiczny w obszarze Zezwalaj na dostęp do sieci publicznej wybierz pozycję Wyłączone. Następnie wybierz opcję Zapisz.

Wyłączanie dostępu publicznego — interfejs wiersza polecenia

Uwaga

Jeśli dostęp publiczny jest wyłączony, az acr build polecenia nie będą już działać.

Aby wyłączyć dostęp publiczny przy użyciu interfejsu wiersza polecenia platformy Azure, uruchom polecenie az acr update i ustaw wartość --public-network-enabledfalse.

az acr update --name $REGISTRY_NAME --public-network-enabled false

Wykonywanie za az acr build pomocą prywatnego punktu końcowego i rejestru prywatnego

Uwaga

Po wyłączeniu dostępu do sieci publicznej w tym miejscuaz acr build polecenia nie będą już działać. Jeśli nie korzystasz z dedykowanych pul agentów, zazwyczaj wymaga to publicznego adresu IP. Zadania rezerwują zestaw publicznych adresów IP w każdym regionie dla żądań wychodzących. W razie potrzeby mamy możliwość dodania tych adresów IP do listy dozwolonych zapory w celu zapewnienia bezproblemowej komunikacji.az acr build polecenie używa tego samego zestawu adresów IP co zadania podrzędne.

Rozważ następujące opcje, aby pomyślnie wykonać te az acr build czynności.

  • Przypisz dedykowaną pulę agentów.
  • Jeśli pula agentów nie jest dostępna w regionie, dodaj regionalny tag IPv4 usługi Azure Container Registry do reguł dostępu do zapory. Zadania rezerwują zestaw publicznych adresów IP w każdym regionie (tj. AzureContainerRegistry Service Tag) dla żądań wychodzących. Możesz dodać adresy IP na liście dozwolonych zapory.
  • Utwórz zadanie usługi ACR z tożsamością zarządzaną i włącz zaufane usługi w celu uzyskania dostępu do usługi ACR z ograniczeniami sieci.

Wyłączanie dostępu do rejestru kontenerów przy użyciu punktu końcowego usługi

Ważne

Rejestr kontenerów nie obsługuje włączania zarówno funkcji łącza prywatnego, jak i punktu końcowego usługi skonfigurowanych z sieci wirtualnej.

Po skonfigurowaniu dostępu publicznego do rejestru i skonfigurowaniu łącza prywatnego można wyłączyć dostęp punktu końcowego usługi do rejestru kontenerów z sieci wirtualnej, usuwając reguły sieci wirtualnej.

Należy sprawdzić, czy zasoby w podsieci prywatnego punktu końcowego łączą się z rejestrem za pośrednictwem prywatnego adresu IP i mają prawidłową integrację prywatnej strefy DNS.

Aby zweryfikować połączenie łącza prywatnego, połącz się z maszyną wirtualną skonfigurowaną w sieci wirtualnej.

Uruchom narzędzie, takie jak nslookup lub dig , aby wyszukać adres IP rejestru za pośrednictwem łącza prywatnego. Na przykład:

dig $REGISTRY_NAME.azurecr.io

Przykładowe dane wyjściowe pokazują adres IP rejestru w przestrzeni adresowej podsieci:

[...]
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> myregistry.azurecr.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52155
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;myregistry.azurecr.io.         IN      A

;; ANSWER SECTION:
myregistry.azurecr.io.  1783    IN      CNAME   myregistry.privatelink.azurecr.io.
myregistry.privatelink.azurecr.io. 10 IN A      10.0.0.7

[...]

Porównaj ten wynik z publicznym adresem IP w dig danych wyjściowych dla tego samego rejestru za pośrednictwem publicznego punktu końcowego:

[...]
;; ANSWER SECTION:
myregistry.azurecr.io.	2881	IN	CNAME	myregistry.privatelink.azurecr.io.
myregistry.privatelink.azurecr.io. 2881	IN CNAME xxxx.xx.azcr.io.
xxxx.xx.azcr.io.	300	IN	CNAME	xxxx-xxx-reg.trafficmanager.net.
xxxx-xxx-reg.trafficmanager.net. 300 IN	CNAME	xxxx.westeurope.cloudapp.azure.com.
xxxx.westeurope.cloudapp.azure.com. 10	IN A 20.45.122.144

[...]

Sprawdź również, czy możesz wykonywać operacje rejestru z maszyny wirtualnej w sieci. Utwórz połączenie SSH z maszyną wirtualną i uruchom polecenie az acr login , aby zalogować się do rejestru. W zależności od konfiguracji maszyny wirtualnej może być konieczne prefiks następujących poleceń za pomocą polecenia sudo.

az acr login --name $REGISTRY_NAME

Wykonaj operacje rejestru, takie jak docker pull ściąganie przykładowego obrazu z rejestru. Zastąp hello-world:v1 element obrazem i tagiem odpowiednim dla rejestru, poprzedzonym nazwą serwera logowania rejestru (wszystkie małe litery):

docker pull myregistry.azurecr.io/hello-world:v1

Platforma Docker pomyślnie ściąga obraz do maszyny wirtualnej.

Zarządzanie połączeniami z prywatnymi punktami końcowymi

Zarządzanie połączeniami prywatnego punktu końcowego rejestru przy użyciu witryny Azure Portal lub za pomocą poleceń w grupie poleceń az acr private-endpoint-connection . Operacje obejmują zatwierdzanie, usuwanie, wyświetlanie listy, odrzucanie lub wyświetlanie szczegółów połączeń prywatnych punktów końcowych rejestru.

Aby na przykład wyświetlić listę połączeń prywatnych punktów końcowych rejestru, uruchom polecenie az acr private-endpoint-connection list . Na przykład:

az acr private-endpoint-connection list \
  --registry-name $REGISTRY_NAME 

Podczas konfigurowania połączenia prywatnego punktu końcowego przy użyciu kroków opisanych w tym artykule rejestr automatycznie akceptuje połączenia od klientów i usług z uprawnieniami RBAC platformy Azure w rejestrze. Punkt końcowy można skonfigurować tak, aby wymagał ręcznego zatwierdzania połączeń. Aby uzyskać informacje o sposobie zatwierdzania i odrzucania połączeń prywatnych punktów końcowych, zobacz Zarządzanie prywatnym punktem końcowym Połączenie ion.

Ważne

Obecnie w przypadku usunięcia prywatnego punktu końcowego z rejestru może być również konieczne usunięcie linku sieci wirtualnej do strefy prywatnej. Jeśli link nie został usunięty, może zostać wyświetlony błąd podobny do unresolvable host.

Opcje konfiguracji DNS

Prywatny punkt końcowy w tym przykładzie integruje się z prywatną strefą DNS skojarzona z podstawową siecią wirtualną. Ta konfiguracja używa usługi DNS udostępnianej przez platformę Azure bezpośrednio do rozpoznawania publicznej nazwy FQDN rejestru do prywatnych adresów IP w sieci wirtualnej.

Usługa Private Link obsługuje dodatkowe scenariusze konfiguracji DNS, które korzystają ze strefy prywatnej, w tym z niestandardowymi rozwiązaniami DNS. Na przykład możesz mieć niestandardowe rozwiązanie DNS wdrożone w sieci wirtualnej lub lokalnie w sieci, z którą łączysz się z siecią wirtualną przy użyciu bramy sieci VPN lub usługi Azure ExpressRoute.

Aby rozpoznać publiczną nazwę FQDN rejestru na prywatny adres IP w tych scenariuszach, należy skonfigurować usługę przesyłania dalej na poziomie serwera do usługi Azure DNS (168.63.129.16). Dokładne opcje konfiguracji i kroki zależą od istniejących sieci i systemu DNS. Aby zapoznać się z przykładami, zobacz Konfiguracja dns prywatnego punktu końcowego platformy Azure.

Ważne

Jeśli w przypadku wysokiej dostępności utworzono prywatne punkty końcowe w kilku regionach, zalecamy użycie oddzielnej grupy zasobów w każdym regionie i umieszczenie w niej sieci wirtualnej i skojarzonej prywatnej strefy DNS. Ta konfiguracja zapobiega również nieprzewidywalnej rozpoznawaniu nazw DNS spowodowanej udostępnianiem tej samej prywatnej strefy DNS.

Ręczne konfigurowanie rekordów DNS

W niektórych scenariuszach może być konieczne ręczne skonfigurowanie rekordów DNS w strefie prywatnej zamiast korzystania z udostępnionej przez platformę Azure strefy prywatnej. Pamiętaj, aby utworzyć rekordy dla każdego z następujących punktów końcowych: punktu końcowego rejestru, punktu końcowego danych rejestru i punktu końcowego danych dla każdej dodatkowej repliki regionalnej. Jeśli wszystkie rekordy nie są skonfigurowane, rejestr może być nieosiągalny.

Ważne

Jeśli później dodasz nową replikę, musisz ręcznie dodać nowy rekord DNS dla punktu końcowego danych w tym regionie. Jeśli na przykład utworzysz replikę bazy danych myregistry w lokalizacji northeurope, dodaj rekord dla elementu myregistry.northeurope.data.azurecr.io.

Nazwy FQDN i prywatne adresy IP potrzebne do utworzenia rekordów DNS są skojarzone z interfejsem sieciowym prywatnego punktu końcowego. Te informacje można uzyskać przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Po utworzeniu rekordów DNS upewnij się, że nazwy FQDN rejestru są prawidłowo rozpoznawane dla odpowiednich prywatnych adresów IP.

Czyszczenie zasobów

Aby wyczyścić zasoby w portalu, przejdź do grupy zasobów. Po załadowaniu grupy zasobów kliknij pozycję Usuń grupę zasobów, aby usunąć grupę zasobów i przechowywane tam zasoby.

Jeśli wszystkie zasoby platformy Azure zostały utworzone w tej samej grupie zasobów i nie są już potrzebne, możesz opcjonalnie usunąć zasoby przy użyciu jednego polecenia az group delete :

az group delete --name $RESOURCE_GROUP

Aby ściągnąć zawartość z rejestru z włączonym łączem prywatnym, klienci muszą zezwolić na dostęp do punktu końcowego REST rejestru, a także wszystkich regionalnych punktów końcowych danych. Serwer proxy klienta lub zapora musi zezwalać na dostęp do

Punkt końcowy REST: {REGISTRY_NAME}.azurecr.io punkty końcowe danych: {REGISTRY_NAME}.{REGISTRY_LOCATION}.data.azurecr.io

W przypadku rejestru replikowanego geograficznie klient musi skonfigurować dostęp do punktu końcowego danych dla każdej repliki regionalnej.

Należy zaktualizować konfigurację routingu dla serwera proxy klienta i zapory klienta przy użyciu punktów końcowych danych, aby pomyślnie obsłużyć żądania ściągnięcia. Serwer proxy klienta zapewni centralną kontrolę ruchu do żądań wychodzących. Aby obsłużyć ruch lokalny, serwer proxy klienta nie jest wymagany, możesz dodać do noProxy sekcji w celu obejścia serwera proxy. Dowiedz się więcej na temat dokumentu serwera proxy HTTP w celu integracji z usługą AKS.

Żądania serwera tokenów za pośrednictwem połączenia prywatnego punktu końcowego nie wymagają konfiguracji punktu końcowego danych.

Następne kroki