Condividi tramite


Abilitare la cache degli artefatti in Azure Container Registry con Azure CLI

Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per abilitare la funzionalità cache degli artefatti nel Registro Azure Container con o senza autenticazione.

Oltre ai prerequisiti elencati qui, è necessario un account Azure con una sottoscrizione attiva. Creare un account gratuito.

Prerequisiti

In questo articolo viene usata un'istanza di Azure Container Registry di esempio denominata MyRegistry.

Creare le credenziali

Prima di configurare le credenziali, assicurarsi di poter creare e archiviare segreti in Azure Key Vault e di recuperare i segreti da Azure Key Vault.

  1. Eseguire 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. Eseguire az acr credential set update per aggiornare l'ID segreto di Key Vault con nome utente o password nel set di credenziali:

    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Esegui az acr credential-set show per visualizzare le credenziali:

    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Creare una regola della cache

Successivamente, creare e configurare la regola della cache che esegue il pull degli artefatti dal repository nella cache.

  1. Per creare una nuova regola della cache, eseguire az acr cache create:

    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Per aggiornare le credenziali nella regola della cache, eseguire az acr cache update:

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

    Se è necessario rimuovere le credenziali, eseguire az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

  3. Per visualizzare le regole della cache, eseguire az acr cache show:

     az acr cache show -r MyRegistry -n MyRule
    

Suggerimento

Per creare una regola della cache senza usare le credenziali, usare lo stesso comando senza credenziali specificate. Ad esempio: az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Per alcune origini, ad esempio Docker Hub, sono necessarie credenziali per creare una regola della cache.

Assegnare autorizzazioni a Key Vault con RBAC di Azure

È possibile usare il controllo degli accessi in base al ruolo di Azure per assegnare le autorizzazioni appropriate agli utenti in modo che possano accedere ad Azure Key Vault.

L'autorizzazione Microsoft.KeyVault/vaults/secrets/getSecret/action è necessaria per accedere al Key Vault. Il ruolo predefinito Key Vault Secrets User di Azure è generalmente assegnato, poiché è il ruolo che ha i privilegi minimi che include questa azione. In alternativa, è possibile creare un ruolo personalizzato che includa tale autorizzazione.

I passaggi usati variano a seconda che si usi l'interfaccia della riga di comando di Azure o Bash.

  1. Ottieni l'ID principale dell'identità di sistema in uso per accedere a Key Vault.

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

    Prendere nota del valore dell'ID principale, perché sarà necessario nel passaggio 3.

  2. Visualizzare le proprietà del Key Vault per ottenere l'ID della risorsa:

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

    Questo valore ID risorsa sarà necessario per il passaggio successivo.

  3. Assegnare il ruolo Utente segreti Key Vault all'identità di sistema del set di credenziali:

    az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID 
    
    

Suggerimento

L'uso dell'ID della risorsa dell'insieme di credenziali delle chiavi concede l'accesso a tutti i segreti nell'insieme di credenziali delle chiavi. Se si preferisce, è possibile concedere l'accesso solo ai segreti di nome utente e password. A tale scopo, invece del comando del passaggio 2, eseguire i comandi seguenti per recuperare solo i segreti nome utente e password:

az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName

Eseguire quindi il passaggio 3 due volte, sostituendo KeyVaultResourceID prima con l'ID del segreto nome utente, quindi con l'ID del segreto password.

Assegnare autorizzazioni a Key Vault con criteri di accesso

In alternativa, è possibile usare i criteri di accesso per assegnare le autorizzazioni.

  1. Ottieni l'ID principale dell'identità di sistema in uso per accedere a Key Vault.

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

    Prendere nota del valore dell'ID principale, perché sarà necessario nel passaggio successivo.

  2. Eseguire il comando az keyvault set-policy per assegnare l'accesso al Key Vault prima di eseguire il pull dell'immagine. Ad esempio, per assegnare le autorizzazioni per le credenziali per accedere al segreto KeyVault:

    az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
    

Eseguire il pull dell'immagine

Per eseguire il pull di un'immagine dalla cache, usare il comando Docker e specificare il nome del server di accesso del Registro di sistema, il nome del repository e il relativo tag desiderato. Ad esempio, per eseguire il pull di un'immagine dal repository hello-world con il tag latest desiderato per il server myregistry.azurecr.iodi accesso al Registro di sistema, eseguire:

 docker pull myregistry.azurecr.io/hello-world:latest

Pulire le risorse

Quando non è più necessario, eliminare la regola della cache e le credenziali create.

  1. Per eliminare la regola della cache, eseguire az acr cache delete:

    az acr cache delete -r MyRegistry -n MyRule
    
  2. Per eliminare le credenziali, eseguire az acr credential-set delete:

    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Passaggi successivi