Delen via


Cache van artefacten inschakelen in uw Azure Container Registry met Azure CLI

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

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.

  1. 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/passwordsecret
    
  2. Voer az acr credential set update uit 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/newsecretname
    
  3. Voer 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.

  1. 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 MyDockerHubCredSet
    
  2. Als 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 NewCredSet
    

    Als u de inloggegevens wilt verwijderen, voert u az acr cache update -r MyRegistry -n MyRule --remove-cred-set uit.

  3. 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.

  1. Haal de principal-id op van de systeemidentiteit die wordt gebruikt voor toegang tot Key Vault:

    az acr credential-set show --name MyCredentialSet --registry MyRegistry 
    

    Noteer de principal-id-waarde, omdat u deze in stap 3 nodig hebt.

  2. Eigenschappen van de Key Vault weergeven om de resource-id op te halen:

    az keyvault show --name MyKeyVaultName --resource-group MyResouceGroup
    

    U hebt deze resource-id-waarde nodig voor de volgende stap.

  3. 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.

  1. Haal de principal-id op van de systeemidentiteit die wordt gebruikt voor toegang tot Key Vault:

    az acr credential-set show --name CredentialSet --registry MyRegistry
    

    Noteer de principal-id-waarde, omdat u deze in de volgende stap nodig hebt.

  2. Voer de az keyvault set-policy opdracht 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.

  1. Als u de cacheregel wilt verwijderen, voert u het volgende uit az acr cache delete:

    az acr cache delete -r MyRegistry -n MyRule
    
  2. Als 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