Azure Private Link を使用して Azure Container Registry にプライベートで接続するConnect privately to an Azure container registry using Azure Private Link

Azure Private Link を利用し、レジストリ エンドポイントに仮想ネットワーク プライベート IP アドレスを割り当てることでレジストリへのアクセスを制限します。Limit access to a registry by assigning virtual network private IP addresses to the registry endpoints and using Azure Private Link. 仮想ネットワーク上のクライアントとレジストリのプライベート エンドポイント間のネットワーク トラフィックは、仮想ネットワークおよび Microsoft バックボーン ネットワーク上のプライベート リンクを経由することで、パブリック インターネットにさらされないようにします。Network traffic between the clients on the virtual network and the registry's private endpoints traverses the virtual network and a private link on the Microsoft backbone network, eliminating exposure from the public internet. また、Private Link を使用すると、Azure ExpressRoute プライベート ピアリングまたは VPN ゲートウェイを介して、オンプレミスからのプライベート レジストリへのアクセスを有効にすることもできます。Private Link also enables private registry access from on-premises through Azure ExpressRoute private peering or a VPN gateway.

設定がレジストリの割り当てられたプライベート IP アドレスに解決されるように、レジストリのプライベート エンドポイント用に DNS 設定を構成することができます。You can configure DNS settings for the registry's private endpoints, so that the settings resolve to the registry's allocated private IP address. DNS 構成では、ネットワーク内のクライアントとサービスは、レジストリの完全修飾ドメイン名 (myregistry.azurecr.ioなど) で引き続きレジストリにアクセスできます。With DNS configuration, clients and services in the network can continue to access the registry at the registry's fully qualified domain name, such as myregistry.azurecr.io.

この機能は、Premium コンテナー レジストリ サービス レベルで使用できます。This feature is available in the Premium container registry service tier. レジストリ サービスのレベルと制限については、Azure Container Registry のレベルに関するページを参照してください。For information about registry service tiers and limits, see Azure Container Registry tiers.

注意事項Things to know

  • 現在のところ、Azure Security Center を使用した画像スキャンは、プライベート エンドポイントで構成したレジストリでは利用できません。Currently, image scanning using Azure Security Center isn't available in a registry configured with a private endpoint.
  • 現時点では、1 つのレジストリに対して最大 10 個のプライベート エンドポイントを設定できます。Currently, a maximum of 10 private endpoints can be set up for a registry.

前提条件Prerequisites

  • この記事の Azure CLI の手順を使用する場合は、Azure CLI バージョン 2.6.0 以降をお勧めします。To use the Azure CLI steps in this article, Azure CLI version 2.6.0 or later is recommended. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI. または、Azure Cloud Shell で実行します。Or run in Azure Cloud Shell.

  • コンテナー レジストリがまだない場合は、1 つ作成し (Premium レベルが必要)、Docker Hub から hello-world などのサンプル イメージをインポートします。If you don't already have a container registry, create one (Premium tier required) and import a sample image such as hello-world from Docker Hub. たとえば、Azure portal または Azure CLI を使用してレジストリを作成します。For example, use the Azure portal or the Azure CLI to create a registry.

  • 別の Azure サブスクリプションのプライベート リンクを使用してレジストリ アクセスを構成するには、そのサブスクリプションで Azure Container Registry のリソース プロバイダーを登録する必要があります。To configure registry access using a private link in a different Azure subscription, you need to register the resource provider for Azure Container Registry in that subscription. 次に例を示します。For example:

    az account set --subscription <Name or ID of subscription of private link>
    
    az provider register --namespace Microsoft.ContainerRegistry
    

この記事の Azure CLI 例では、次の環境変数を使用します。The Azure CLI examples in this article use the following environment variables. ご利用の環境に適した値に置き換えてください。Substitute values appropriate for your environment. すべての例は、Bash シェル用に書式設定されています。All examples are formatted for the Bash shell:

REGISTRY_NAME=<container-registry-name>
REGISTRY_LOCATION=<container-registry-location> # Azure region such as westeurope where registry created
RESOURCE_GROUP=<resource-group-name>
VM_NAME=<virtual-machine-name>

Docker 対応仮想マシンの作成Create a Docker-enabled virtual machine

テスト目的の場合は、Docker 対応の Ubuntu VM を使用して、Azure コンテナー レジストリにアクセスします。For test purposes, use a Docker-enabled Ubuntu VM to access an Azure container registry. レジストリに Azure Active Directory 認証を使用するには、VM に Azure CLI もインストールします。To use Azure Active Directory authentication to the registry, also install the Azure CLI on the VM. 既に Azure 仮想マシンがある場合は、この作成手順を省略します。If you already have an Azure virtual machine, skip this creation step.

