Auditar a conformidade de registros de contêiner do Azure usando o Azure Policy

O Azure Policy é um serviço no Azure que você pode usar para criar, atribuir e gerenciar definições de política. Essas definições de política aplicam diferentes regras e efeitos sobre seus recursos para que esses recursos permaneçam em conformidade com seus padrões corporativos e contratos de nível de serviço.

Este artigo apresenta definições de política interna para o Registro de Contêiner do Azure. Use essas definições de política para auditar registros novos e existentes para fins de conformidade.

Não há cobrança pelo uso do Azure Policy.

Definições de políticas internas

As definições das políticas internas a seguir são específicas do Registro de Contêiner do Azure:

Nome
(Portal do Azure)
Descrição Efeito(s) Versão
(GitHub)
[Versão prévia]: [Versão prévia]: o Registro de Contêiner deve usar um ponto de extremidade de serviço de rede virtual Esta política audita os Registros de Contêiner que não estão configurados para usar um ponto de extremidade de serviço de rede virtual. Audit, desabilitado 1.0.0 – versão prévia
Configurar os registros de contêiner para desabilitar a autenticação anônima. Desabilite o pull anônimo para o registro, de modo que os dados não possam ser acessados por um usuário não autenticado. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Modificar, Desabilitado 1.0.0
Configure registros de contêiner para desabilitar a autenticação de token de audiência do ARM. Desabilite os tokens de audiência do ARM do Azure Active Directory para autenticação no registro. Somente tokens de audiência do ACR (Registro de Contêiner do Azure) serão usados para autenticação. Isso garantirá que somente tokens destinados ao uso no registro possam ser usados para autenticação. Desabilitar tokens de audiência do ARM não afeta a autenticação de tokens de acesso do usuário administrador ou com escopo. Saiba mais em: https://aka.ms/acr/authentication. Modificar, Desabilitado 1.0.0
Configurar registros de contêiner para desabilitar a conta de administrador local. Desabilite a conta de administrador do seu registro, de modo que o administrador local não possa acessá-lo. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Modificar, Desabilitado 1.0.1
Configurar Registros de Contêiner para desabilitar o acesso à rede pública Desabilite o acesso à rede pública para o seu recurso do Registro de Contêiner para que ele não possa ser acessado pela Internet pública. Isso pode reduzir os riscos de vazamento de dados. Saiba mais em https://aka.ms/acr/portal/public-network e https://aka.ms/acr/private-link. Modificar, Desabilitado 1.0.0
Configurar registros de contêiner para desabilitar o token de acesso no escopo do repositório. Desabilite os tokens de acesso no escopo do repositório para o registro, de modo que os repositórios não possam ser acessados pelos tokens. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Modificar, Desabilitado 1.0.0
Configurar Registros de Contêiner com pontos de extremidade privados Os pontos de extremidade privados conectam sua rede virtual aos serviços do Azure sem a necessidade de nenhum endereço IP público na origem nem no destino. Pelo mapeamento de pontos de extremidade privados para seus recursos de registro de contêiner Premium, você pode reduzir os riscos de vazamento de dados. Saiba mais em: https://aka.ms/privateendpoints e https://aka.ms/acr/private-link. DeployIfNotExists, desabilitado 1.0.0
Os registros de contêiner devem ser criptografados com uma chave gerenciada pelo cliente Use chaves gerenciadas pelo cliente para gerenciar a criptografia em repouso no conteúdo dos seus Registros. Por padrão, os dados são criptografados em repouso com chaves gerenciadas pelo serviço, mas as chaves gerenciadas pelo cliente normalmente são necessárias para atender aos padrões de conformidade regulatória. As chaves gerenciadas pelo cliente permitem que os dados sejam criptografados com uma chave do Azure Key Vault criada por você e de sua propriedade. Você tem total controle e responsabilidade pelo ciclo de vida da chave, incluindo rotação e gerenciamento. Saiba mais em https://aka.ms/acr/CMK. Audit, Deny, desabilitado 1.1.2
Os registros de contêiner devem ter a autenticação anônima desabilitada. Desabilite o pull anônimo para o registro, de modo que os dados não possam ser acessados por um usuário não autenticado. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Audit, Deny, desabilitado 1.0.0
Os registros de contêiner devem ter a autenticação de token de audiência do ARM desabilitada. Desabilite os tokens de audiência do ARM do Azure Active Directory para autenticação no registro. Somente tokens de audiência do ACR (Registro de Contêiner do Azure) serão usados para autenticação. Isso garantirá que somente tokens destinados ao uso no registro possam ser usados para autenticação. Desabilitar tokens de audiência do ARM não afeta a autenticação de tokens de acesso do usuário administrador ou com escopo. Saiba mais em: https://aka.ms/acr/authentication. Audit, Deny, desabilitado 1.0.0
As exportações dos registros de contêiner devem estar desabilitadas Desabilitar exportações melhora a segurança ao garantir que os dados de um registro sejam acessados exclusivamente pelo dataplane ("docker pull"). Os dados não podem ser movidos para fora do registro via "acr import" ou "acr transfer". Para desabilitar as exportações, é preciso desabilitar o acesso à rede pública. Saiba mais em: https://aka.ms/acr/export-policy. Audit, Deny, desabilitado 1.0.0
Os registros de contêiner devem ter a conta de administrador local desabilitada. Desabilite a conta de administrador do seu registro, de modo que o administrador local não possa acessá-lo. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Audit, Deny, desabilitado 1.0.1
Os registros de contêiner devem ter o token de acesso no escopo do repositório desabilitado. Desabilite os tokens de acesso no escopo do repositório para o registro, de modo que os repositórios não possam ser acessados pelos tokens. A desabilitação dos métodos de autenticação local (como usuário administrador, tokens de acesso no escopo do repositório e pull anônimo) aprimora a segurança, garantindo que os registros de contêiner exijam exclusivamente identidades do Azure Active Directory para autenticação. Saiba mais em: https://aka.ms/acr/authentication. Audit, Deny, desabilitado 1.0.0
Os Registros de Contêiner devem ter SKUs que dão suporte a Links Privados O Link Privado do Azure permite que você conecte sua rede virtual aos serviços do Azure sem um endereço IP público na origem ou no destino. A plataforma de link privado manipula a conectividade entre o consumidor e os serviços na rede de backbone do Azure. Pelo mapeamento de pontos de extremidade privados para seus Registros de Contêiner, em vez de todo o serviço, os riscos de vazamento de dados são reduzidos. Saiba mais em: https://aka.ms/acr/private-link. Audit, Deny, desabilitado 1.0.0
Os registros de contêiner não devem permitir acesso irrestrito à rede Por padrão, os registros de contêiner do Azure aceitam conexões pela Internet de hosts em qualquer rede. Para proteger seus Registros contra possíveis ameaças, permita o acesso somente de pontos de extremidade privados, endereços IP públicos ou intervalos de endereços específicos. Se o Registro não tiver regras de rede configuradas, ele será exibido nos recursos não íntegros. Saiba mais sobre as regras de rede do Registro de Contêiner aqui: https://aka.ms/acr/privatelink,https://aka.ms/acr/portal/public-network e https://aka.ms/acr/vnet. Audit, Deny, desabilitado 2.0.0
Os registros de contêiner devem usar um link privado O Link Privado do Azure permite que você conecte sua rede virtual aos serviços do Azure sem um endereço IP público na origem ou no destino. A plataforma de link privado manipula a conectividade entre o consumidor e os serviços pela rede de backbone do Azure. Por meio do mapeamento de pontos de extremidade privados para seus registros de contêiner, em vez de todo o serviço, você também estará protegido contra riscos de vazamento de dados. Saiba mais em: https://aka.ms/acr/private-link. Audit, desabilitado 1.0.1
As imagens do registro de contêiner devem ter as conclusões de vulnerabilidade resolvidas A avaliação de vulnerabilidade de imagem de contêiner examina o Registro em busca de vulnerabilidades de segurança e expõe as descobertas detalhadas para cada imagem. Resolver as vulnerabilidades pode melhorar muito a postura de segurança dos seus contêineres e protegê-los contra ataques. AuditIfNotExists, desabilitado 2.0.1
O acesso à rede pública deve ser desabilitado para Registros de Contêiner A desabilitação do acesso à rede pública aprimora a segurança, garantindo que os Registros de Contêiner não sejam expostos na Internet pública. A criação de pontos de extremidade privados pode limitar a exposição de recursos do registro de contêiner. Saiba mais em: https://aka.ms/acr/portal/public-network e https://aka.ms/acr/private-link. Audit, Deny, desabilitado 1.0.0

