Een privé-eindpunt gebruiken met een Azure Container Apps-omgeving (preview)
In dit artikel leert u hoe u een privé-eindpunt gebruikt om veilig toegang te krijgen tot uw Azure Container App zonder deze beschikbaar te maken voor het openbare internet.
Een privé-eindpunt maakt gebruik van een privé-IP-adres van uw virtuele netwerk (VNet). Dit eindpunt verbindt u privé en veilig met een service die wordt mogelijk gemaakt door Azure Private Link.
Privé-eindpunten in Azure Container Apps ondersteunen alleen inkomend HTTP-verkeer. TCP-verkeer wordt niet ondersteund.
Vereisten
- Azure-account met een actief abonnement.
- Als u geen account hebt, kunt u er gratis een maken.
Een container-app maken
Meld u eerst aan bij Azure Portal.
Zoek naar Container Apps in de bovenste zoekbalk.
Selecteer Container Apps in de zoekresultaten.
Selecteer de knop Maken.
Voer op de pagina Container-app maken op het tabblad Basisbeginselen de volgende waarden in.
Instelling Actie Abonnement Selecteer uw Azure-abonnement. Resourcegroep Selecteer Nieuwe maken en voer mijn container-apps in. Naam container-app Voer mijn container-app in. Implementatiebron Selecteer Containerinstallatiekopieën. Regio Selecteer VS - centraal. Selecteer in het veld Container Apps-omgeving maken de koppeling Nieuwe maken.
Voer op de pagina Container Apps-omgeving maken op het tabblad Basisbeginselen de volgende waarden in:
Instelling Weergegeven als Omgevingsnaam Voer mijn omgeving in. Zoneredundantie Selecteer Uitgeschakeld Selecteer het tabblad Netwerken om een virtueel netwerk (VNet) te maken. Openbare netwerktoegang is standaard ingeschakeld, wat betekent dat privé-eindpunten zijn uitgeschakeld.
Schakel openbare netwerktoegang uit.
Laat Uw eigen virtuele netwerk ingesteld op Nee. U kunt een bestaand VNet gebruiken, maar privé-eindpunten worden alleen ondersteund door omgevingen met workloadprofielen. Hiervoor is een subnet met een minimaal CIDR-bereik van
/27
of groter vereist. Zie het overzicht van de netwerkarchitectuur voor meer informatie over de grootte van subnetten.Stel Privé-eindpunten in op Ja.
Stel de naam van het privé-eindpunt in op mijn privé-eindpunt.
Selecteer in het veld Virtueel privé-eindpuntnetwerk de koppeling Nieuwe maken.
Stel op de pagina Virtueel netwerk maken het virtuele netwerk in op mijn privé-eindpunt-vnet. Selecteer OK.
Selecteer in het veld Subnet van het virtuele privé-eindpuntnetwerk de koppeling Nieuwe maken.
Stel op de pagina Subnet maken de naam van het subnet in op my-private-endpoint-vnet-subnet. Selecteer OK.
Laat DNS ingesteld op Azure Privé-DNS Zone.
Selecteer Maken.
Selecteer op de pagina Container-app maken op het tabblad Basisbeginselen de optie Volgende: Container>.
Selecteer op de pagina Container-app maken op het tabblad Container de optie QuickStart-installatiekopieën gebruiken.
Selecteer Controleren en maken onderaan de pagina.
Als er geen fouten worden gevonden, is de knop Maken ingeschakeld.
Als er fouten zijn, wordt een tabblad met fouten gemarkeerd met een rode stip. Navigeer naar het betreffende tabblad. Velden met een fout zijn rood gemarkeerd. Zodra alle fouten zijn opgelost, selecteert u Controleren en opnieuw maken .
Selecteer Maken.
Er wordt een pagina met het bericht Implementatie uitgevoerd . Zodra de implementatie is voltooid, ziet u het bericht: Uw implementatie is voltooid.
Wanneer u naar het eindpunt van de container-app bladert, ontvangt
ERR_CONNECTION_CLOSED
u dat omdat uw container-app-omgeving openbare toegang heeft uitgeschakeld. In plaats daarvan opent u uw container-app met behulp van uw privé-eindpunt.
Vereisten
Azure-account met een actief abonnement.
- Als u geen account hebt, kunt u er gratis een maken.
De nieuwste versie van de Azure CLI. Voer de volgende opdracht uit om ervoor te zorgen dat u de nieuwste versie uitvoert.
az upgrade
De nieuwste versie van de Azure Container Apps-extensie voor de Azure CLI. Voer de volgende opdracht uit om ervoor te zorgen dat u de nieuwste versie uitvoert.
az extension add --name containerapp --upgrade --allow-preview true
Notitie
Vanaf mei 2024 schakelen Azure CLI-extensies standaard geen preview-functies meer in. Als u toegang wilt krijgen tot de preview-functies van Container Apps, installeert u de Container Apps-extensie met
--allow-preview true
.
Zie quickstart: Uw eerste container-app implementeren met containerapp up voor meer informatie over vereisten en installatie.
Omgevingsvariabelen instellen
Stel de volgende omgevingsvariabelen in.
RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
VNET_NAME="my-vnet"
SUBNET_NAME="my-subnet"
PRIVATE_ENDPOINT="my-private-endpoint"
PRIVATE_ENDPOINT_CONNECTION="my-private-endpoint-connection"
PRIVATE_DNS_ZONE="privatelink.${LOCATION}.azurecontainerapps.io"
DNS_LINK="my-dns-link"
Maak een Azure-resourcegroep
Maak een resourcegroep om de services te ordenen die betrekking hebben op de implementatie van uw container-app.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Een virtueel netwerk maken
Een virtueel Azure-netwerk (VNet) maken. U kunt een bestaand VNet gebruiken, maar privé-eindpunten worden alleen ondersteund door omgevingen met workloadprofielen. Hiervoor is een subnet met een minimaal CIDR-bereik van
/27
of groter vereist. Zie het overzicht van de netwerkarchitectuur voor meer informatie over de grootte van subnetten.az network vnet create \ --resource-group $RESOURCE_GROUP \ --name $VNET_NAME \ --location $LOCATION \ --address-prefix 10.0.0.0/16
Maak een subnet dat u aan het VNet wilt koppelen en het privé-eindpunt wilt bevatten.
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 10.0.0.0/21
Haal de subnet-id op. U gebruikt dit om het privé-eindpunt te maken.
SUBNET_ID=$(az network vnet subnet show \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --query "id" \ --output tsv)
Een omgeving maken
Maak de Container Apps-omgeving. Privé-eindpunten worden alleen ondersteund door omgevingen met workloadprofielen. Dit is het standaardtype voor nieuwe omgevingen.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Haal de omgevings-id op. U gebruikt dit om de omgeving te configureren.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Schakel openbare netwerktoegang voor de omgeving uit. Dit is nodig om privé-eindpunten in te schakelen.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Een privé-eindpunt maken
Maak het privé-eindpunt in de omgeving en het subnet dat u eerder hebt gemaakt.
az network private-endpoint create \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--name $PRIVATE_ENDPOINT \
--subnet $SUBNET_ID \
--private-connection-resource-id $ENVIRONMENT_ID \
--connection-name $PRIVATE_ENDPOINT_CONNECTION \
--group-id managedEnvironments
Privé-DNS-zone configureren
Haal het IP-adres van het privé-eindpunt op. U gebruikt dit om een DNS-record toe te voegen aan uw privé-DNS-zone.
PRIVATE_ENDPOINT_IP_ADDRESS=$(az network private-endpoint show \ --name $PRIVATE_ENDPOINT \ --resource-group $RESOURCE_GROUP \ --query 'customDnsConfigs[0].ipAddresses[0]' \ --output tsv)
Haal het standaarddomein van de omgeving op. U gebruikt dit om een DNS-record toe te voegen aan uw privé-DNS-zone.
DNS_RECORD_NAME=$(az containerapp env show \ --id $ENVIRONMENT_ID \ --query 'properties.defaultDomain' \ --output tsv | sed 's/\..*//')
Maak een privé-DNS-zone.
az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONE
Maak een koppeling tussen uw VNet en uw privé-DNS-zone.
az network private-dns link vnet create \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --name $DNS_LINK \ --virtual-network $VNET_NAME \ --registration-enabled false
Voeg een record voor uw privé-eindpunt toe aan uw privé-DNS-zone.
az network private-dns record-set a add-record \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --record-set-name $DNS_RECORD_NAME \ --ipv4-address $PRIVATE_ENDPOINT_IP_ADDRESS
Een container-app implementeren
Implementeer een container-app in uw omgeving. Deze container-app maakt gewoon gebruik van de quickstart-installatiekopieën.
Wanneer u naar het eindpunt van de container-app bladert, ontvangt ERR_CONNECTION_CLOSED
u dat omdat uw container-app-omgeving openbare toegang heeft uitgeschakeld. In plaats daarvan opent u uw container-app met behulp van uw privé-eindpunt.
az containerapp up \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external \
--query properties.configuration.ingress.fqdn
De privé-eindpuntverbinding controleren
In deze sectie maakt u een virtuele machine die is gekoppeld aan uw VNet, zodat u toegang hebt tot de container-app die u hebt gedefinieerd met behulp van uw privé-eindpunt.
Een virtuele machine (VM) maken
Meld u eerst aan bij Azure Portal.
Zoek naar virtuele machines in de bovenste zoekbalk.
Selecteer Virtuele machines in de zoekresultaten.
Selecteer Maken.
Voer op de pagina Een virtuele machine maken op het tabblad Basisbeginselen de volgende waarden in.
Instelling Actie Abonnement Selecteer uw Azure-abonnement. Resourcegroep Selecteer mijn container-apps. Virtual machine name Voer azurevm in. Regio Selecteer VS - centraal. Beschikbaarheidsopties Selecteer Geen infrastructuurredundantie vereist. Beveiligingstype Selecteer Standaard. Afbeelding Selecteer Windows Server 2022 Datacenter : Azure Edition - x64 Gen2. Username Voer azureuser in. Wachtwoord Voer een wachtwoord in. Wachtwoord bevestigen Voer het wachtwoord nogmaals in. Openbare poorten voor inkomend verkeer Selecteer Geen. Voer op het tabblad Netwerken de volgende waarden in.
Instelling Actie Virtueel netwerk Selecteer mijn privé-eindpunt-vnet. Subnet Selecteer my-private-endpoint-vnet-subnet (10.0.0.0/23). Openbare IP Selecteer Geen. NIC-netwerkbeveiligingsgroep Selecteer Geavanceerd. Selecteer Controleren + maken.
Selecteer Maken.
Omgevingsvariabelen instellen
Stel de volgende omgevingsvariabelen in.
VM_NAME="azurevm"
VM_ADMIN_USERNAME="azureuser"
Een virtuele machine (VM) maken
Voer de volgende opdracht uit.
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image Win2022Datacenter \
--public-ip-address "" \
--vnet-name $VNET_NAME \
--subnet $SUBNET_NAME \
--admin-username $VM_ADMIN_USERNAME
Nadat u deze opdracht hebt uitgevoerd, wordt u gevraagd om een beheerderswachtwoord voor uw virtuele machine.
De gebruikersnaam van de beheerder moet tussen de 1 en 20 tekens lang zijn.
Het beheerderswachtwoord heeft de volgende vereisten:
- Moet tussen de 12 en 123 tekens lang zijn.
- Moet 3 van het volgende hebben: 1 kleine letter, 1 hoofdletter, 1 cijfer en 1 speciaal teken.
Test de verbinding
Meld u eerst aan bij Azure Portal.
Zoek naar de virtuele machine die u in de bovenste zoekbalk hebt gemaakt en selecteer deze in de zoekresultaten.
Selecteer Verbinding maken op de pagina Overzicht voor de VIRTUELE machine en selecteer vervolgens Verbinding maken via Bastion.
Selecteer Bastion implementeren op de pagina Bastion.
Stel gebruikersnaam en VM-wachtwoord in op de gebruikersnaam en het wachtwoord die u hebt gebruikt bij het maken van de virtuele machine.
Selecteer Verbinding maken.
Nadat u verbinding hebt gemaakt, voert u PowerShell uit op de virtuele machine.
Voer in PowerShell de volgende opdracht uit. Vervang de <TIJDELIJKE AANDUIDINGEN> door uw waarden.
nslookup <CONTAINER_APP_ENDPOINT>
De uitvoer is vergelijkbaar met het volgende voorbeeld, waarbij uw waarden de <TIJDELIJKE AANDUIDINGen> vervangen.
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: <ENVIRONMENT_DEFAULT_DOMAIN>.privatelink.<LOCATION>.azurecontainerapps.io Address: 10.0.0.4 Aliases: <CONTAINER_APP_ENDPOINT>
Open een browser in de virtuele machine.
Blader naar het eindpunt van de container-app. U ziet de uitvoer voor de installatiekopieën van de quickstart-container-app.
Resources opschonen
Als u deze toepassing niet meer gaat gebruiken, kunt u de resourcegroep mijn-container-apps verwijderen. Hiermee verwijdert u het Azure Container Apps-exemplaar en alle bijbehorende services.
Let op
Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als resources buiten het bereik van deze handleiding aanwezig zijn in de opgegeven resourcegroep, worden ze ook verwijderd.
az group delete --name $RESOURCE_GROUP