仮想マシンとコンテナー レジストリに同じリソース グループを使用できます。You may use the same resource group for your virtual machine and your container registry. このセットアップでは最終的にクリーンアップが簡素化されますが、必須ではありません。This setup simplifies clean-up at the end but isn't required. 仮想マシンと仮想ネットワークに別々のリソース グループを作成することを選択する場合は、az group create を実行します。If you choose to create a separate resource group for the virtual machine and virtual network, run az group create. 次の例では、リソース グループ名とレジストリの場所に対して環境変数を設定していることを前提としています。The following example assumes you've set environment variables for the resource group name and registry location:

az group create --name $RESOURCE_GROUP --location $REGISTRY_LOCATION

ここで、az vm create を使用して、既定の Ubuntu Azure 仮想マシンをデプロイします。Now deploy a default Ubuntu Azure virtual machine with az vm create. 次の例では、myDockerVM という名前の VM を作成します。The following example creates a VM named myDockerVM.

VM_NAME=myDockerVM

az vm create \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

VM が作成されるまで、数分間かかります。It takes a few minutes for the VM to be created. コマンドが完了したら、Azure CLI によって表示された publicIpAddress をメモします。When the command completes, take note of the publicIpAddress displayed by the Azure CLI. このアドレスは、VM への SSH 接続を作成するために使用します。Use this address to make SSH connections to the VM.

VM に Docker をインストールするInstall Docker on the VM

VM が実行されたら、VM への SSH 接続を作成します。After the VM is running, make an SSH connection to the VM. publicIpAddress を VM のパブリック IP アドレスに置き換えます。Replace publicIpAddress with the public IP address of your VM.

ssh azureuser@publicIpAddress

次のコマンドを実行して、Ubuntu VM に Docker をインストールします。Run the following commands to install Docker on the Ubuntu VM:

sudo apt-get update
sudo apt install docker.io -y

インストールの後、次のコマンドを実行して、VM 上で Docker が正しく実行されていることを確認します。After installation, run the following command to verify that Docker is running properly on the VM:

sudo docker run -it hello-world

出力:Output:

Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]

Azure CLI のインストールInstall the Azure CLI

Ubuntu 仮想マシンに Azure CLI をインストールするには、「apt での Azure CLI のインストール」の手順に従います。Follow the steps in Install Azure CLI with apt to install the Azure CLI on your Ubuntu virtual machine. 次に例を示します。For example:

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

SSH 接続を終了します。Exit the SSH connection.

ネットワークとサブネットの名前を取得するGet network and subnet names

まだない場合は、プライベート リンクを設定するための仮想ネットワークとサブネットの名前が必要になります。If you don't have them already, you'll need the names of a virtual network and subnet to set up a private link. この例では、VM とレジストリのプライベート エンドポイントに同じサブネットを使用します。In this example, you use the same subnet for the VM and the registry's private endpoint. しかし、多くのシナリオでは、別のサブネットにエンドポイントを設定します。However, in many scenarios you would set up the endpoint in a separate subnet.

VM を作成するときに、既定では Azure によって仮想ネットワークが同じリソース グループに作成されます。When you create a VM, Azure by default creates a virtual network in the same resource group. 仮想ネットワークの名前は仮想マシンの名前に基づいています。The name of the virtual network is based on the name of the virtual machine. たとえば、仮想マシンに myDockerVM という名前を付ける場合、既定の仮想ネットワーク名は myDockerVMVNET で、サブネット名は myDockerVMSubnet です。For example, if you name your virtual machine myDockerVM, the default virtual network name is myDockerVMVNET, with a subnet named myDockerVMSubnet. az network vnet list コマンドを実行して、環境変数にこれらの値を設定します。Set these values in environment variables by running the az network vnet list command:

NETWORK_NAME=$(az network vnet list \
  --resource-group $RESOURCE_GROUP \
  --query '[].{Name: name}' --output tsv)

SUBNET_NAME=$(az network vnet list \
  --resource-group $RESOURCE_GROUP \
  --query '[].{Subnet: subnets[0].name}' --output tsv)

echo NETWORK_NAME=$NETWORK_NAME
echo SUBNET_NAME=$SUBNET_NAME

サブネットでネットワーク ポリシーを無効にするDisable network policies in subnet

