Azure Container Registry funções e permissões
O serviço Azure Container Registry suporta um conjunto de funções incorporadas do Azure que fornecem diferentes níveis de permissões para um registo de contentor do Azure. Utilize o controlo de acesso baseado em funções do Azure (RBAC do Azure) para atribuir permissões específicas a utilizadores, principais de serviço ou outras identidades que precisem de interagir com um registo, por exemplo, para extrair ou emitir imagens de contentor. Também pode definir funções personalizadas com permissões detalhadas para um registo para diferentes operações.
Função/Permissão | Access Resource Manager | Criar/eliminar registo | Enviar imagem | Imagem pull | Eliminar 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
Veja Passos para adicionar uma atribuição de função para passos de alto nível para adicionar uma atribuição de função a um utilizador, grupo, principal de serviço ou identidade gerida existente. Pode utilizar a portal do Azure, a CLI do Azure, Azure PowerShell ou outras ferramentas do Azure.
Ao criar um principal de serviço, também configura o respetivo acesso e permissões para recursos do Azure, como um registo de contentor. Para obter um script de exemplo com a CLI do Azure, veja Azure Container Registry autenticação com principais de serviço.
Diferenciar utilizadores e serviços
Sempre que forem aplicadas permissões, a melhor prática é fornecer o conjunto de permissões mais limitado para uma pessoa, ou serviço, para realizar uma tarefa. Os seguintes conjuntos de permissões representam um conjunto de capacidades que podem ser utilizadas por humanos e serviços sem cabeça.
Soluções CI/CD
Ao automatizar docker build
comandos de soluções CI/CD, precisa de docker push
capacidades. Para estes cenários de serviço sem cabeça, recomendamos que atribua a função AcrPush . Esta função, ao contrário da função contribuidor mais ampla, impede que a conta realize outras operações de registo ou aceda ao Azure Resource Manager.
Nós de anfitrião de contentores
Da mesma forma, os nós que executam os contentores precisam da função AcrPull , mas não devem exigir capacidades de Leitor .
Extensão do Docker do Visual Studio Code
Para ferramentas como a extensão do Docker do Visual Studio Code, é necessário acesso adicional ao fornecedor de recursos para listar os registos de contentores do Azure disponíveis. Neste caso, forneça aos seus utilizadores acesso à função Leitor ou Contribuidor . Estas funções permitem docker pull
, docker push
, az acr list
, az acr build
e outras capacidades.
Access Resource Manager
O acesso Resource Manager do Azure é necessário para a gestão de registos e portal do Azure com a CLI do Azure. Por exemplo, para obter uma lista de registos com o az acr list
comando, precisa deste conjunto de permissões.
Criar e eliminar o registo
A capacidade de criar e eliminar registos de contentores do Azure.
Enviar imagem
A capacidade de docker push
uma imagem ou enviar outro artefacto suportado , como um gráfico Helm, para um registo. Requer autenticação com o registo com a identidade autorizada.
Imagem pull
A capacidade de docker pull
uma imagem não colocada em quarentena ou de extrair outro artefacto suportado , como um gráfico Helm, de um registo. Requer autenticação com o registo com a identidade autorizada.
Eliminar dados de imagem
A capacidade de eliminar imagens de contentor ou eliminar outros artefactos suportados, como gráficos Helm, de um registo.
Alterar políticas
A capacidade de configurar políticas num registo. As políticas incluem a remoção de imagens, a ativação da quarentena e a assinatura de imagens.
Assinar imagens
A capacidade de assinar imagens, normalmente atribuídas a um processo automatizado, que utilizaria um principal de serviço. Normalmente, esta permissão é combinada com a imagem push para permitir enviar uma imagem fidedigna para um registo. Para obter detalhes, veja Confiança do conteúdo no Azure Container Registry.
Funções personalizadas
Tal como acontece com outros recursos do Azure, pode criar funções personalizadas com permissões detalhadas para Azure Container Registry. Em seguida, atribua as funções personalizadas a utilizadores, principais de serviço ou outras identidades que precisem de interagir com um registo.
Para determinar quais as permissões a aplicar a uma função personalizada, veja a lista de ações Microsoft.ContainerRegistry, reveja as ações permitidas das funções do ACR incorporadas ou execute o seguinte comando:
az provider operation show --namespace Microsoft.ContainerRegistry
Para definir uma função personalizada, veja Passos para criar uma função personalizada.
Nota
Nos inquilinos configurados com o Azure Resource Manager ligação privada, Azure Container Registry suporta ações universais, como Microsoft.ContainerRegistry/*/read
ou Microsoft.ContainerRegistry/registries/*/write
em funções personalizadas, concedendo acesso a todas as ações correspondentes. Num inquilino sem uma ligação privada arm, especifique todas as ações de registo necessárias individualmente numa função personalizada.
Exemplo: Função personalizada para importar imagens
Por exemplo, o JSON seguinte define as ações mínimas para uma função personalizada que permite importar imagens para um registo.
{
"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 com a descrição JSON, utilize a CLI do Azure, o modelo de Resource Manager do Azure, Azure PowerShell ou outras ferramentas do Azure. Adicione ou remova atribuições de funções para uma função personalizada da mesma forma que gere atribuições de funções para funções incorporadas do Azure.
Passos seguintes
Saiba mais sobre como atribuir funções do Azure a uma identidade do Azure com o portal do Azure, a CLI do Azure, Azure PowerShell ou outras ferramentas do Azure.
Saiba mais sobre as opções de autenticação para Azure Container Registry.
Saiba mais sobre como ativar permissões com âmbito de repositório num registo de contentor.