Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- CLI di Azure È possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure per eseguire i comandi in questo articolo. Per usarlo in locale, è necessaria l'interfaccia della riga di comando di Azure versione 2.46.0 o successiva. Per confermare la versione dell'interfaccia della riga di comando di Azure, eseguire
az --version. Per installare o eseguire l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Istanza di Registro Azure Container esistente. Se non ne hai già uno, usa la nostra guida rapida per creare un nuovo registro di container.
- Un Key Vault esistente per creare e archiviare le credenziali.
- Autorizzazioni per impostare e recuperare segreti dal tuo Key Vault.
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.
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/passwordsecretEseguire
az acr credential set updateper 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/newsecretnameEsegui 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.
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 MyDockerHubCredSetPer aggiornare le credenziali nella regola della cache, eseguire
az acr cache update:az acr cache update -r MyRegistry -n MyRule -c NewCredSetSe è necessario rimuovere le credenziali, eseguire
az acr cache update -r MyRegistry -n MyRule --remove-cred-set.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.
Ottieni l'ID principale dell'identità di sistema in uso per accedere a Key Vault.
az acr credential-set show --name MyCredentialSet --registry MyRegistryPrendere nota del valore dell'ID principale, perché sarà necessario nel passaggio 3.
Visualizzare le proprietà del Key Vault per ottenere l'ID della risorsa:
az keyvault show --name MyKeyVaultName --resource-group MyResouceGroupQuesto valore ID risorsa sarà necessario per il passaggio successivo.
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.
Ottieni l'ID principale dell'identità di sistema in uso per accedere a Key Vault.
az acr credential-set show --name CredentialSet --registry MyRegistryPrendere nota del valore dell'ID principale, perché sarà necessario nel passaggio successivo.
Eseguire il comando
az keyvault set-policyper 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.
Per eliminare la regola della cache, eseguire
az acr cache delete:az acr cache delete -r MyRegistry -n MyRulePer eliminare le credenziali, eseguire
az acr credential-set delete:az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
Passaggi successivi
- Informazioni sulla risoluzione dei problemi di memorizzazione nella cache degli artefatti.
- Informazioni su come abilitare la cache degli artefatti usando il portale di Azure.