Granska efterlevnaden av Azure-containerregister med Hjälp av Azure Policy

Azure Policy är en tjänst i Azure som du använder för att skapa, tilldela och hantera principdefinitioner. Dessa principdefinitioner tillämpar olika regler och effekter på dina resurser, så att dessa resurser följer företagets standarder och serviceavtal.

I den här artikeln beskrivs inbyggda principdefinitioner för Azure Container Registry. Använd dessa definitioner för att granska nya och befintliga register för efterlevnad.

Det kostar ingenting att använda Azure Policy.

Inbyggda policydefinitioner

Följande inbyggda principdefinitioner är specifika för Azure Container Registry:

Name
(Azure-portalen)
beskrivning Effekter Version
(GitHub)
[Förhandsversion]: Containerregistret ska vara zonredundant Container Registry kan konfigureras så att det är zonredundant eller inte. När egenskapen zoneRedundancy för ett containerregister är inställd på "Disabled" betyder det att registret inte är zonredundant. Genom att tillämpa den här principen ser du till att containerregistret är korrekt konfigurerat för zonresiliens, vilket minskar risken för avbrott i zonen. Granska, neka, inaktiverad 1.0.0-preview
[Förhandsversion]: Container Registry bör använda en tjänstslutpunkt för virtuellt nätverk Den här principen granskar alla containerregister som inte har konfigurerats för att använda en tjänstslutpunkt för virtuellt nätverk. Granskning, inaktiverad 1.0.0-preview
Azure-registercontaineravbildningar bör ha säkerhetsrisker lösta (drivs av Microsoft Defender – hantering av säkerhetsrisker) Sårbarhetsbedömning av containeravbildning söker igenom registret efter vanliga säkerhetsrisker (CVE) och ger en detaljerad sårbarhetsrapport för varje avbildning. Att lösa säkerhetsrisker kan avsevärt förbättra din säkerhetsstatus, vilket säkerställer att avbildningar är säkra att använda före distributionen. AuditIfNotExists, inaktiverad 1.0.1
Konfigurera containerregister för att inaktivera anonym autentisering. Inaktivera anonym pull för registret så att data inte kan nås av en oautentiserad användare. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Ändra, inaktiverad 1.0.0
Konfigurera containerregister för att inaktivera autentisering med ARM-målgruppstoken. Inaktivera Azure Active Directory ARM-målgruppstoken för autentisering till registret. Endast ACR-målgruppstoken (Azure Container Registry) används för autentisering. Detta säkerställer att endast token som är avsedda för användning i registret kan användas för autentisering. Inaktivering av ARM-målgruppstoken påverkar inte administratörsanvändarens eller begränsade åtkomsttokens autentisering. Läs mer på: https://aka.ms/acr/authentication. Ändra, inaktiverad 1.0.0
Konfigurera containerregister för att inaktivera det lokala administratörskontot. Inaktivera administratörskontot för registret så att det inte är tillgängligt för den lokala administratören. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Ändra, inaktiverad 1.0.1
Konfigurera containerregister för att inaktivera åtkomst till offentligt nätverk Inaktivera offentlig nätverksåtkomst för containerregisterresursen så att den inte är tillgänglig via det offentliga Internet. Detta kan minska risken för dataläckage. Läs mer på https://aka.ms/acr/portal/public-network och https://aka.ms/acr/private-link. Ändra, inaktiverad 1.0.0
Konfigurera containerregister för att inaktivera lagringsplatsens begränsade åtkomsttoken. Inaktivera lagringsplatsens begränsade åtkomsttoken för registret så att lagringsplatser inte kan nås av token. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Ändra, inaktiverad 1.0.0
Konfigurera containerregister med privata slutpunkter Privata slutpunkter ansluter ditt virtuella nätverk till Azure-tjänster utan en offentlig IP-adress vid källan eller målet. Genom att mappa privata slutpunkter till dina premium-containerregisterresurser kan du minska risken för dataläckage. Läs mer på: https://aka.ms/privateendpoints och https://aka.ms/acr/private-link. DeployIfNotExists, inaktiverad 1.0.0
Containerregister ska krypteras med en kundhanterad nyckel Använd kundhanterade nycklar för att hantera krypteringen i resten av innehållet i dina register. Som standard krypteras data i vila med tjänsthanterade nycklar, men kundhanterade nycklar krävs ofta för att uppfylla regelefterlevnadsstandarder. Med kundhanterade nycklar kan data krypteras med en Azure Key Vault-nyckel som skapas och ägs av dig. Du har fullständig kontroll och ansvar för nyckellivscykeln, inklusive rotation och hantering. Läs mer på https://aka.ms/acr/CMK. Granska, neka, inaktiverad 1.1.2
Containerregister bör ha anonym autentisering inaktiverad. Inaktivera anonym pull för registret så att data inte kan nås av en oautentiserad användare. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Granska, neka, inaktiverad 1.0.0
Containerregister bör ha autentisering av ARM-målgruppstoken inaktiverat. Inaktivera Azure Active Directory ARM-målgruppstoken för autentisering till registret. Endast ACR-målgruppstoken (Azure Container Registry) används för autentisering. Detta säkerställer att endast token som är avsedda för användning i registret kan användas för autentisering. Inaktivering av ARM-målgruppstoken påverkar inte administratörsanvändarens eller begränsade åtkomsttokens autentisering. Läs mer på: https://aka.ms/acr/authentication. Granska, neka, inaktiverad 1.0.0
Containerregister bör ha exporter inaktiverade Om du inaktiverar exporter förbättras säkerheten genom att säkerställa att data i ett register endast nås via dataplanen ("docker pull"). Det går inte att flytta data från registret via "acr import" eller via "acr transfer". För att inaktivera exporter måste åtkomsten till det offentliga nätverket inaktiveras. Läs mer på: https://aka.ms/acr/export-policy. Granska, neka, inaktiverad 1.0.0
Containerregister bör ha ett lokalt administratörskonto inaktiverat. Inaktivera administratörskontot för registret så att det inte är tillgängligt för den lokala administratören. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Granska, neka, inaktiverad 1.0.1
Containerregister bör ha åtkomsttoken för lagringsplatsomfattning inaktiverad. Inaktivera lagringsplatsens begränsade åtkomsttoken för registret så att lagringsplatser inte kan nås av token. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsomfattande åtkomsttoken och anonym pull förbättras säkerheten genom att säkerställa att containerregister uteslutande kräver Azure Active Directory-identiteter för autentisering. Läs mer på: https://aka.ms/acr/authentication. Granska, neka, inaktiverad 1.0.0
Containerregister bör ha SKU:er som stöder privata länkar Med Azure Private Link kan du ansluta ditt virtuella nätverk till Azure-tjänster utan en offentlig IP-adress vid källan eller målet. Den privata länkplattformen hanterar anslutningen mellan konsumenten och tjänsterna via Azure-stamnätverket. Genom att mappa privata slutpunkter till dina containerregister i stället för hela tjänsten minskas risken för dataläckage. Läs mer på: https://aka.ms/acr/private-link. Granska, neka, inaktiverad 1.0.0
Containerregister bör inte tillåta obegränsad nätverksåtkomst Azure-containerregister accepterar som standard anslutningar via Internet från värdar i alla nätverk. Om du vill skydda dina register mot potentiella hot kan du endast tillåta åtkomst från specifika privata slutpunkter, offentliga IP-adresser eller adressintervall. Om ditt register inte har konfigurerat några nätverksregler visas det i de resurser som inte är felfria. Läs mer om containerregisternätverksregler här: https://aka.ms/acr/privatelinkochhttps://aka.ms/acr/portal/public-networkhttps://aka.ms/acr/vnet. Granska, neka, inaktiverad 2.0.0
Containerregister bör förhindra att cacheregel skapas Inaktivera skapande av cacheregel för Azure Container Registry för att förhindra pull-hämtning av cacheminnen. Läs mer på: https://aka.ms/acr/cache. Granska, neka, inaktiverad 1.0.0
Containerregister bör använda privat länk Med Azure Private Link kan du ansluta ditt virtuella nätverk till Azure-tjänster utan en offentlig IP-adress vid källan eller målet. Den privata länkplattformen hanterar anslutningen mellan konsumenten och tjänsterna via Azure-stamnätverket. Genom att mappa privata slutpunkter till dina containerregister i stället för hela tjänsten skyddas du också mot dataläckagerisker. Läs mer på: https://aka.ms/acr/private-link. Granskning, inaktiverad 1.0.1
Aktivera loggning efter kategorigrupp för containerregister (microsoft.containerregistry/registries) till Event Hub Resursloggar ska aktiveras för att spåra aktiviteter och händelser som äger rum på dina resurser och ge dig insyn och insikter om eventuella ändringar som inträffar. Den här principen distribuerar en diagnostikinställning med hjälp av en kategorigrupp för att dirigera loggar till en händelsehubb för containerregister (microsoft.containerregistry/register). DeployIfNotExists, AuditIfNotExists, Inaktiverad 1.1.0
Aktivera loggning efter kategorigrupp för containerregister (microsoft.containerregistry/registries) till Log Analytics Resursloggar ska aktiveras för att spåra aktiviteter och händelser som äger rum på dina resurser och ge dig insyn och insikter om eventuella ändringar som inträffar. Den här principen distribuerar en diagnostikinställning med hjälp av en kategorigrupp för att dirigera loggar till en Log Analytics-arbetsyta för containerregister (microsoft.containerregister/register). DeployIfNotExists, AuditIfNotExists, Inaktiverad 1.0.0
Aktivera loggning efter kategorigrupp för containerregister (microsoft.containerregister/register) till Lagring Resursloggar ska aktiveras för att spåra aktiviteter och händelser som äger rum på dina resurser och ge dig insyn och insikter om eventuella ändringar som inträffar. Den här principen distribuerar en diagnostikinställning med hjälp av en kategorigrupp för att dirigera loggar till ett lagringskonto för containerregister (microsoft.containerregistry/registries). DeployIfNotExists, AuditIfNotExists, Inaktiverad 1.0.0
Åtkomst till offentligt nätverk ska inaktiveras för containerregister Om du inaktiverar åtkomst till det offentliga nätverket förbättras säkerheten genom att containerregister inte exponeras på det offentliga Internet. Om du skapar privata slutpunkter kan du begränsa exponeringen av containerregisterresurser. Läs mer på: https://aka.ms/acr/portal/public-network och https://aka.ms/acr/private-link. Granska, neka, inaktiverad 1.0.0

