Compartilhar via


Habilitar o cache de artefato no Registro de Contêiner do Azure com a CLI do Azure

Neste artigo, você aprenderá a usar a CLI do Azure para habilitar o recurso de cache de artefato no ACR (Registro de Contêiner do Azure) com ou sem autenticação.

Além dos pré-requisitos listados aqui, você precisa de uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.

Pré-requisitos

Neste artigo, usamos uma instância de ACR de exemplo chamada MyRegistry.

Criar as credenciais

Antes de configurar as Credenciais, você deve conseguir criar e armazenar segredos no Azure Key Vault e recuperar os segredos do Key Vault.

  1. Execute 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. Execute az acr credential set update para atualizar a ID do segredo do Key Vault de nome de usuário ou senha no conjunto de credenciais:

    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Execute az acr credential-set show para mostrar as credenciais:

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

Criar uma regra de cache

Em seguida, crie e configure a regra de cache que extrai artefatos do repositório para o cache.

  1. Para criar uma regra de cache, execute az acr cache create:

    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Para atualizar as credenciais na regra de cache, execute az acr cache update:

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

    Se você precisar remover as credenciais, execute az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

  3. Para mostrar as regras de cache, execute az acr cache show:

     az acr cache show -r MyRegistry -n MyRule
    

Dica

Para criar uma regra de cache sem usar credenciais, use o mesmo comando sem as credenciais especificadas. Por exemplo, az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Para algumas fontes, como o Docker Hub, as credenciais são necessárias para criar uma regra de cache.

Atribuir permissões ao Key Vault com o RBAC do Azure

Você pode usar o RBAC do Azure para atribuir as permissões apropriadas aos usuários para que eles possam acessar o Azure Key Vault.

A Microsoft.KeyVault/vaults/secrets/getSecret/action permissão é necessária para acessar o Key Vault. A função integrada Usuário de Segredos do Key Vault do Azure normalmente é concedida, pois é a função de menor privilégio que inclui essa ação. Como alternativa, você pode criar uma função personalizada que inclua essa permissão.

As etapas usadas variam dependendo se você está usando a CLI do Azure ou o Bash.

  1. Obtenha a ID da entidade de segurança da identidade do sistema em uso para acessar o Key Vault:

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

    Anote o valor da ID principal, pois você precisará dele na etapa 3.

  2. Mostrar propriedades do Key Vault para obter seu identificador de recurso:

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

    Você precisará desse valor de ID de recurso para a próxima etapa.

  3. Atribua a função Usuário de Segredos do Key Vault à identidade do sistema do conjunto de credenciais:

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

Dica

Usar o ID de recurso do Key Vault concede acesso a todos os segredos no Key Vault. Se preferir, você poderá conceder acesso apenas aos segredos de nome de usuário e senha. Para fazer isso, em vez do comando da etapa 2, execute os seguintes comandos para recuperar apenas os segredos de nome de usuário e senha:

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

Em seguida, execute a etapa 3 duas vezes, primeiro substituindo KeyVaultResourceID pela ID do segredo do nome de usuário e, em seguida, pela ID do segredo da senha.

Atribuir permissões ao Key Vault com políticas de acesso

Como alternativa, você pode usar políticas de acesso para atribuir permissões.

  1. Obtenha a ID da entidade de segurança da identidade do sistema em uso para acessar o Key Vault:

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

    Anote o valor da ID principal, pois você precisará dele na próxima etapa.

  2. Execute o comando az keyvault set-policy para atribuir o acesso ao Key Vault, antes de efetuar pull da imagem. Por exemplo, para atribuir permissões para as credenciais acessarem o segredo do Key Vault:

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

Efetuar pull da imagem

Para efetuar pull da imagem do cache, use o comando do Docker e forneça o nome do servidor de entrada do registro, o nome do repositório e sua marca desejada. Por exemplo, para efetuar pull da imagem do repositório hello-world com a marca desejada latest para um determinado servidor de entrada do registro myregistry.azurecr.io, execute:

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

Limpar os recursos

Quando não forem mais necessárias, exclua as credenciais e a regra de cache que você criou.

  1. Para excluir a regra de cache, execute az acr cache delete:

    az acr cache delete -r MyRegistry -n MyRule
    
  2. Para excluir as credenciais, execute az acr credential-set delete:

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

Próximas etapas