Ü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)
Konfigurieren Sie Containerregistrierungen, um die lokale Authentifizierung zu deaktivieren. Deaktivieren Sie die lokale Authentifizierung, damit Ihre Containerregistrierungen ausschließlich Azure Active Directory-Identitäten für die Authentifizierung anfordern. Mehr erfahren Sie unter: https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
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
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 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 sollten lokale Authentifizierungsmethoden deaktiviert sein. Das Deaktivieren lokaler Authentifizierungsmethoden 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 öffentliche IP-Adressen oder Adressbereiche zu, um Ihre Registrierungen vor potenziellen Bedrohungen zu schützen. Wenn Ihre Registrierung nicht über eine IP-/Firewallregel oder ein konfiguriertes virtuelles Netzwerk verfügt, wird sie unter den fehlerhaften Ressourcen aufgeführt. Weitere Informationen zu Container Registry-Netzwerkregeln finden Sie unter https://aka.ms/acr/portal/public-network und https://aka.ms/acr/vnet. Audit, Deny, Disabled 1.1.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
[Vorschau:] Container Registry muss 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
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
Sicherheitsrisiken in Azure Container Registry-Images müssen behoben werden Die Sicherheitsrisikobewertung für Containerimages scannt Ihre Registrierung auf Sicherheitsrisiken für jedes gepushte Containerimage und macht für jedes Image detaillierte Ergebnisse verfügbar (unterstützt von Qualys). Durch die Beseitigung der Sicherheitsrisiken können Sie den Sicherheitsstatus Ihrer Container erheblich verbessern und die Container vor Angriffen schützen. AuditIfNotExists, Disabled 2.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