Inspekcja zgodności rejestrów kontenerów platformy Azure przy użyciu Azure PolicyAudit compliance of Azure container registries using Azure Policy

Azure Policy to usługa platformy Azure, która umożliwia tworzenie i przypisywanie zasad oraz zarządzanie nimi.Azure Policy is a service in Azure that you use to create, assign, and manage policies. Te zasady wymuszają różne reguły i efekty dotyczące zasobów, dzięki czemu zasoby te pozostają zgodne ze standardami firmy i umowami dotyczącymi poziomu usług.These policies enforce different rules and effects over your resources, so those resources stay compliant with your corporate standards and service level agreements.

W tym artykule oprowadzono wbudowane zasady dla Azure Container Registry.This article introduces built-in policies for Azure Container Registry. Te zasady są służące do inspekcji nowych i istniejących rejestrów w celu zapewnienia zgodności.Use these policies to audit new and existing registries for compliance.

Korzystanie z usługi Azure Policy nie jest Azure Policy.There are no charges for using Azure Policy.

Wbudowane definicje zasadBuilt-in policy definitions

Następujące wbudowane definicje zasad są specyficzne dla Azure Container Registry:The following built-in policy definitions are specific to Azure Container Registry:

NazwaName
(Azure Portal)(Azure portal)
OpisDescription Efekt(y)Effect(s) WersjaVersion
(GitHub)(GitHub)
Konfigurowanie rejestrów kontenerów w celu wyłączenia dostępu do sieci publicznejConfigure Container registries to disable public network access Wyłącz dostęp do sieci publicznej dla zasobu Container Registry, aby nie był dostępny za pośrednictwem publicznego Internetu.Disable public network access for your Container Registry resource so that it's not accessible over the public internet. Może to zmniejszyć ryzyko wycieku danych.This can reduce data leakage risks. Dowiedz się więcej na https://aka.ms/acr/portal/public-network temat i https://aka.ms/acr/private-link .Learn more at https://aka.ms/acr/portal/public-network and https://aka.ms/acr/private-link. Modyfikowanie, wyłączoneModify, Disabled 1.0.01.0.0
Konfigurowanie rejestrów kontenerów z prywatnymi punktami końcowymiConfigure Container registries with private endpoints Prywatne punkty końcowe łączą sieć wirtualną z usługami platformy Azure bez publicznego adresu IP w miejscu źródłowym lub docelowym.Private endpoints connect your virtual network to Azure services without a public IP address at the source or destination. Mapowanie prywatnych punktów końcowych na zasoby rejestru kontenerów w wersji Premium pozwala ograniczyć ryzyko wycieku danych.By mapping private endpoints to your premium container registry resources, you can reduce data leakage risks. Dowiedz się więcej na temat: https://aka.ms/privateendpoints i https://aka.ms/acr/private-link .Learn more at: https://aka.ms/privateendpoints and https://aka.ms/acr/private-link. DeployIfNotExists, DisabledDeployIfNotExists, Disabled 1.0.01.0.0
Rejestry kontenerów powinny być szyfrowane przy użyciu klucza zarządzanego przez klientaContainer registries should be encrypted with a customer-managed key Zarządzanie szyfrowaniem w pozostałej części zawartości rejestrów za pomocą kluczy zarządzanych przez klienta.Use customer-managed keys to manage the encryption at rest of the contents of your registries. Domyślnie dane w spoczynku są szyfrowane przy użyciu kluczy zarządzanych przez usługę, ale klucze zarządzane przez klienta są często wymagane do spełnienia standardów zgodności z przepisami.By default, the data is encrypted at rest with service-managed keys, but customer-managed keys are commonly required to meet regulatory compliance standards. Klucze zarządzane przez klienta umożliwiają szyfrowanie danych przy użyciu klucza Azure Key Vault utworzonego i należącego do Ciebie.Customer-managed keys enable the data to be encrypted with an Azure Key Vault key created and owned by you. Masz pełną kontrolę i odpowiedzialność za cykl życia klucza, w tym rotację i zarządzanie.You have full control and responsibility for the key lifecycle, including rotation and management. Dowiedz się więcej na stronie https://aka.ms/acr/CMK .Learn more at https://aka.ms/acr/CMK. Inspekcja, Odmowa, WyłączoneAudit, Deny, Disabled 1.1.21.1.2
Rejestry kontenerów powinny mieć jednostki SKU, które obsługują łącza prywatneContainer registries should have SKUs that support Private Links Azure Private Link umożliwia połączenie sieci wirtualnej z usługami platformy Azure bez publicznego adresu IP w miejscu źródłowym lub docelowym.Azure Private Link lets you connect your virtual network to Azure services without a public IP address at the source or destination. Platforma łącza prywatnego obsługuje łączność między konsumentem a usługami za pośrednictwem sieci szkieletowej platformy Azure.The private link platform handles the connectivity between the consumer and services over the Azure backbone network. Mapowanie prywatnych punktów końcowych na rejestry kontenerów zamiast na całą usługę zmniejsza ryzyko wycieku danych.By mapping private endpoints to your container registries instead of the entire service, data leakage risks are reduced. Dowiedz się więcej na stronie: https://aka.ms/acr/private-link .Learn more at: https://aka.ms/acr/private-link. Inspekcja, Odmowa, WyłączoneAudit, Deny, Disabled 1.0.01.0.0
Rejestry kontenerów nie powinny zezwalać na nieograniczony dostęp sieciowyContainer registries should not allow unrestricted network access Rejestry kontenerów platformy Azure domyślnie akceptują połączenia przez Internet z hostów w dowolnej sieci.Azure container registries by default accept connections over the internet from hosts on any network. Aby chronić rejestry przed potencjalnymi zagrożeniami, zezwróż na dostęp tylko z określonych publicznych adresów IP lub zakresów adresów.To protect your registries from potential threats, allow access from only specific public IP addresses or address ranges. Jeśli rejestr nie ma reguły adresu IP/zapory ani skonfigurowanej sieci wirtualnej, zostanie wyświetlony w zasobach w złej kondycji.If your registry doesn't have an IP/firewall rule or a configured virtual network, it will appear in the unhealthy resources. Więcej informacji na temat reguł Container Registry sieci można uzyskać tutaj: https://aka.ms/acr/portal/public-network i https://aka.ms/acr/vnet tutaj.Learn more about Container Registry network rules here: https://aka.ms/acr/portal/public-network and here https://aka.ms/acr/vnet. Inspekcja, Odmowa, WyłączoneAudit, Deny, Disabled 1.1.01.1.0
Rejestry kontenerów powinny używać linku prywatnegoContainer registries should use private link Azure Private Link umożliwia połączenie sieci wirtualnej z usługami platformy Azure bez publicznego adresu IP w miejscu źródłowym lub docelowym.Azure Private Link lets you connect your virtual network to Azure services without a public IP address at the source or destination. Platforma łącza prywatnego obsługuje łączność między konsumentem a usługami za pośrednictwem sieci szkieletowej platformy Azure. Mapując prywatne punkty końcowe na rejestry kontenerów, a nie na całą usługę, będziesz również chronić przed zagrożeniami wycieku danych.The private link platform handles the connectivity between the consumer and services over the Azure backbone network.By mapping private endpoints to your container registries instead of the entire service, you'll also be protected against data leakage risks. Dowiedz się więcej na stronie: https://aka.ms/acr/private-link .Learn more at: https://aka.ms/acr/private-link. Inspekcja, wyłączoneAudit, Disabled 1.0.11.0.1
Container Registry używać punktu końcowego usługi dla sieci wirtualnejContainer Registry should use a virtual network service endpoint Te zasady przeprowadzają inspekcję Container Registry nieskonfigurowane do używania punktu końcowego usługi dla sieci wirtualnej.This policy audits any Container Registry not configured to use a virtual network service endpoint. Inspekcja, wyłączoneAudit, Disabled 1.0.0-preview1.0.0-preview
Dostęp do sieci publicznej powinien być wyłączony dla rejestrów kontenerówPublic network access should be disabled for Container registries Wyłączenie dostępu do sieci publicznej zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów nie są widoczne w publicznym Internecie.Disabling public network access improves security by ensuring that container registries are not exposed on the public internet. Tworzenie prywatnych punktów końcowych może ograniczyć narażenie zasobów rejestru kontenerów.Creating private endpoints can limit exposure of container registry resources. Dowiedz się więcej na temat: https://aka.ms/acr/portal/public-network i https://aka.ms/acr/private-link .Learn more at: https://aka.ms/acr/portal/public-network and https://aka.ms/acr/private-link. Inspekcja, Odmowa, WyłączoneAudit, Deny, Disabled 1.0.01.0.0
Luki w zabezpieczeniach Azure Container Registry obrazów powinny zostać skorygowaneVulnerabilities in Azure Container Registry images should be remediated Ocena luk w zabezpieczeniach obrazu kontenera skanuje rejestr pod poszukiwaniu luk w zabezpieczeniach każdego wypchniętego obrazu kontenera i uwidacznia szczegółowe wyniki dla każdego obrazu (obsługiwanego przez firmę Qualys).Container image vulnerability assessment scans your registry for security vulnerabilities on each pushed container image and exposes detailed findings for each image (powered by Qualys). Usuwanie luk w zabezpieczeniach może znacznie poprawić poziom zabezpieczeń kontenerów i chronić je przed atakami.Resolving the vulnerabilities can greatly improve your containers' security posture and protect them from attacks. AuditIfNotExists, DisabledAuditIfNotExists, Disabled 2.0.02.0.0

