Überwachen der Konformität von Azure-Containerregistrierungen mithilfe von Azure Policy

Azure Policy ist ein Dienst in Azure, mit dem Sie Richtliniendefinitionen erstellen, zuweisen und verwalten können. Richtliniendefinitionen erzwingen unterschiedliche Regeln und Auswirkungen für Ihre Ressourcen, damit diese stets mit Ihren Unternehmensstandards und Vereinbarungen zum Servicelevel konform bleiben.

In diesem Artikel werden integrierte Richtliniendefinitionen für Azure Container Registry vorgestellt. Verwenden Sie diese Definitionen, um die Konformität neuer und vorhandener Registrierungen zu überwachen.

Die Nutzung von Azure Policy ist kostenlos.

Integrierte Richtliniendefinitionen

Für Azure Container Registry gelten die folgenden integrierten Richtliniendefinitionen:

Name
(Azure-Portal)
BESCHREIBUNG Auswirkungen Version
(GitHub)
[Vorschau]: Containerregistrierung sollte zonenredundant sein Die Containerregistrierung kann so konfiguriert werden, dass sie zonenredundant ist oder nicht. Wenn die zoneRedundancy-Eigenschaft für eine Containerregistrierung auf „Disabled“ festgelegt ist, bedeutet dies, dass die Registrierung nicht zonenredundant ist. Durch das Erzwingen dieser Richtlinie wird sichergestellt, dass Ihre Containerregistrierung korrekt für die Zonenresilienz konfiguriert ist, wodurch das Risiko von Ausfallzeiten während Zonenausfällen verringert wird. Audit, Deny, Disabled 1.0.0-preview
[Vorschau]: Container Registry sollte einen VNET-Dienstendpunkt verwenden. Diese Richtlinie überwacht alle Container Registry-Instanzen, die nicht für die Verwendung eines VNET-Dienstendpunkts konfiguriert sind. Audit, Disabled 1.0.0-preview
Sicherheitsrisiken in Containerimages der Azure-Registrierung sollten behoben sein (unterstützt von Microsoft Defender Vulnerability Management) Die Sicherheitsrisikobewertung von Containerimages überprüft Ihre Registrierung auf allgemein bekannte Sicherheitsrisiken (CVEs) und stellt einen detaillierten Sicherheitsrisikobericht für jedes Image bereit. Das Beheben von Sicherheitsrisiken kann Ihren Sicherheitsstatus erheblich verbessern und sicherstellen, dass Images vor der Bereitstellung gefahrlos verwendet werden können. AuditIfNotExists, Disabled 1.0.1
Konfigurieren Sie Containerregistrierungen, um die anonyme Authentifizierung zu deaktivieren. Deaktivieren Sie anonymes Pullen für Ihre Registrierung, damit nicht authentifizierte Benutzer nicht auf Daten zugreifen können. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymes Pullen verbessert die Sicherheit, da hierdurch sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung anfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Konfigurieren Sie Containerregistrierungen, um die ARM-Zielgruppen-Token-Authentifizierung zu deaktivieren. Deaktivieren Sie Azure Active Directory ARM-Benutzergruppentoken für die Authentifizierung für Ihre Registrierung. Nur Azure Container Registry (ACR)-Zielgruppentoken werden für die Authentifizierung verwendet. Dadurch wird sichergestellt, dass nur Token für die Verwendung in der Registrierung für die Authentifizierung verwendet werden können. Das Deaktivieren von ARM-Zielgruppentoken wirkt sich nicht auf die Authentifizierung des Administratorbenutzers oder die Authentifizierung von Zugriffstoken im Bereich aus. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Konfigurieren Sie Containerregistrierungen, um das lokale Administratorkonto zu deaktivieren. Deaktivieren Sie das Administratorkonto für Ihre Registrierung, sodass der lokale Administrator nicht darauf zugreifen kann. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymer Pull verbessert die Sicherheit, indem sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung erfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Modify, Disabled 1.0.1
Containerregistrierungen zum Deaktivieren des Zugriffs über öffentliche Netzwerke konfigurieren Deaktivieren Sie den Zugriff über öffentliche Netzwerke für Ihre Container Registry-Ressource, sodass sie nicht über das öffentliche Internet zugänglich ist. Dies kann das Risiko von Datenlecks verringern. Weitere Informationen finden Sie unter https://aka.ms/acr/portal/public-network und https://aka.ms/acr/private-link. Modify, Disabled 1.0.0
Konfigurieren Sie Containerregistrierungen, um das Zugriffstoken mit Repositorybereich zu deaktivieren. Deaktivieren Sie repositorybezogene Zugriffstoken für Ihre Registrierung, damit Token nicht auf Repositorys zugreifen können. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymes Pullen verbessert die Sicherheit, da hierdurch sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung anfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Containerregistrierungen mit privaten Endpunkten konfigurieren Private Endpunkte verbinden Ihr virtuelles Netzwerk ohne eine öffentliche IP-Adresse an Quelle oder Ziel mit Azure-Diensten. Durch das Zuordnen privater Endpunkte zu Ihren Container Registry Premium-Ressourcen können Sie das Risiko von Datenlecks verringern Weitere Informationen finden Sie unter https://aka.ms/privateendpoints und https://aka.ms/acr/private-link. DeployIfNotExists, Disabled 1.0.0
Containerregistrierungen müssen mit einem kundenseitig verwalteten Schlüssel verschlüsselt werden. Verwenden Sie kundenseitig verwaltete Schlüssel, um die Verschlüsselung ruhender Daten für den Inhalt Ihrer Registrierungen zu verwalten. Standardmäßig werden die Daten im Ruhezustand mit dienstseitig verwalteten Schlüsseln verschlüsselt. Kundenseitig verwaltete Schlüssel sind jedoch häufig zur Einhaltung gesetzlicher Bestimmungen erforderlich. Mit kundenseitig verwalteten Schlüsseln können die Daten mit einem Azure Key Vault-Schlüssel verschlüsselt werden, der von Ihnen erstellt wird und sich in Ihrem Besitz befindet. Sie verfügen über die volle Kontrolle über und Verantwortung für den Schlüssellebenszyklus, einschließlich Rotation und Verwaltung. Weitere Informationen finden Sie unter https://aka.ms/acr/CMK. Audit, Deny, Disabled 1.1.2
Für Containerregistrierungen muss die anonyme Authentifizierung deaktiviert sein. Deaktivieren Sie anonymes Pullen für Ihre Registrierung, damit nicht authentifizierte Benutzer nicht auf Daten zugreifen können. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymes Pullen verbessert die Sicherheit, da hierdurch sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung anfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
Bei Containerregistrierungen sollte die ARM Zielgruppentoken-Authentifizierung deaktiviert sein. Deaktivieren Sie Azure Active Directory ARM-Benutzergruppentoken für die Authentifizierung für Ihre Registrierung. Nur Azure Container Registry (ACR)-Zielgruppentoken werden für die Authentifizierung verwendet. Dadurch wird sichergestellt, dass nur Token für die Verwendung in der Registrierung für die Authentifizierung verwendet werden können. Das Deaktivieren von ARM-Zielgruppentoken wirkt sich nicht auf die Authentifizierung des Administratorbenutzers oder die Authentifizierung von Zugriffstoken im Bereich aus. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
Für Containerregistrierungen sollten Exporte deaktiviert sein Das Deaktivieren von Exporten erhöht die Sicherheit, indem sichergestellt wird, dass ausschließlich über die Datenebene auf Daten in einer Registrierung zugegriffen wird („docker pull“). Daten können nicht mittels „acr import“ oder „acr transfer“ aus der Registrierung verschoben werden. Um Exporte zu deaktivieren, muss der öffentliche Netzwerkzugriff deaktiviert werden. Weitere Informationen finden Sie unter https://aka.ms/acr/export-policy. Audit, Deny, Disabled 1.0.0
Für Containerregistrierungen muss das lokale Administratorkonto deaktiviert sein. Deaktivieren Sie das Administratorkonto für Ihre Registrierung, sodass der lokale Administrator nicht darauf zugreifen kann. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymer Pull verbessert die Sicherheit, indem sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung erfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.1
Für Containerregistrierungen muss das Zugriffstoken mit Repositorybereich deaktiviert sein. Deaktivieren Sie repositorybezogene Zugriffstoken für Ihre Registrierung, damit Token nicht auf Repositorys zugreifen können. Das Deaktivieren lokaler Authentifizierungsmethoden wie Administratorbenutzer, repositorybezogene Zugriffstoken und anonymes Pullen verbessert die Sicherheit, da hierdurch sichergestellt wird, dass Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung anfordern. Weitere Informationen finden Sie unter https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
Containerregistrierungen müssen SKUs mit Unterstützung für private Verbindungen verwenden Mit Azure Private Link können Sie Ihr virtuelles Netzwerk mit Azure-Diensten verbinden, ohne auf der Quelle oder auf dem Ziel eine öffentliche IP-Adresse zu verwenden. Die Private Link-Plattform verarbeitet die Konnektivität zwischen dem Consumer und den Diensten über das Azure-Backbone-Netzwerk. Da private Endpunkte nicht dem gesamten Dienst, sondern Ihren Containerregistrierungen zugeordnet werden, wird das Risiko von Datenlecks verringert. Weitere Informationen finden Sie unter https://aka.ms/acr/private-link. Audit, Deny, Disabled 1.0.0
Containerregistrierungen dürfen keinen uneingeschränkten Netzwerkzugriff zulassen Azure-Containerregistrierungen akzeptieren standardmäßig Verbindungen über das Internet von Hosts in beliebigen Netzwerken. Lassen Sie den Zugriff nur über bestimmte private Endpunkte, öffentliche IP-Adressen oder Adressbereiche zu, um Ihre Registrierungen vor potenziellen Bedrohungen zu schützen. Wenn Ihre Registrierung nicht über konfigurierte Netzwerkregeln verfügt, wird sie unter den fehlerhaften Ressourcen aufgeführt. Weitere Informationen zu Container Registry-Netzwerkregeln finden Sie unter https://aka.ms/acr/privatelink, https://aka.ms/acr/portal/public-network und https://aka.ms/acr/vnet. Audit, Deny, Disabled 2.0.0
Containerregistrierungen sollten die Erstellung von Cacheregel verhindern Deaktivieren Sie die Erstellung von Cacheregel für Ihre Azure-Containerregistrierung, um Pull-Pulls durch den Cache zu verhindern. Weitere Informationen finden Sie unter https://aka.ms/acr/cache. Audit, Deny, Disabled 1.0.0
Containerregistrierungen sollten eine private Verbindung verwenden Mit Azure Private Link können Sie Ihr virtuelles Netzwerk mit Azure-Diensten verbinden, ohne auf der Quelle oder auf dem Ziel eine öffentliche IP-Adresse zu verwenden. Die Private Link-Plattform verarbeitet die Konnektivität zwischen dem Consumer und den Diensten über das Azure-Backbone-Netzwerk. Indem Sie private Endpunkte nicht dem gesamten Dienst, sondern nur Ihren Containerregistrierungen zuordnen, sind Sie auch vor Risiken aufgrund von Datenlecks geschützt. Weitere Informationen finden Sie unter https://aka.ms/acr/private-link. Audit, Disabled 1.0.1
Protokollierung nach Kategoriegruppe für Containerregistrierungen (microsoft.containerregistry/registries) in Event Hub aktivieren Ressourcenprotokolle sollten aktiviert werden, um Aktivitäten und Ereignisse zu verfolgen, die auf Ihren Ressourcen stattfinden, und Ihnen Einblicke und Einblicke in alle auftretenden Änderungen zu geben. Diese Richtlinie stellt eine Diagnoseeinstellung mithilfe einer Kategoriegruppe bereit, um Protokolle an einen Event Hub für Containerregistrierungen (microsoft.containerregistry/registries) weiterzuleiten. DeployIfNotExists, AuditIfNotExists, Disabled 1.1.0
Protokollierung nach Kategoriegruppe für Containerregistrierungen (microsoft.containerregistry/registries) in Log Analytics aktivieren Ressourcenprotokolle sollten aktiviert werden, um Aktivitäten und Ereignisse zu verfolgen, die auf Ihren Ressourcen stattfinden, und Ihnen Einblicke und Einblicke in alle auftretenden Änderungen zu geben. Diese Richtlinie stellt eine Diagnoseeinstellung mithilfe einer Kategoriegruppe bereit, um Protokolle an einen Log Analytics-Arbeitsbereich für Containerregistrierungen (microsoft.containerregistry/registries) weiterzuleiten. DeployIfNotExists, AuditIfNotExists, Disabled 1.0.0
Protokollierung nach Kategoriegruppe für Containerregistrierungen (microsoft.containerregistry/registries) im Speicher aktivieren Ressourcenprotokolle sollten aktiviert werden, um Aktivitäten und Ereignisse zu verfolgen, die auf Ihren Ressourcen stattfinden, und Ihnen Einblicke und Einblicke in alle auftretenden Änderungen zu geben. Diese Richtlinie stellt eine Diagnoseeinstellung mithilfe einer Kategoriegruppe bereit, um Protokolle an ein Speicherkonto für Containerregistrierungen (microsoft.containerregistry/registries) weiterzuleiten. DeployIfNotExists, AuditIfNotExists, Disabled 1.0.0
Zugriff über öffentliche Netzwerke muss für Containerregistrierungen deaktiviert sein Die Deaktivierung des Zugriffs über öffentliche Netzwerke erhöht die Sicherheit, da Containerregistrierungen nicht über das öffentliche Internet zugänglich sind. Durch das Erstellen privater Endpunkte können Sie die Offenlegung von Container Registry-Ressourcen einschränken. Weitere Informationen finden Sie unter https://aka.ms/acr/portal/public-network und https://aka.ms/acr/private-link. Audit, Deny, Disabled 1.0.0

