Granska efterlevnaden för 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.

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

Det kostar inget att använda Azure Policy.

Inbyggda principdefinitioner

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

Name
(Azure Portal)
Beskrivning Effekter Version
(GitHub)
[Förhandsversion]: [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-förhandsversion
Konfigurera containerregister för att inaktivera anonym autentisering. Inaktivera anonym pull för registret så att data inte kan nås av oautentiserade användare. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 Azure Container Registry målgruppstoken (ACR) 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 lokalt administratörskonto. 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, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 åtkomst till offentligt nätverk 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 lagringsplatsbegränsade åtkomsttoken för registret så att lagringsplatser inte kan nås av token. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 vanligtvis för att uppfylla regelefterlevnadsstandarder. Kundhanterade nycklar gör att data kan 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 inaktiverat. Inaktivera anonym hämtning för registret så att data inte är tillgängliga för oautentiserade användare. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 med ARM-målgruppstoken inaktiverat. Inaktivera Azure Active Directory ARM-målgruppstoken för autentisering till registret. Endast Azure Container Registry målgruppstoken (ACR) 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 Inaktivering av exporter förbättrar säkerheten genom att se till 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 åtkomst till offentligt nätverk 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, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 lagringsplatsens omfattning inaktiverad. Inaktivera lagringsplatsbegränsade åtkomsttoken för registret så att lagringsplatser inte kan nås av token. Om du inaktiverar lokala autentiseringsmetoder som administratörsanvändare, lagringsplatsbegränsade åtkomsttoken och anonym hämtning 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 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. Plattformen private link 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 några konfigurerade nätverksregler visas det i de resurser som inte är felfria. Läs mer om Container Registry-nätverksregler här: https://aka.ms/acr/privatelink,https://aka.ms/acr/portal/public-network och https://aka.ms/acr/vnet. Granska, neka, inaktiverad 2.0.0
Containerregister bör använda private link 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. Plattformen private link 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 även mot risker med dataläckage. Läs mer på: https://aka.ms/acr/private-link. Granskning, inaktiverad 1.0.1
Containerregisteravbildningar bör ha sårbarhetsresultat lösta Sårbarhetsbedömning av containeravbildningar söker igenom registret efter säkerhetsrisker och visar detaljerade resultat för varje avbildning. Att lösa säkerhetsriskerna kan avsevärt förbättra containrarnas säkerhetsstatus och skydda dem mot attacker. AuditIfNotExists, inaktiverad 2.0.1
Åtkomst till offentligt nätverk bör inaktiveras för containerregister Inaktivering av offentlig nätverksåtkomst förbättrar säkerheten genom att säkerställa att containerregister inte exponeras på det offentliga Internet. Att skapa privata slutpunkter kan 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

Anteckning

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 principutvärderingsutlösare.

Granska principefterlevnad

Få åtkomst till kompatibilitetsinformation som genereras av dina principtilldelningar med hjälp av Azure Portal, 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 som 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 sammanställd 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:na 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 kompatibilitetstillstå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