Przypisywanie zasadAssign policies

Uwaga

Po przypisaniu lub zaktualizowaniu zasad zastosowanie przypisania do zasobów w zdefiniowanym zakresie zajmuje trochę czasu.After you assign or update a policy, it takes some time for the assignment to be applied to resources in the defined scope. Zobacz informacje o wyzwalaczach oceny zasad.See information about policy evaluation triggers.

Przeglądanie zgodności zasadReview policy compliance

Uzyskaj dostęp do informacji o zgodności wygenerowanych przez przypisania zasad przy użyciu Azure Portal, narzędzi wiersza polecenia platformy Azure lub zestawów AZURE POLICY SDK.Access compliance information generated by your policy assignments using the Azure portal, Azure command-line tools, or the Azure Policy SDKs. Aby uzyskać szczegółowe informacje, zobacz Get compliance data of Azure resources (Uzyskiwanie danych zgodności zasobów platformy Azure).For details, see Get compliance data of Azure resources.

Jeśli zasób jest niezgodny, istnieje wiele możliwych przyczyn.When a resource is non-compliant, there are many possible reasons. Aby określić przyczynę lub znaleźć odpowiedzialną zmianę, zobacz Określanie niezgodności.To determine the reason or to find the change responsible, see Determine non-compliance.

Zgodność z zasadami w portalu:Policy compliance in the portal:

  1. Wybierz pozycję Wszystkie usługi i wyszukaj pozycję Zasady.Select All services, and search for Policy.

  2. Wybierz pozycję Zgodność.Select Compliance.

  3. Użyj filtrów, aby ograniczyć stany zgodności lub wyszukać zasady.Use the filters to limit compliance states or to search for policies.

    Zgodność z zasadami w portalu

  4. Wybierz zasady, aby przejrzeć zagregowane szczegóły zgodności i zdarzenia.Select a policy to review aggregate compliance details and events. W razie potrzeby wybierz określony rejestr na potrzeby zgodności zasobów.If desired, then select a specific registry for resource compliance.

Zgodność z zasadami w interfejsie wiersza polecenia platformy AzurePolicy compliance in the Azure CLI

Aby uzyskać dane dotyczące zgodności, możesz również użyć interfejsu wiersza polecenia platformy Azure.You can also use the Azure CLI to get compliance data. Na przykład użyj polecenia az policy assignment list w interfejsie wiersza polecenia, aby uzyskać identyfikatory zasad Azure Container Registry, które są stosowane:For example, use the az policy assignment list command in the CLI to get the policy IDs of the Azure Container Registry policies that are applied:

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

Przykładowe dane wyjściowe:Sample output:

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

Następnie uruchom pozycję az policy state list, aby zwrócić stan zgodności w formacie JSON dla wszystkich zasobów w ramach określonego identyfikatora zasad:Then run az policy state list to return the JSON-formatted compliance state for all resources under a specific policy ID:

az policy state list \
  --resource <policyID>

Możesz też uruchomić az policy state list, aby zwrócić stan zgodności określonego zasobu rejestru w formacie JSON, takiego jak myregistry:Or run az policy state list to return the JSON-formatted compliance state of a specific registry resource, such as myregistry:

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

Następne krokiNext steps