Inspekcja zgodności rejestrów kontenerów platformy Azure przy użyciu Azure Policy

Azure Policy to usługa na platformie Azure, która służy do tworzenia, przypisywania definicji zasad i zarządzania nimi. Te definicje zasad 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.

W tym artykule przedstawiono wbudowane definicje zasad dla Azure Container Registry. Użyj tych definicji, aby przeprowadzić inspekcję nowych i istniejących rejestrów pod kątem zgodności.

Za korzystanie z Azure Policy nie są naliczane opłaty.

Wbudowane definicje zasad

Następujące wbudowane definicje zasad są specyficzne dla Azure Container Registry:

Nazwa
(Azure Portal)
Opis Efekty Wersja
(GitHub)
[Wersja zapoznawcza]: Usługa Container Registry powinna używać punktu końcowego usługi sieci wirtualnej Te zasady sprawdzają, czy żaden rejestr kontenerów nie jest skonfigurowany do używania punktu końcowego usługi sieci wirtualnej. Inspekcja, Wyłączone 1.0.0-preview
Skonfiguruj rejestry kontenerów, aby wyłączyć uwierzytelnianie anonimowe. Wyłącz funkcję ściągnięcia anonimowego dla rejestru, aby dane nie były dostępne dla nieuwierzytelnionego użytkownika. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Modyfikowanie, wyłączone 1.0.0
Skonfiguruj rejestry kontenerów, aby wyłączyć uwierzytelnianie tokenu odbiorców usługi ARM. Wyłącz tokeny odbiorców usługi Azure Active Directory ARM na potrzeby uwierzytelniania w rejestrze. Do uwierzytelniania będą używane tylko tokeny odbiorców Azure Container Registry (ACR). Zapewni to, że do uwierzytelniania mogą być używane tylko tokeny przeznaczone do użycia w rejestrze. Wyłączenie tokenów odbiorców usługi ARM nie ma wpływu na uwierzytelnianie tokenów dostępu użytkownika administratora ani tokenów dostępu w zakresie. Dowiedz się więcej o: https://aka.ms/acr/authentication. Modyfikowanie, wyłączone 1.0.0
Skonfiguruj rejestry kontenerów, aby wyłączyć konto administratora lokalnego. Wyłącz konto administratora dla rejestru, aby nie było dostępne dla administratora lokalnego. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Modyfikowanie, wyłączone 1.0.1
Konfigurowanie rejestrów kontenerów w celu wyłączenia dostępu do sieci publicznej Wyłącz dostęp do sieci publicznej dla zasobu usługi Container Registry, aby nie był dostępny za pośrednictwem publicznego Internetu. Może to zmniejszyć ryzyko wycieku danych. Dowiedz się więcej na stronie https://aka.ms/acr/portal/public-network i https://aka.ms/acr/private-link. Modyfikowanie, wyłączone 1.0.0
Skonfiguruj rejestry kontenerów, aby wyłączyć token dostępu w zakresie repozytorium. Wyłącz tokeny dostępu w zakresie repozytorium dla rejestru, aby repozytoria nie były dostępne za pomocą tokenów. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Modyfikowanie, wyłączone 1.0.0
Konfigurowanie rejestrów kontenerów przy użyciu prywatnych punktów końcowych Prywatne punkty końcowe łączą sieć wirtualną z usługami platformy Azure bez publicznego adresu IP w źródle lub miejscu docelowym. Mapując prywatne punkty końcowe na zasoby rejestru kontenerów w warstwie Premium, można zmniejszyć ryzyko wycieku danych. Dowiedz się więcej na stronie: https://aka.ms/privateendpoints i https://aka.ms/acr/private-link. DeployIfNotExists, Disabled 1.0.0
Rejestry kontenerów powinny być szyfrowane przy użyciu klucza zarządzanego przez klienta Użyj kluczy zarządzanych przez klienta, aby zarządzać szyfrowaniem w spoczynku zawartości rejestrów. Domyślnie dane są szyfrowane w spoczynku 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. Klucze zarządzane przez klienta umożliwiają szyfrowanie danych za pomocą klucza usługi Azure Key Vault utworzonego i należącego do Ciebie. Masz pełną kontrolę i odpowiedzialność za cykl życia klucza, w tym rotację i zarządzanie. Dowiedz się więcej na stronie https://aka.ms/acr/CMK. Inspekcja, odmowa, wyłączone 1.1.2
Rejestry kontenerów powinny mieć wyłączone uwierzytelnianie anonimowe. Wyłącz funkcję ściągnięcia anonimowego dla rejestru, aby dane nie były dostępne dla nieuwierzytelnionego użytkownika. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Inspekcja, odmowa, wyłączone 1.0.0
Rejestry kontenerów powinny mieć wyłączone uwierzytelnianie tokenu odbiorców usługi ARM. Wyłącz tokeny odbiorców usługi Azure Active Directory ARM na potrzeby uwierzytelniania w rejestrze. Do uwierzytelniania będą używane tylko tokeny odbiorców Azure Container Registry (ACR). Zapewni to, że do uwierzytelniania mogą być używane tylko tokeny przeznaczone do użycia w rejestrze. Wyłączenie tokenów odbiorców usługi ARM nie ma wpływu na uwierzytelnianie tokenów dostępu użytkownika administratora ani tokenów dostępu w zakresie. Dowiedz się więcej o: https://aka.ms/acr/authentication. Inspekcja, odmowa, wyłączone 1.0.0
Rejestry kontenerów powinny mieć wyłączone eksporty Wyłączenie eksportu zwiększa bezpieczeństwo, zapewniając dostęp do danych w rejestrze wyłącznie za pośrednictwem planu danych ("ściąganie platformy docker"). Nie można przenosić danych z rejestru za pośrednictwem polecenia "acr import" lub za pośrednictwem polecenia "acr transfer". Aby wyłączyć eksporty, należy wyłączyć dostęp do sieci publicznej. Dowiedz się więcej o: https://aka.ms/acr/export-policy. Inspekcja, odmowa, wyłączone 1.0.0
Rejestry kontenerów powinny mieć wyłączone konto administratora lokalnego. Wyłącz konto administratora dla rejestru, aby nie było dostępne dla administratora lokalnego. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Inspekcja, odmowa, wyłączone 1.0.1
Rejestry kontenerów powinny mieć wyłączony token dostępu w zakresie repozytorium. Wyłącz tokeny dostępu w zakresie repozytorium dla rejestru, aby repozytoria nie były dostępne za pomocą tokenów. Wyłączenie lokalnych metod uwierzytelniania, takich jak użytkownik administracyjny, tokeny dostępu w zakresie repozytorium i anonimowe ściąganie zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów wymagają wyłącznie tożsamości usługi Azure Active Directory na potrzeby uwierzytelniania. Dowiedz się więcej o: https://aka.ms/acr/authentication. Inspekcja, odmowa, wyłączone 1.0.0
Rejestry kontenerów powinny mieć jednostki SKU obsługujące łącza prywatne Azure Private Link umożliwia łączenie sieci wirtualnej z usługami platformy Azure bez publicznego adresu IP w źródle lub miejscu docelowym. Platforma łącza prywatnego obsługuje łączność między konsumentami i usługami za pośrednictwem sieci szkieletowej platformy Azure. Mapowanie prywatnych punktów końcowych na rejestry kontenerów zamiast całej usługi powoduje zmniejszenie ryzyka wycieku danych. Dowiedz się więcej o: https://aka.ms/acr/private-link. Inspekcja, odmowa, wyłączone 1.0.0
Rejestry kontenerów nie powinny zezwalać na nieograniczony dostęp do sieci Rejestry kontenerów platformy Azure domyślnie akceptują połączenia za pośrednictwem Internetu z hostów w dowolnej sieci. Aby chronić rejestry przed potencjalnymi zagrożeniami, zezwalaj na dostęp tylko z określonych prywatnych punktów końcowych, publicznych adresów IP lub zakresów adresów. Jeśli rejestr nie ma skonfigurowanych reguł sieciowych, pojawi się w zasobach w złej kondycji. Dowiedz się więcej o regułach sieci usługi Container Registry tutaj: https://aka.ms/acr/privatelinkihttps://aka.ms/acr/portal/public-networkhttps://aka.ms/acr/vnet. Inspekcja, odmowa, wyłączone 2.0.0
Rejestry kontenerów powinny używać łącza prywatnego Azure Private Link umożliwia łączenie sieci wirtualnej z usługami platformy Azure bez publicznego adresu IP w źródle lub miejscu docelowym. Platforma łącza prywatnego obsługuje łączność między konsumentami i usługami za pośrednictwem sieci szkieletowej platformy Azure. Mapowanie prywatnych punktów końcowych na rejestry kontenerów zamiast całej usługi będzie również chronione przed wyciekami danych. Dowiedz się więcej o: https://aka.ms/acr/private-link. Inspekcja, Wyłączone 1.0.1
Obrazy rejestru kontenerów powinny mieć rozwiązane problemy z lukami w zabezpieczeniach Ocena luk w zabezpieczeniach obrazu kontenera skanuje rejestr pod kątem luk w zabezpieczeniach i ujawnia szczegółowe wyniki dla każdego obrazu. Rozwiązanie luk w zabezpieczeniach może znacznie poprawić stan zabezpieczeń kontenerów i chronić je przed atakami. AuditIfNotExists, Disabled 2.0.1
Dostęp do sieci publicznej powinien być wyłączony dla rejestrów kontenerów Wyłączenie dostępu do sieci publicznej zwiększa bezpieczeństwo, zapewniając, że rejestry kontenerów nie są uwidocznione w publicznym Internecie. Tworzenie prywatnych punktów końcowych może ograniczyć narażenie zasobów rejestru kontenerów. Dowiedz się więcej na stronie: https://aka.ms/acr/portal/public-network i https://aka.ms/acr/private-link. Inspekcja, odmowa, wyłączone 1.0.0