Erstellen von Richtlinienzuweisungen

  • Erstellen Sie Richtlinienzuweisungen über das Azure-Portal, die Azure CLI, eine Resource Manager-Vorlage oder die Azure Policy SDKs.
  • Beschränken Sie eine Richtlinienzuweisung auf eine Ressourcengruppe, ein Abonnement oder eine Azure-Verwaltungsgruppe. Zuweisungen von Containerregistrierungsrichtlinien gelten für vorhandene und neue Containerregistrierungen innerhalb des festgelegten Bereichs.
  • Sie können die Richtliniendurchsetzung jederzeit aktivieren oder deaktivieren.

Hinweis

Nach dem Erstellen oder Aktualisieren einer Richtlinienzuweisung dauert es einen Moment, bis die Zuweisung die Ressourcen im definierten Bereich auswertet. Lesen Sie dazu auch die Informationen zu Richtlinienauswertungsauslösern.

Überprüfen der Richtlinienkonformität

Greifen Sie über das Azure-Portal, die Azure-Befehlszeilentools oder die Azure Policy-SDKs auf die Informationen zur Konformität zu, die von Ihren Richtlinienzuweisungen generiert werden. Einzelheiten finden Sie unter Abrufen von Compliancedaten von Azure-Ressourcen.

Wenn eine Ressource nicht konform ist, kann das viele mögliche Ursachen haben. Wie Sie die Ursache bestimmen oder die verantwortliche Änderung finden, ist unter Bestimmen der Nichtkonformität beschrieben.