Skapa principtilldelningar

  • Skapa principtilldelningar med hjälp av Azure-portalen, Azure CLI, en Resource Manager-mall eller Azure Policy SDK:er.
  • Omfång för en principtilldelning till en resursgrupp, en prenumeration eller en Azure-hanteringsgrupp. Principtilldelningar för containerregister gäller för befintliga och nya containerregister inom omfånget.
  • Aktivera eller inaktivera principtillämpning när som helst.

Kommentar

När du har skapat eller uppdaterat en principtilldelning tar det lite tid för tilldelningen att utvärdera resurser i det definierade omfånget. Se information om utlösare för principutvärdering.

Granska principefterlevnad

Få åtkomst till efterlevnadsinformation som genereras av dina principtilldelningar med hjälp av Azure-portalen, Azure-kommandoradsverktyg eller Azure Policy SDK:er. Mer information finns i Hämta efterlevnadsdata för Azure-resurser.

När en resurs inte är kompatibel finns det många möjliga orsaker. Information om orsaken eller för att hitta ändringen ansvarig finns i Fastställa bristande efterlevnad.

Principefterlevnad i portalen:

  1. Välj Alla tjänster och sök efter Princip.

  2. Välj Efterlevnad.

  3. Använd filtren för att begränsa efterlevnadstillstånd eller för att söka efter principer.

    Principefterlevnad i portalen

  4. Välj en princip för att granska aggregerad efterlevnadsinformation och händelser. Om du vill väljer du ett specifikt register för resursefterlevnad.

Principefterlevnad i Azure CLI

Du kan också använda Azure CLI för att hämta efterlevnadsdata. Använd till exempel kommandot az policy assignment list i CLI för att hämta princip-ID:t för de Azure Container Registry-principer som tillämpas:

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

Exempel på utdata:

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

Kör sedan az policy state list för att returnera det JSON-formaterade efterlevnadstillståndet för alla resurser under ett specifikt princip-ID:

az policy state list \
  --resource <policyID>

Eller kör az policy state list för att returnera det JSON-formaterade efterlevnadstillståndet för en specifik registerresurs, till exempel myregistry:

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

Nästa steg