Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u Azure CLI gebruikt om de cachefunctie voor artefacten in te schakelen in uw Azure Container Registry (ACR) met of zonder verificatie.
Naast de vereisten die hier worden vermeld, hebt u een Azure-account met een actief abonnement nodig. Gratis een account maken
Vereiste voorwaarden
- Azure CLI. U kunt de Azure Cloud Shell of een lokale installatie van Azure CLI gebruiken om de opdrachten in dit artikel uit te voeren. Als u deze lokaal wilt gebruiken, is Azure CLI versie 2.46.0 of hoger vereist. Voer uit
az --versionom uw Azure CLI-versie te bevestigen. Voor het installeren of upgraden, zie Azure CLI installeren. - Een bestaand ACR-exemplaar. Als u nog geen containerregister hebt, gebruikt u onze quickstart om een nieuw containerregister te maken.
- Een bestaande sleutelkluis voor het maken en opslaan van referenties.
- Machtigingen voor het instellen en ophalen van geheimen uit uw Key Vault.
In dit artikel gebruiken we een voorbeeld van een ACR-exemplaar met de naam MyRegistry.
De inloggegevens maken
Voordat u de referenties configureert, moet u ervoor zorgen dat u geheimen kunt maken en opslaan in Azure Key Vault en geheimen kunt ophalen uit De Sleutelkluis.
Uitvoeren
az acr credential set create:az acr credential-set create -r MyRegistry \ -n MyDockerHubCredSet \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecretVoer
az acr credential set updateuit om de geheime ID van de gebruikersnaam of het wachtwoord in Key Vault bij te werken voor de inloggegevensset:az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretnameVoer az acr credential-set show uit om referenties weer te geven:
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
Een cacheregel maken
Maak en configureer vervolgens de cacheregel waarmee artefacten uit de opslagplaats in uw cache worden opgehaald.
Als u een nieuwe cacheregel wilt maken, voert u het volgende uit
az acr cache create:az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSetAls u referenties voor de cacheregel wilt bijwerken, voert u het volgende uit
az acr cache update:az acr cache update -r MyRegistry -n MyRule -c NewCredSetAls u de inloggegevens wilt verwijderen, voert u
az acr cache update -r MyRegistry -n MyRule --remove-cred-setuit.Als u cacheregels wilt weergeven, voert u het volgende uit
az acr cache show:az acr cache show -r MyRegistry -n MyRule
Hint
Als u een cacheregel wilt maken zonder referenties te gebruiken, gebruikt u dezelfde opdracht zonder opgegeven referenties. Bijvoorbeeld: az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Voor sommige bronnen, zoals Docker Hub, zijn inloggegevens nodig om een cache-regel te maken.
Machtigingen toewijzen aan Key Vault met Azure RBAC
U kunt Azure RBAC gebruiken om de juiste machtigingen toe te wijzen aan gebruikers, zodat ze toegang hebben tot Azure Key Vault.
De Microsoft.KeyVault/vaults/secrets/getSecret/action machtiging is vereist voor toegang tot de Key Vault. De ingebouwde rol Key Vault Secrets User Azure wordt doorgaans verleend, omdat dit de minst bevoorrechte rol is die deze actie omvat. U kunt ook een aangepaste rol maken die die machtiging bevat.
De stappen die worden gebruikt, variëren afhankelijk van of u Azure CLI of Bash gebruikt.
Haal de principal-id op van de systeemidentiteit die wordt gebruikt voor toegang tot Key Vault:
az acr credential-set show --name MyCredentialSet --registry MyRegistryNoteer de principal-id-waarde, omdat u deze in stap 3 nodig hebt.
Eigenschappen van de Key Vault weergeven om de resource-id op te halen:
az keyvault show --name MyKeyVaultName --resource-group MyResouceGroupU hebt deze resource-id-waarde nodig voor de volgende stap.
Wijs de rol Key Vault Secrets Gebruiker toe aan de systeemidentiteit van de verificatieset.
az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID
Hint
Met behulp van de resource-id van Key Vault verleent u toegang tot alle geheimen in de Key Vault. Als u wilt, kunt u alleen toegang verlenen tot de gebruikersnaam- en wachtwoordgeheimen. Voer hiervoor in plaats van de opdracht uit stap 2 de volgende opdrachten uit om alleen de geheimen voor gebruikersnaam en wachtwoord op te halen:
az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName
Voer vervolgens stap 3 twee keer uit, waarbij u KeyVaultResourceID eerst de id van het gebruikersnaamgeheim vervangt en vervolgens door de id van het wachtwoordgeheim.
Machtigingen toewijzen aan Key Vault met toegangsbeleid
U kunt ook toegangsbeleid gebruiken om machtigingen toe te wijzen.
Haal de principal-id op van de systeemidentiteit die wordt gebruikt voor toegang tot Key Vault:
az acr credential-set show --name CredentialSet --registry MyRegistryNoteer de principal-id-waarde, omdat u deze in de volgende stap nodig hebt.
Voer de
az keyvault set-policyopdracht uit om toegang tot de Key Vault toe te wijzen voordat u de afbeelding ophaalt. Als u bijvoorbeeld machtigingen wilt toewijzen voor de referenties voor toegang tot het KeyVault-geheim:az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
Uw afbeelding ophalen
Als u een installatiekopie uit uw cache wilt ophalen, gebruikt u de Docker-opdracht en geeft u de naam van de registeraanmeldingsserver, de naam van de opslagplaats en de gewenste tag op. Als u bijvoorbeeld een image uit de opslagplaats hello-world wilt ophalen met de gewenste tag latest voor de registerserver myregistry.azurecr.io, voert u het volgende uit:
docker pull myregistry.azurecr.io/hello-world:latest
De hulpbronnen opschonen
Wanneer u deze niet meer nodig hebt, verwijdert u de cacheregel en referenties die u hebt gemaakt.
Als u de cacheregel wilt verwijderen, voert u het volgende uit
az acr cache delete:az acr cache delete -r MyRegistry -n MyRuleAls u de referenties wilt verwijderen, voert u het volgende uit
az acr credential-set delete:az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
Volgende stappen
- Meer informatie over het oplossen van problemen met het opslaan van artefacten in cache.
- Meer informatie over het inschakelen van artefactcache met behulp van Azure Portal.