Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
- CLI do Azure. Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure para executar os comandos neste artigo. Para usá-lo localmente, a CLI do Azure versão 2.46.0 ou posterior é necessária. Para confirmar a versão da CLI do Azure, execute
az --version. Para instalar ou atualizar, confira Instalar a CLI do Azure. - Uma instância do ACR existente. Se você ainda não tiver um, use nosso início rápido para criar um registro de contêiner.
- Um Key Vault existente para criar e armazenar credenciais.
- Permissões para definir e recuperar segredos do seu Key Vault.
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.
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/passwordsecretExecute
az acr credential set updatepara 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/newsecretnameExecute 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.
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 MyDockerHubCredSetPara atualizar as credenciais na regra de cache, execute
az acr cache update:az acr cache update -r MyRegistry -n MyRule -c NewCredSetSe você precisar remover as credenciais, execute
az acr cache update -r MyRegistry -n MyRule --remove-cred-set.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.
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 MyRegistryAnote o valor da ID principal, pois você precisará dele na etapa 3.
Mostrar propriedades do Key Vault para obter seu identificador de recurso:
az keyvault show --name MyKeyVaultName --resource-group MyResouceGroupVocê precisará desse valor de ID de recurso para a próxima etapa.
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.
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 MyRegistryAnote o valor da ID principal, pois você precisará dele na próxima etapa.
Execute o comando
az keyvault set-policypara 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.
Para excluir a regra de cache, execute
az acr cache delete:az acr cache delete -r MyRegistry -n MyRulePara excluir as credenciais, execute
az acr credential-set delete:az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
Próximas etapas
- Saiba mais sobre a solução de problemas de cache de artefato.
- Saiba como habilitar o cache de artefatos usando o portal do Azure.