Tworzenie przypisań zasad

Uwaga

Po utworzeniu lub zaktualizowaniu przypisania zasad przypisanie zajmuje trochę czasu, aby przypisanie oceniało zasoby w zdefiniowanym zakresie. Zobacz informacje o wyzwalaczach oceny zasad.

Przeglądanie zgodności zasad

Uzyskaj dostęp do informacji o zgodności generowanych przez przypisania zasad przy użyciu Azure Portal, narzędzi wiersza polecenia platformy Azure lub zestawów SDK Azure Policy. Aby uzyskać szczegółowe informacje, zobacz Pobieranie danych zgodności zasobów platformy Azure.

Jeśli zasób jest niezgodny, istnieje wiele możliwych powodów. Aby określić przyczynę lub znaleźć zmianę odpowiedzialną, zobacz Określanie niezgodności.

Zgodność zasad w portalu:

  1. Wybierz pozycję Wszystkie usługi i wyszukaj pozycję Zasady.

  2. Wybierz pozycję Zgodność.

  3. Użyj filtrów, aby ograniczyć stany zgodności lub wyszukać zasady.

    Zgodność zasad w portalu

  4. Wybierz zasady, aby przejrzeć zagregowane szczegóły zgodności i zdarzenia. W razie potrzeby wybierz określony rejestr pod kątem zgodności zasobów.

Zgodność zasad w interfejsie wiersza polecenia platformy Azure

Możesz również użyć interfejsu wiersza polecenia platformy Azure, aby uzyskać dane zgodności. Na przykład użyj polecenia az policy assignment list w interfejsie wiersza polecenia, aby uzyskać identyfikatory zasad Azure Container Registry zasad, które są stosowane:

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

Przykładowe dane wyjściowe:

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 polecenie az policy state list , aby zwrócić stan zgodności w formacie JSON dla wszystkich zasobów w ramach określonego identyfikatora zasad:

az policy state list \
  --resource <policyID>

Możesz też uruchomić polecenie az policy state list , aby zwrócić stan zgodności w formacie JSON określonego zasobu rejestru, na przykład myregistry:

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

Następne kroki