プライベート エンドポイントのサブネットで、ネットワーク セキュリティ グループなどのネットワーク ポリシーを無効にしますDisable network policies such as network security groups in the subnet for the private endpoint. az network vnet subnet update を使用して、サブネット構成を更新します。Update your subnet configuration with 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

プライベート DNS ゾーンを構成するConfigure the private DNS zone

プライベート Azure コンテナー レジストリ ドメイン用のプライベート DNS ゾーンを作成します。Create a private DNS zone for the private Azure container registry domain. 後の手順で、この DNS ゾーン内にレジストリ ドメインの DNS レコードを作成します。In later steps, you create DNS records for your registry domain in this DNS zone.

プライベート ゾーンを使用して Azure コンテナー レジストリの既定の DNS 解決をオーバーライドするには、ゾーンに privatelink.azurecr.io という名前を付ける必要があります。To use a private zone to override the default DNS resolution for your Azure container registry, the zone must be named privatelink.azurecr.io. 次の az network private-dns zone create コマンドを実行して、プライベート ゾーンを作成します。Run the following az network private-dns zone create command to create the private zone:

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

az network private-dns link vnet create を実行して、プライベート ゾーンを仮想ネットワークに関連付けます。Run az network private-dns link vnet create to associate your private zone with the virtual network. この例では、myDNSLink というリンクを作成します。This example creates a link called 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

プライベート レジストリ エンドポイントを作成するCreate a private registry endpoint

このセクションでは、仮想ネットワーク内にレジストリのプライベート エンドポイントを作成します。In this section, create the registry's private endpoint in the virtual network. まず、レジストリのリソース ID を取得します。First, get the resource ID of your registry:

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

az network private endpoint create コマンドを実行して、レジストリのプライベート エンドポイントを作成します。Run the az network private-endpoint create command to create the registry's private endpoint.

次の例では、myPrivateEndpoint というエンドポイントと myConnection というサービス接続を作成します。The following example creates the endpoint myPrivateEndpoint and service connection myConnection. エンドポイントのコンテナー レジストリ リソースを指定するには、--group-ids registry を渡します。To specify a container registry resource for the endpoint, pass --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

プライベート IP アドレスを取得するGet private IP addresses

az network private endpoint show を実行し、ネットワーク インターフェイス ID について、エンドポイントにクエリを実行します。Run az network private-endpoint show to query the endpoint for the network interface ID:

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

この例のネットワーク インターフェイスには、コンテナーレジストリの 2 つのプライベート IP アドレスが関連付けられています。1 つはレジストリ自体用で、もう 1 つはレジストリのデータ エンドポイント用です。Associated with the network interface in this example are two private IP addresses for the container registry: one for the registry itself, and one for the registry's data endpoint. 次の az resource show コマンドでは、コンテナー レジストリとレジストリのデータ エンドポイント用のプライベート IP アドレスが取得されます。The following az resource show commands get the private IP addresses for the container registry and the registry's data endpoint:

PRIVATE_IP=$(az resource show \
  --ids $NETWORK_INTERFACE_ID \
  --api-version 2019-04-01 \
  --query 'properties.ipConfigurations[1].properties.privateIPAddress' \
  --output tsv)

DATA_ENDPOINT_PRIVATE_IP=$(az resource show \
  --ids $NETWORK_INTERFACE_ID \
  --api-version 2019-04-01 \
  --query 'properties.ipConfigurations[0].properties.privateIPAddress' \
  --output tsv)

注意

レジストリが geo レプリケートされている場合、レジストリ レプリカごとに追加のデータ エンドポイントを照会します。If your registry is geo-replicated, query for the additional data endpoint for each registry replica.

プライベート ゾーンに DNS レコードを作成するCreate DNS records in the private zone

次のコマンドでは、レジストリ エンドポイントとそのデータ エンドポイントのプライベート ゾーンに DNS レコードを作成します。The following commands create DNS records in the private zone for the registry endpoint and its data endpoint. たとえば、westeurope リージョンに myregistry という名前のレジストリがある場合、エンドポイント名は myregistry.azurecr.iomyregistry.westeurope.data.azurecr.io になります。For example, if you have a registry named myregistry in the westeurope region, the endpoint names are myregistry.azurecr.io and myregistry.westeurope.data.azurecr.io.

注意

レジストリが geo レプリケートされている場合、レプリカのデータ エンドポイント IP ごとに追加の DNS レコードを作成します。If your registry is geo-replicated, create additonal DNS records for each replica's data endpoint IP.

