Podstawy struktury definicji usługi Azure Policy

Definicje usługi Azure Policy opisują warunki zgodności zasobów i efekt, jaki należy zastosować, jeśli warunek zostanie spełniony. Warunek porównuje pole lub wartość właściwości zasobu z wartością wymaganą. Dostęp do pól właściwości zasobu można uzyskać przy użyciu aliasów. Gdy pole właściwości zasobu jest tablicą, można użyć specjalnego aliasu tablicy, aby wybrać wartości ze wszystkich elementów członkowskich tablicy i zastosować warunek do każdego z nich. Dowiedz się więcej o warunkach.

Za pomocą przypisań zasad można kontrolować koszty i zarządzać zasobami. Można na przykład określić, że dozwolone są tylko niektóre typy maszyn wirtualnych. Możesz też wymagać, aby zasoby miały określony tag. Przypisania w zakresie mają zastosowanie do wszystkich zasobów w tym zakresie i poniżej. Jeśli przypisanie zasad jest stosowane do grupy zasobów, jest ono stosowane do wszystkich zasobów w tej grupie zasobów.

Kod JSON służy do tworzenia definicji zasad zawierającej elementy dla:

  • displayName
  • description
  • mode
  • metadata
  • parameters
  • policyRule
    • oceny logiczne
    • effect

Na przykład poniższy kod JSON przedstawia zasady ograniczające miejsce wdrażania zasobów:

{
  "properties": {
    "displayName": "Allowed locations",
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
    "mode": "Indexed",
    "metadata": {
      "version": "1.0.0",
      "category": "Locations"
    },
    "parameters": {
      "allowedLocations": {
        "type": "array",
        "metadata": {
          "description": "The list of locations that can be specified when deploying resources",
          "strongType": "location",
          "displayName": "Allowed locations"
        },
        "defaultValue": [
          "westus2"
        ]
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "location",
          "in": "[parameters('allowedLocations')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  }
}

Aby uzyskać więcej informacji, przejdź do schematu definicji zasad. Wbudowane i wzorce usługi Azure Policy znajdują się w przykładach usługi Azure Policy.

Nazwa wyświetlana i opis

Używasz funkcji displayName i description do identyfikowania definicji zasad i podaj kontekst, dla którego jest używana definicja. Element displayName ma maksymalną długość 128 znaków i description maksymalną długość 512 znaków.

Uwaga

Podczas tworzenia lub aktualizowania definicji zasad, id, typei name są definiowane przez właściwości zewnętrzne do formatu JSON i nie są niezbędne w pliku JSON. Pobieranie definicji zasad za pomocą zestawu SDK zwraca idwłaściwości , typei name w ramach formatu JSON, ale każda z nich zawiera informacje tylko do odczytu związane z definicją zasad.

Typ zasad

policyType Chociaż nie można ustawić właściwości, w portalu są zwracane trzy wartości, które są zwracane przez zestaw SDK i widoczne w portalu:

  • Builtin: firma Microsoft udostępnia i utrzymuje te definicje zasad.
  • Custom: wszystkie definicje zasad utworzone przez klientów mają tę wartość.
  • Static: wskazuje definicję zasad zgodności z przepisami z własnością firmy Microsoft. Wyniki zgodności tych definicji zasad są wynikami inspekcji infrastruktury firmy Microsoft innych firm. W witrynie Azure Portal ta wartość jest czasami wyświetlana jako zarządzana przez firmę Microsoft. Aby uzyskać więcej informacji, zobacz Wspólna odpowiedzialność w chmurze.

Tryb

Właściwość mode jest skonfigurowana w zależności od tego, czy zasady są przeznaczone dla właściwości usługi Azure Resource Manager lub właściwości dostawcy zasobów.

Tryby usługi Resource Manager

Określa mode , które typy zasobów są oceniane dla definicji zasad. Obsługiwane tryby to:

  • all: ocenianie grup zasobów, subskrypcji i wszystkich typów zasobów
  • indexed: ocenianie tylko typów zasobów obsługujących tagi i lokalizację

Na przykład zasób Microsoft.Network/routeTables obsługuje tagi i lokalizację i jest oceniany w obu trybach. Nie można jednak oznaczyć zasobu Microsoft.Network/routeTables/routes i nie jest oceniany w Indexed trybie.

W większości przypadków zalecamy ustawienie na modeall wartość . Wszystkie definicje zasad utworzone za pośrednictwem portalu używają all trybu . Jeśli używasz programu PowerShell lub interfejsu wiersza polecenia platformy mode Azure, możesz ręcznie określić parametr. Jeśli definicja zasad nie zawiera wartości, wartość domyślna mode to w programie Azure PowerShell i w null interfejsie wiersza polecenia platformy all Azure. Tryb null jest taki sam jak w indexed przypadku obsługi zgodności z poprzednimi wersjami.

indexed należy używać podczas tworzenia zasad wymuszających tagi lub lokalizacje. Chociaż nie jest to wymagane, uniemożliwia to zasobom, które nie obsługują tagów i lokalizacji, są wyświetlane jako niezgodne w wynikach zgodności. Wyjątkiem są grupy zasobów i subskrypcje. Definicje zasad, które wymuszają lokalizację lub tagi w grupie zasobów lub subskrypcji, powinny mieć ustawioną modeallMicrosoft.Resources/subscriptions/resourceGroups wartość i w szczególności określić typ lub .Microsoft.Resources/subscriptions Przykład można znaleźć w temacie Pattern: Tags - Sample #1 (Wzorzec: tagi — przykład nr 1). Aby uzyskać listę zasobów, które obsługują tagi, zobacz Obsługa tagów dla zasobów platformy Azure.

Tryby dostawcy zasobów

Następujące tryby dostawcy zasobów są w pełni obsługiwane:

  • Microsoft.Kubernetes.Data do zarządzania klastrami i składnikami kubernetes, takimi jak zasobniki, kontenery i ruch przychodzący. Obsługiwane w przypadku klastrów usługi Azure Kubernetes Service i klastrów Kubernetes z obsługą usługi Azure Arc. Definicje korzystające z tego trybu dostawcy zasobów używają efektów inspekcji, odmowy i wyłączenia.
  • Microsoft.KeyVault.Data do zarządzania magazynami i certyfikatami w usłudze Azure Key Vault. Aby uzyskać więcej informacji na temat tych definicji zasad, zobacz Integrowanie usługi Azure Key Vault z usługą Azure Policy.
  • Microsoft.Network.Data do zarządzania niestandardowymi zasadami członkostwa w usłudze Azure Virtual Network Manager przy użyciu usługi Azure Policy.

Następujące tryby dostawcy zasobów są obecnie obsługiwane jako wersja zapoznawcza:

  • Microsoft.ManagedHSM.Data do zarządzania kluczami zarządzanego sprzętowego modułu zabezpieczeń (HSM) przy użyciu usługi Azure Policy.
  • Microsoft.DataFactory.Data w przypadku używania usługi Azure Policy do odmowy nazw domen ruchu wychodzącego usługi Azure Data Factory , które nie zostały określone na liście dozwolonych. Ten tryb dostawcy zasobów jest wymuszany tylko i nie zgłasza zgodności w publicznej wersji zapoznawczej.
  • Microsoft.MachineLearningServices.v2.Datado zarządzania wdrożeniami modeli usługi Azure Machine Edukacja. Ten tryb dostawcy zasobów zgłasza zgodność nowo utworzonych i zaktualizowanych składników. W publicznej wersji zapoznawczej rekordy zgodności pozostają przez 24 godziny. Wdrożenia modelu, które istnieją przed przypisaniem tych definicji zasad, nie zgłaszają zgodności.

Uwaga

Jeśli nie określono jawnie, tryby dostawcy zasobów obsługują tylko wbudowane definicje zasad, a wykluczenia nie są obsługiwane na poziomie składników.

Metadane

Opcjonalna metadata właściwość przechowuje informacje o definicji zasad. Klienci mogą definiować dowolne właściwości i wartości przydatne dla swojej organizacji w programie metadata. Istnieją jednak pewne typowe właściwości używane przez usługę Azure Policy i wbudowane. Każda metadata właściwość ma limit 1024 znaków.

Typowe właściwości metadanych

  • version (ciąg): śledzi szczegóły dotyczące wersji zawartości definicji zasad.
  • category (ciąg): określa, w której kategorii w witrynie Azure Portal jest wyświetlana definicja zasad.
  • preview (wartość logiczna): prawda lub fałsz flagi, jeśli definicja zasad jest w wersji zapoznawczej.
  • deprecated (wartość logiczna): prawda lub fałsz flagi, jeśli definicja zasad jest oznaczona jako przestarzała.
  • portalReview (ciąg): określa, czy parametry mają być przeglądane w portalu, niezależnie od wymaganych danych wejściowych.

Uwaga

Usługa Azure Policy używa versionwłaściwości , previewi deprecated do przekazywania poziomu zmiany do wbudowanej definicji zasad lub inicjatywy i stanu. Format to version : {Major}.{Minor}.{Patch}. Określone stany, takie jak przestarzałe lub podgląd, są dołączane do version właściwości lub w innej właściwości jako wartość logiczna. Aby uzyskać więcej informacji na temat sposobu wbudowanych wersji usługi Azure Policy, zobacz Wbudowane przechowywanie wersji. Aby dowiedzieć się więcej na temat tego, co oznacza, że zasady mają być przestarzałe lub w wersji zapoznawczej, zobacz Zasady w wersji zapoznawczej i przestarzałe.

Lokalizacja definicji

Podczas tworzenia inicjatywy lub zasad należy określić lokalizację definicji. Lokalizacja definicji musi być grupą zarządzania lub subskrypcją. Ta lokalizacja określa zakres, do którego można przypisać inicjatywę lub zasady. Zasoby muszą być bezpośrednimi elementami członkowskimi lub elementami podrzędnym w hierarchii lokalizacji definicji, która ma być docelowa dla przypisania.

Jeśli lokalizacja definicji to:

  • Subskrypcja — do definicji zasad można przypisać tylko zasoby w ramach tej subskrypcji.
  • Grupa zarządzania — do definicji zasad można przypisać tylko zasoby w podrzędnych grupach zarządzania i subskrypcjach podrzędnych. Jeśli planujesz zastosować definicję zasad do kilku subskrypcji, lokalizacja musi być grupą zarządzania zawierającą każdą subskrypcję.

Aby uzyskać więcej informacji, zobacz Omówienie zakresu w usłudze Azure Policy.

Następne kroki