Richtlinienkonformität im Portal:

  1. Wählen Sie Alle Dienste aus, und suchen Sie nach Richtlinie.

  2. Wählen Sie Compliance aus.

  3. Verwenden Sie die Filter, um die Konformitätszustände einzuschränken oder nach Richtlinien zu suchen.

    Richtlinienkonformität im Portal

  4. Wählen Sie eine Richtlinie aus, um die Zusammenfassung der Konformitätsdetails und -ereignisse zu überprüfen. Wählen Sie gegebenenfalls eine bestimmte Registrierung aus, deren Konformität überprüft werden soll.

Richtlinienkonformität in der Azure CLI

Konformitätsdaten können auch über die Azure CLI abgerufen werden. Verwenden Sie beispielsweise den Befehl az policy assignment list in der CLI, um die Richtlinien-IDs der Azure Container Registry-Richtlinien abzurufen, die angewendet werden:

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

Beispielausgabe:

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

Führen Sie dann az policy state list aus, um den Konformitätszustand für alle Ressourcen einer bestimmten Richtlinien-ID im JSON-Format zurückzugeben:

az policy state list \
  --resource <policyID>

Sie können az policy state list auch ausführen, um den Konformitätszustand einer bestimmten Registrierungsressource (z.B. myregistry) im JSON-Format zurückzugeben:

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

Nächste Schritte