Funções e permissões do Registro de Contêiner do Azure
O serviço de Registro de Contêiner do Azure dá suporte a um conjunto de funções internas do Azure que fornecem níveis diferentes de permissões para um registro de contêiner do Azure. Use o RBAC do Azure (controle de acesso baseado em função do Azure) 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 efetuar pull ou enviar por push imagens de contêiner. Você também pode definir funções personalizadas com permissões refinadas para um registro para operações diferentes.
Função/Permissão | Acessar o Resource Manager | Criar/excluir registro | Enviar uma imagem por push | Pull de imagem | Excluir dados de imagem | Alterar políticas | Imagens de entrada |
---|---|---|---|---|---|---|---|
Proprietário | X | X | X | X | X | X | |
Colaborador | X | X | X | X | X | X | |
Leitor | X | X | |||||
AcrPush | X | X | |||||
AcrPull | X | ||||||
AcrDelete | X | ||||||
AcrImageSigner | X |
Atribuir funções
Confira Etapas para adicionar uma atribuição de função para 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. Você pode usar o portal do Azure, a CLI do Azure, Azure PowerShell ou outras ferramentas do Azure.
Ao criar uma entidade de serviço, você também configura seu acesso e as permissões para recursos do Azure, como um registro de contêiner. Para obter um exemplo de script usando a CLI do Azure, confira Autenticação do Registro de Contêiner do Azure com entidades de serviço.
Diferenciar usuários e serviços
Qualquer permissão de tempo é aplicada, 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 seres humanos e serviços sem periféricos.
Soluções CI/CD
Ao automatizar docker build
comandos de soluções CI/CD, você precisa de docker push
recursos. Para esses cenários de serviço sem periféricos, recomendamos atribuir a função AcrPush. Essa função, ao contrário da função mais ampla Colaborador, impede que a conta execute utras operações de registro ou acesse o Azure Resource Manager.
Nós de host do contêiner
Da mesma forma, nós que executam seus contêineres precisam da função AcrPull, mas não devem exibir os recursos de Leitor.
Extensão do Visual Studio Code Docker
Para ferramentas como o Visual Studio Code extensão Docker, é necessário acesso de provedor de recursos adicionais para listar os registros de contêiner do Azure disponíveis. Nesse caso, forneça aos usuários acesso para a função de Leitor ou Colaborador. Essas funções permitem docker pull
, docker push
, az acr list
, az acr build
e outros recursos.
Acessar o Resource Manager
O Acesso ao Azure Resource Manager é necessário para o portal do Azure e o gerenciamento de registro com o CLI do Azure. Por exemplo, para obter uma lista de registros usando o az acr list
comando, você precisa dessa permissão definida.
Criar e excluir registros
A capacidade de criar e excluir registros de contêiner do Azure.
Enviar uma imagem por push
A capacidade de docker push
uma imagem, ou enviar por push outro artefato com suporte para um registro, como um gráfico do Helm. Requer autenticação com o registro usando a identidade autorizada.
Pull de imagem
A capacidade de docker pull
uma imagem de não quarentena, ou de enviar por push outro artefato com suporte de um registro, como um gráfico do Helm. 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 com suporte, como gráficos do Helm, de um registro.
Alterar políticas
A capacidade de configurar políticas em um registro. Políticas incluem a limpeza de imagem, habilitando a quarentena e assinatura de imagem.
Imagens de entrada
A capacidade de imagens de entrada normalmente é atribuída a um processo automatizado, que usaria uma entidade de serviço. Normalmente, essa permissão é combinada com imagem por 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
Assim 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, confira a lista de ações do Microsoft.ContainerRegistry, examine as ações permitidas das funções de ACR internas ou execute o seguinte comando:
az provider operation show --namespace Microsoft.ContainerRegistry
Para definir uma função personalizada, confira Etapas para criar uma função personalizada.
Observação
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 a fim de conceder acesso a todas as ações correspondentes. Em um locatário sem um link privado do 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 a importação de 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 como você gerencia atribuições de função para funções internas do Azure.
Próximas etapas
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 opções de autenticação para Registro de Contêiner do Azure.
Saiba como habilitar permissões no escopo do repositório em um registro de contêiner.