まず、az network private-dns record-set a create を実行し、レジストリ エンドポイントとデータ エンドポイント用の空の A レコード セットを作成します。First run az network private-dns record-set a create to create empty A record sets for the registry endpoint and data endpoint:

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

az network private-dns record-set a add-record コマンドを実行し、レジストリ エンドポイントとデータ エンドポイント用の A レコードを作成します。Run the az network private-dns record-set a add-record command to create the A records for the registry endpoint and data endpoint:

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 $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

これで、プライベート リンクが構成され、使用できるようになりました。The private link is now configured and ready for use.

レジストリを作成するときにプライベート リンクを設定するか、既存のレジストリにプライベート リンクを追加します。Set up a private link when you create a registry, or add a private link to an existing registry. 次の手順では、仮想ネットワークとサブネットがテスト用の VM で既に設定されていることを前提としています。The following steps assume you already have a virtual network and subnet set up with a VM for testing. 新しい仮想ネットワークとサブネットを作成することもできます。You can also create a new virtual network and subnet.

プライベート エンドポイントの作成 - 新しいレジストリCreate a private endpoint - new registry

  1. ポータルでレジストリを作成するとき、 [基本] タブの [SKU][Premium] を選択します。When creating a registry in the portal, on the Basics tab, in SKU, select Premium.

  2. [ネットワーク] タブを選択します。Select the Networking tab.

  3. [ネットワーク接続][プライベート エンドポイント] を選択し、 [+ 追加] を選択します。In Network connectivity, select Private endpoint > + Add.

  4. 次の情報を入力または選択します。Enter or select the following information:

    設定Setting Value
    サブスクリプションSubscription サブスクリプションを選択します。Select your subscription.
    Resource groupResource group 既存のグループの名前を入力するか、新しいものを作成します。Enter the name of an existing group or create a new one.
    名前Name 一意の名前を入力します。Enter a unique name.
    サブリソースSubresource レジストリを選択しますSelect registry
    ネットワークNetworking
    仮想ネットワークVirtual network myDockerVMVNET など、仮想マシンがデプロイされている仮想ネットワークを選択します。Select the virtual network where your virtual machine is deployed, such as myDockerVMVNET.
    SubnetSubnet 仮想マシンがデプロイされている myDockerVMSubnet などのサブネットを選択します。Select a subnet, such as myDockerVMSubnet where your virtual machine is deployed.
    プライベート DNS の統合Private DNS Integration
    プライベート DNS ゾーンとの統合Integrate with private DNS zone [はい] を選択します。Select Yes.
    プライベート DNS ゾーンPrivate DNS Zone (新規) privatelink.azurecr.io を選択しますSelect (New) privatelink.azurecr.io
  5. 残りのレジストリ設定を構成し、 [確認および作成] を選択します。Configure the remaining registry settings, and then select Review + Create.

プライベート エンドポイントを使用してレジストリを作成する

プライベート エンドポイントの作成 - 既存のレジストリCreate a private endpoint - existing registry

  1. ポータルで、自分のコンテナー レジストリに移動します。In the portal, navigate to your container registry.

  2. [設定][ネットワーク] を選択します。Under Settings, select Networking.

  3. [プライベート エンドポイント] タブで [+ プライベートエンドポイント] を選択します。On the Private endpoints tab, select + Private endpoint.

  4. [基本] タブで、次の情報を入力または選択します。In the Basics tab, enter or select the following information:

    設定Setting Value
    プロジェクトの詳細Project details
    サブスクリプションSubscription サブスクリプションを選択します。Select your subscription.
    Resource groupResource group 既存のグループの名前を入力するか、新しいものを作成します。Enter the name of an existing group or create a new one.
    インスタンスの詳細Instance details
    名前Name 名前を入力します。Enter a name.
    リージョンRegion リージョンを選択します。Select a region.
  5. 次へ:リソース を選択します。Select Next: Resource.

  6. 次の情報を入力または選択します。Enter or select the following information:

    設定Setting Value
    接続方法Connection method [マイ ディレクトリ内の Azure リソースに接続します] を選択します。Select Connect to an Azure resource in my directory.
    サブスクリプションSubscription サブスクリプションを選択します。Select your subscription.
    リソースの種類Resource type [Microsoft.ContainerRegistry/registries] を選択します。Select Microsoft.ContainerRegistry/registries.
    リソースResource レジストリの名前を選択しますSelect the name of your registry
    ターゲット サブリソースTarget subresource レジストリを選択しますSelect registry
  7. 次へ:構成 を選択します。Select Next: Configuration.

  8. 次の情報を入力または選択します。Enter or select the information:

    設定Setting Value
    ネットワークNetworking
    仮想ネットワークVirtual network myDockerVMVNET など、仮想マシンがデプロイされている仮想ネットワークを選択します。Select the virtual network where your virtual machine is deployed, such as myDockerVMVNET.
    SubnetSubnet 仮想マシンがデプロイされている myDockerVMSubnet などのサブネットを選択します。Select a subnet, such as myDockerVMSubnet where your virtual machine is deployed.
    プライベート DNS の統合Private DNS Integration
    プライベート DNS ゾーンとの統合Integrate with private DNS zone [はい] を選択します。Select Yes.
    プライベート DNS ゾーンPrivate DNS Zone (新規) privatelink.azurecr.io を選択しますSelect (New) privatelink.azurecr.io
  9. [Review + create](レビュー + 作成) を選択します。Select Review + create. [確認および作成] ページが表示され、Azure によって構成が検証されます。You're taken to the Review + create page where Azure validates your configuration.

  10. "証に成功しました" というメッセージが表示されたら、 [作成] を選択します。When you see the Validation passed message, select Create.