Criar atribuições de política

Observação

Depois de criar ou atualizar uma atribuição de política, levará algum tempo para que a atribuição avalie os recursos no escopo definido. Veja informações sobre os gatilhos de avaliação de políticas.

Revisar a conformidade da política

Acesse as informações de conformidade geradas por suas atribuições de políticas usando o portal do Azure, as ferramentas de linha de comando do Azure ou os SDKs do Azure Policy. Para obter mais detalhes, veja Obter dados de conformidade de recursos do Azure.

Quando um recurso não está em conformidade, há muitos motivos possíveis. Para determinar o motivo ou para localizar a alteração responsável, veja Determinar a não conformidade.

Conformidade de política no portal:

  1. Selecione Todos os serviços e procure por Política.

  2. Selecione Conformidade.

  3. Use os filtros para limitar os estados de conformidade ou para procurar por políticas.

    Conformidade da política no portal

  4. Selecione uma política para revisar os detalhes e os eventos de conformidade agregada. Se desejar, então selecione um registro específico para a conformidade de recursos.

Conformidade da política na CLI do Azure

Também é possível usar a CLI do Azure para obter dados de conformidade. Por exemplo, use o comando az policy assignment list na CLI para obter as IDs das políticas do Registro de Contêiner do Azure que são aplicadas:

az policy assignment list --query "[?contains(displayName,'Container Registries')].{name:displayName, ID:id}" --output table

Saída de exemplo:

Name                                                                                   ID
-------------------------------------------------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------
Container Registries should not allow unrestricted network access           /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/b4faf132dc344b84ba68a441
Container Registries should be encrypted with a Customer-Managed Key (CMK)  /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/cce1ed4f38a147ad994ab60a

Em seguida, execute az policy state list para retornar o estado de conformidade formatado em JSON para todos os recursos em uma ID de política específica:

az policy state list \
  --resource <policyID>

Ou execute az policy state list para retornar o estado de conformidade formatado em JSON de um recurso do registro específico, como myregistry:

az policy state list \
 --resource myregistry \
 --namespace Microsoft.ContainerRegistry \
 --resource-type registries \
 --resource-group myresourcegroup

Próximas etapas