Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du använder Azure CLI för att aktivera funktionen för artefaktcache i ditt Azure Container Registry (ACR) med eller utan autentisering.
Förutom de krav som anges här behöver du ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
Förutsättningar
- Azure CLI. Du kan använda Azure Cloud Shell eller en lokal installation av Azure CLI för att köra kommandona i den här artikeln. Om du vill använda den lokalt krävs Azure CLI version 2.46.0 eller senare. Bekräfta din Azure CLI-version genom att köra
az --version. Information om hur du installerar eller uppgraderar finns i Installera Azure CLI. - En befintlig ACR-instans. Om du inte redan har ett använder du vår snabbstart för att skapa ett nytt containerregister.
- Ett befintligt Key Vault för att skapa och lagra autentiseringsuppgifter.
- Behörigheter för att ange och hämta hemligheter från ditt Key Vault.
I den här artikeln använder vi ett exempel på en ACR-instans med namnet MyRegistry.
Skapa autentiseringsuppgifterna
Innan du konfigurerar autentiseringsuppgifterna kontrollerar du att du kan skapa och lagra hemligheter i Azure Key Vault och hämta hemligheter från Key Vault.
Kör
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/passwordsecretKör
az acr credential set updateför att uppdatera användarnamnet eller lösenordets hemlighets-ID i Key Vault i autentiseringsuppsättningen:az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretnameKör az acr credential-set show för att visa autentiseringsuppgifter:
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
Skapa en cacheregel
Skapa och konfigurera sedan cacheregeln som hämtar artefakter från lagringsplatsen till din cache.
Om du vill skapa en ny cacheregel kör du
az acr cache create:az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSetOm du vill uppdatera autentiseringsuppgifterna för cacheregeln kör du
az acr cache update:az acr cache update -r MyRegistry -n MyRule -c NewCredSetOm du behöver ta bort autentiseringsuppgifterna kör du
az acr cache update -r MyRegistry -n MyRule --remove-cred-set.Om du vill visa cacheregler kör du
az acr cache show:az acr cache show -r MyRegistry -n MyRule
Tips/Råd
Om du vill skapa en cacheregel utan att använda autentiseringsuppgifter använder du samma kommando utan angivna autentiseringsuppgifter. Till exempel az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. För vissa källor, till exempel Docker Hub, krävs autentiseringsuppgifter för att skapa en cacheregel.
Tilldela behörigheter till Key Vault med Azure RBAC
Du kan använda Azure RBAC för att tilldela lämpliga behörigheter till användare så att de kan komma åt Azure Key Vault.
Behörigheten Microsoft.KeyVault/vaults/secrets/getSecret/action krävs för att få åtkomst till Key Vault. Den inbyggda Azure-rollen Key Vault Secrets User beviljas vanligtvis eftersom det är den minst privilegierade rollen som inkluderar denna åtgärd. Alternativt kan du skapa en anpassad roll som innehåller den behörigheten.
De steg som används varierar beroende på om du använder Azure CLI eller Bash.
Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault:
az acr credential-set show --name MyCredentialSet --registry MyRegistryAnteckna värdet för huvud-ID eftersom du behöver det i steg 3.
Visa egenskaper för Key Vault för att hämta dess resurs-ID:
az keyvault show --name MyKeyVaultName --resource-group MyResouceGroupDu behöver det här resurs-ID-värdet för nästa steg.
Tilldela rollen Key Vault Secrets User till systemidentiteten för autentiseringsuppsättningen:
az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID
Tips/Råd
Med hjälp av Key Vaults resurs-ID får du åtkomst till alla hemligheter i Key Vault. Om du vill kan du endast bevilja åtkomst till användarnamn och lösenordshemligheter. Om du vill göra det kör du följande kommandon i stället för kommandot från steg 2 för att hämta endast användarnamn- och lösenordshemligheterna:
az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName
Utför sedan steg 3 två gånger och ersätt KeyVaultResourceID först med ID:t för användarnamnshemligheten och sedan med ID:t för lösenordshemligheten.
Tilldela behörigheter till Key Vault med åtkomstprinciper
Alternativt kan du använda åtkomstprinciper för att tilldela behörigheter.
Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault:
az acr credential-set show --name CredentialSet --registry MyRegistryAnteckna huvud-ID-värdet eftersom du behöver det i nästa steg.
az keyvault set-policyKör kommandot för att tilldela åtkomst till Key Vault innan du hämtar avbildningen. Om du till exempel vill tilldela behörigheter för autentiseringsuppgifterna för åtkomst till KeyVault-hemligheten:az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
Dra din bild
Om du vill hämta en avbildning från cacheminnet använder du Docker-kommandot och anger namnet på registerinloggningsservern, lagringsplatsens namn och önskad tagg. Om du till exempel vill hämta en avbildning från lagringsplatsen hello-world med önskad tagg latest för registerinloggningsservern myregistry.azurecr.iokör du:
docker pull myregistry.azurecr.io/hello-world:latest
Rensa resurser
När den inte längre behövs tar du bort cacheregeln och autentiseringsuppgifterna som du skapade.
Om du vill ta bort cacheregeln kör du
az acr cache delete:az acr cache delete -r MyRegistry -n MyRuleOm du vill ta bort autentiseringsuppgifterna kör du
az acr credential-set delete:az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
Nästa steg
- Läs mer om felsökning av problem med cachelagring av artefakter.
- Lär dig hur du aktiverar artefaktcache med hjälp av Azure-portalen.