プライベート エンドポイントが作成された後、ポータルの [プライベート エンドポイント] ページにプライベート ゾーンの DNS 設定が表示されます。After the private endpoint is created, DNS settings in the private zone appear on the Private endpoints page in the portal:

  1. ポータルで、コンテナー レジストリに移動し、 [設定]、[ネットワーク] の順に選択します。In the portal, navigate to your container registry and select Settings > Networking.
  2. [プライベート エンドポイント] タブで、作成したプライベートエンドポイントを選択します。On the Private endpoints tab, select the private endpoint you created.
  3. [概要] ページで、リンク設定とカスタム DNS 設定を確認します。On the Overview page, review the link settings and custom DNS settings.

エンドポイントの DNS 設定

これで、プライベート リンクが構成され、使用できるようになりました。Your private link is now configured and ready for use.

パブリック アクセスを無効にするDisable public access

さまざまなシナリオで、パブリック ネットワークからのレジストリ アクセスを無効にします。For many scenarios, disable registry access from public networks. この構成により、仮想ネットワークの外にいるクライアントがレジストリ エンドポイントに到達するのを防ぐことができます。This configuration prevents clients outside the virtual network from reaching the registry endpoints.

パブリック アクセスを無効にする - CLIDisable public access - CLI

Azure CLI を使用してパブリック アクセスを無効にするには、az acr update を実行し、--public-network-enabledfalse に設定します。To disable public access using the Azure CLI, run az acr update and set --public-network-enabled to false.

注意

public-network-enabled 引数には、Azure CLI 2.6.0 以降が必要です。The public-network-enabled argument requires Azure CLI 2.6.0 or later.

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

パブリック アクセスを無効にする - ポータルDisable public access - portal

  1. ポータルで、コンテナー レジストリに移動し、 [設定] > [ネットワーク] の順に選択します。In the portal, navigate to your container registry and select Settings > Networking.
  2. [パブリック アクセス] タブの [Allow public network access](パブリック ネットワーク アクセスを許可する) で、 [無効] を選択します。On the Public access tab, in Allow public network access, select Disabled. 次に、 [保存] を選択します。Then select Save.

プライベート エンドポイントのサブネット内のリソースがプライベート IP アドレスを使用してレジストリに接続され、適切なプライベート DNS ゾーンの統合が行われていることを確認する必要があります。You should validate that the resources within the subnet of the private endpoint connect to your registry over a private IP address, and have the correct private DNS zone integration.

プライベート リンク接続を確認するには、仮想ネットワークに設定した仮想マシンに SSH 接続します。To validate the private link connection, SSH to the virtual machine you set up in the virtual network.

nslookup コマンドを実行し、プライベート リンク経由のレジストリの IP アドレスを解決します。Run the nslookup command to resolve the IP address of your registry over the private link:

nslookup $REGISTRY_NAME.azurecr.io

出力例では、サブネットのアドレス空間にあるレジストリの IP アドレスが示されています。Example output shows the registry's IP address in the address space of the subnet:

[...]
myregistry.azurecr.io       canonical name = myregistry.privatelink.azurecr.io.
Name:   myregistry.privatelink.azurecr.io
Address: 10.0.0.6

この結果と、パブリック エンドポイント経由の同じレジストリの nslookup 出力のパブリック IP アドレスを比較します。Compare this result with the public IP address in nslookup output for the same registry over a public endpoint:

[...]
Non-authoritative answer:
Name:   myregistry.westeurope.cloudapp.azure.com
Address: 40.78.103.41

また、サブネット内の仮想マシンからレジストリ操作を実行できることを確認します。Also verify that you can perform registry operations from the virtual machine in the subnet. 仮想マシンへの SSH 接続を行い、az acr login を実行してレジストリにログインします。Make an SSH connection to your virtual machine, and run az acr login to login to your registry. VM の構成によっては、次のコマンドの前に sudo を付けることが必要になる場合があります。Depending on your VM configuration, you might need to prefix the following commands with sudo.

az acr login --name $REGISTRY_NAME

docker pull などのレジストリ操作を実行して、サンプル イメージをレジストリからプルします。Perform registry operations such as docker pull to pull a sample image from the registry. hello-world:v1 を、レジストリに適したイメージとタグに置き換え、前にレジストリ ログイン サーバー名 (すべて小文字) を付けます。Replace hello-world:v1 with an image and tag appropriate for your registry, prefixed with the registry login server name (all lowercase):

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

Docker によってイメージが VM に正常にプルされます。Docker successfully pulls the image to the VM.

プライベート エンドポイント接続を管理するManage private endpoint connections

Azure portal を使用するか、az acr private-endpoint-connection コマンド グループのコマンドを使って、レジストリのプライベート エンドポイント接続を管理します。Manage a registry's private endpoint connections using the Azure portal, or by using commands in the az acr private-endpoint-connection command group. 操作には、レジストリのプライベート エンドポイント接続の承認、削除、一覧表示、拒否、または詳細の表示が含まれます。Operations include approve, delete, list, reject, or show details of a registry's private endpoint connections.

たとえば、レジストリのプライベート エンドポイント接続の一覧を表示するには、az acr private-endpoint-connection list コマンドを実行します。For example, to list the private endpoint connections of a registry, run the az acr private-endpoint-connection list command. 次に例を示します。For example:

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

この記事の手順を使用してプライベート エンドポイント接続を設定すると、レジストリでは、レジストリに対する RBAC アクセス許可を持つクライアントとサービスからの接続が自動的に受け入れられます。When you set up a private endpoint connection using the steps in this article, the registry automatically accepts connections from clients and services that have RBAC permissions on the registry. エンドポイントを設定して、手動による接続の承認を要求することができます。You can set up the endpoint to require manual approval of connections. プライベート エンドポイント接続を承認および拒否する方法については、「プライベート エンドポイント接続を管理する」を参照してください。For information about how to approve and reject private endpoint connections, see Manage a Private Endpoint Connection.

レプリカのゾーン レコードを追加するAdd zone records for replicas

この記事で紹介したように、プライベート エンドポイント接続をレジストリに追加するとき、そのレジストリとそのデータ エンドポイントのために、レジストリがレプリケートされるリージョンで privatelink.azurecr.io ゾーンの DNS レコードが作成されます。As shown in this article, when you add a private endpoint connection to a registry, DNS records in the privatelink.azurecr.io zone are created for the registry and its data endpoints in the regions where the registry is replicated.

新しいレプリカを後で追加する場合、そのリージョンでデータ エンドポイントの新しいゾーン レコードを手動で追加する必要があります。If you later add a new replica, you need to manually add a new zone record for the data endpoint in that region. たとえば、場所 northeuropemyregistry のレプリカを作成する場合、myregistry.northeurope.data.azurecr.io のゾーン レコードを追加します。For example, if you create a replica of myregistry in the northeurope location, add a zone record for myregistry.northeurope.data.azurecr.io. 手順については、この記事の「プライベート ゾーンに DNS レコードを作成する」を参照してください。For steps, see Create DNS records in the private zone in this article.

リソースをクリーンアップするClean up resources

すべての Azure リソースを同じリソース グループ内に作成し、それらが不要になった場合は、1 つの az group delete コマンドを使用してリソースを削除することもできます。If you created all the Azure resources in the same resource group and no longer need them, you can optionally delete the resources by using a single az group delete command:

az group delete --name $RESOURCE_GROUP

ポータルでリソースをクリーンアップするには、リソース グループに移動します。To clean up your resources in the portal, navigate to your resource group. リソース グループが読み込まれたら、 [リソース グループの削除] をクリックして、リソース グループとそこに格納されているリソースを削除します。Once the resource group is loaded, click on Delete resource group to remove the resource group and the resources stored there.

次のステップNext steps