Dela via


Aktivera artefaktcache i Azure Container Registry med Azure CLI

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

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.

  1. 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/passwordsecret
    
  2. Kör az acr credential set update fö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/newsecretname
    
  3. Kö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.

  1. 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 MyDockerHubCredSet
    
  2. Om du vill uppdatera autentiseringsuppgifterna för cacheregeln kör du az acr cache update:

    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    

    Om du behöver ta bort autentiseringsuppgifterna kör du az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

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

  1. Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault:

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

    Anteckna värdet för huvud-ID eftersom du behöver det i steg 3.

  2. Visa egenskaper för Key Vault för att hämta dess resurs-ID:

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

    Du behöver det här resurs-ID-värdet för nästa steg.

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

  1. Hämta huvud-ID:t för systemidentiteten för åtkomst till Key Vault:

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

    Anteckna huvud-ID-värdet eftersom du behöver det i nästa steg.

  2. az keyvault set-policy Kö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.

  1. Om du vill ta bort cacheregeln kör du az acr cache delete:

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