Funções e permissões do Registro de Contêiner do Azure
O serviço Registro de Contêiner do Azure dá suporte a um conjunto de funções internas do Azure que fornecem diferentes níveis de permissões para um Registro de contêiner do Azure. Use o controle de acesso baseado em função do Azure (Azure RBAC) para atribuir permissões específicas a usuários, entidades de serviço ou outras identidades que precisam interagir com um registro, por exemplo, para extrair ou enviar imagens de contêiner. Você também pode definir funções personalizadas com permissões refinadas para um registro para diferentes operações.
Função/Permissão | Gestor de Recursos de Acesso | Criar/excluir registro | Enviar imagem | Puxar imagem | Excluir dados de imagem | Alterar políticas | Assinar imagens |
---|---|---|---|---|---|---|---|
Proprietário | X | X | X | X | X | X | |
Contribuinte | X | X | X | X | X | X | |
Leitor | X | X | |||||
AcrPush | X | X | |||||
AcrPull | X | ||||||
AcrDelete | X | ||||||
AcrImageSigner | X |
Atribuir funções
Consulte Etapas para adicionar uma atribuição de função para obter etapas de alto nível para adicionar uma atribuição de função a um usuário, grupo, entidade de serviço ou identidade gerenciada existente. Você pode usar o portal do Azure, a CLI do Azure, o Azure PowerShell ou outras ferramentas do Azure.
Ao criar uma entidade de serviço, você também configura seu acesso e permissões para recursos do Azure, como um registro de contêiner. Para obter um script de exemplo usando a CLI do Azure, consulte Autenticação do Registro de Contêiner do Azure com entidades de serviço.
Diferenciar usuários e serviços
Sempre que as permissões são aplicadas, uma prática recomendada é fornecer o conjunto mais limitado de permissões para uma pessoa, ou serviço, realizar uma tarefa. Os conjuntos de permissões a seguir representam um conjunto de recursos que podem ser usados por humanos e serviços sem cabeça.
Soluções CI/CD
Ao automatizar docker build
comandos de soluções de CI/CD, você precisa de docker push
recursos. Para esses cenários de serviço sem cabeça, recomendamos atribuir a função AcrPush . Essa função, ao contrário da função de Colaborador mais ampla, impede que a conta execute outras operações do Registro ou acesse o Gerenciador de Recursos do Azure.
Nós de host de contêiner
Da mesma forma, os nós que executam seus contêineres precisam da função AcrPull , mas não devem exigir recursos do Leitor .
Extensão do Visual Studio Code Docker
Para ferramentas como a extensão do Visual Studio Code Docker, é necessário acesso adicional ao provedor de recursos para listar os registros de contêiner do Azure disponíveis. Nesse caso, forneça aos usuários acesso à função de Leitor ou Colaborador . Essas funções permitem docker pull
, docker push
, az acr list
, az acr build
, e outros recursos.
Gestor de Recursos de Acesso
O acesso ao Azure Resource Manager é necessário para o portal do Azure e o gerenciamento do Registro com a CLI do Azure. Por exemplo, para obter uma lista de registros usando o az acr list
comando, você precisa desse conjunto de permissões.
Criar e excluir registro
A capacidade de criar e excluir registros de contêiner do Azure.
Enviar imagem
A capacidade de enviar docker push
uma imagem ou enviar outro artefato suportado , como um gráfico Helm, para um registro. Requer autenticação com o registro usando a identidade autorizada.
Puxar imagem
A capacidade de obter docker pull
uma imagem não em quarentena ou extrair outro artefato suportado , como um gráfico Helm, de um registro. Requer autenticação com o registro usando a identidade autorizada.
Excluir dados de imagem
A capacidade de excluir imagens de contêiner ou excluir outros artefatos suportados, como gráficos Helm, de um registro.
Alterar políticas
A capacidade de configurar políticas em um registro. As políticas incluem limpeza de imagens, habilitação da quarentena e assinatura de imagens.
Assinar imagens
A capacidade de assinar imagens, geralmente atribuídas a um processo automatizado, que usaria uma entidade de serviço. Essa permissão geralmente é combinada com a imagem push para permitir o envio de uma imagem confiável para um registro. Para obter detalhes, consulte Confiança de conteúdo no Registro de Contêiner do Azure.
Funções personalizadas
Como acontece com outros recursos do Azure, você pode criar funções personalizadas com permissões refinadas para o Registro de Contêiner do Azure. Em seguida, atribua as funções personalizadas a usuários, entidades de serviço ou outras identidades que precisam interagir com um registro.
Para determinar quais permissões aplicar a uma função personalizada, consulte a lista de ações Microsoft.ContainerRegistry, examine as ações permitidas das funções ACR internas ou execute o seguinte comando:
az provider operation show --namespace Microsoft.ContainerRegistry
Para definir uma função personalizada, consulte Etapas para criar uma função personalizada.
Nota
Em locatários configurados com o link privado do Azure Resource Manager, o Registro de Contêiner do Azure dá suporte a ações curinga, como Microsoft.ContainerRegistry/*/read
ou Microsoft.ContainerRegistry/registries/*/write
em funções personalizadas, concedendo acesso a todas as ações correspondentes. Em um locatário sem um link privado ARM, especifique todas as ações de registro necessárias individualmente em uma função personalizada.
Exemplo: função personalizada para importar imagens
Por exemplo, o JSON a seguir define as ações mínimas para uma função personalizada que permite importar imagens para um registro.
{
"assignableScopes": [
"/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
],
"description": "Can import images to registry",
"Name": "AcrImport",
"permissions": [
{
"actions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.ContainerRegistry/registries/pull/read",
"Microsoft.ContainerRegistry/registries/read",
"Microsoft.ContainerRegistry/registries/importImage/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleType": "CustomRole"
}
Para criar ou atualizar uma função personalizada usando a descrição JSON, use a CLI do Azure, o modelo do Azure Resource Manager, o Azure PowerShell ou outras ferramentas do Azure. Adicione ou remova atribuições de função para uma função personalizada da mesma forma que você gerencia atribuições de função para funções internas do Azure.
Próximos passos
Saiba mais sobre como atribuir funções do Azure a uma identidade do Azure usando o portal do Azure, a CLI do Azure, o Azure PowerShell ou outras ferramentas do Azure.
Saiba mais sobre as opções de autenticação para o Registro de Contêiner do Azure.
Saiba mais sobre como habilitar permissões com escopo de repositório em um registro de contêiner.