Basisbeginselen van Azure Policy-definitiestructuur

Azure Policy-definities beschrijven nalevingsvoorwaarden voor resources en het effect dat moet worden uitgevoerd als aan een voorwaarde wordt voldaan. Een voorwaarde vergelijkt een resource-eigenschapsveld of waarde met een vereiste waarde. Resource-eigenschapsvelden worden geopend met behulp van aliassen. Wanneer een resource-eigenschapsveld een matrix is, kan een speciale matrixalias worden gebruikt om waarden te selecteren uit alle matrixleden en een voorwaarde toe te passen op elk veld. Meer informatie over voorwaarden.

Met behulp van beleidstoewijzingen kunt u de kosten beheren en uw resources beheren. U kunt bijvoorbeeld opgeven dat alleen bepaalde typen virtuele machines zijn toegestaan. U kunt ook vereisen dat resources een bepaalde tag hebben. Toewijzingen in een bereik zijn van toepassing op alle resources binnen dat bereik en hieronder. Als een beleidstoewijzing wordt toegepast op een resourcegroep, is dit beleid ook van toepassing op alle resources in deze resourcegroep.

U gebruikt JSON om een beleidsdefinitie te maken die elementen bevat voor:

  • displayName
  • description
  • mode
  • metadata
  • parameters
  • policyRule
    • logische evaluaties
    • effect

In de volgende JSON wordt bijvoorbeeld een beleid weergegeven dat beperkt waar resources worden geïmplementeerd:

{
  "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"
      }
    }
  }
}

Ga naar het schema voor beleidsdefinities voor meer informatie. Ingebouwde Azure Policy-functies en -patronen bevinden zich in Azure Policy-voorbeelden.

Schermnaam en -beschrijving

U gebruikt displayName en description identificeert de beleidsdefinitie en geeft context op wanneer de definitie wordt gebruikt. De displayName waarde heeft een maximale lengte van 128 tekens en description een maximumlengte van 512 tekens.

Notitie

Tijdens het maken of bijwerken van een beleidsdefinitie, idtypeen name worden gedefinieerd door eigenschappen buiten de JSON en zijn ze niet nodig in het JSON-bestand. Als u de beleidsdefinitie via SDK ophaalt, worden de id, typeen name eigenschappen geretourneerd als onderdeel van de JSON, maar elk zijn alleen-lezen informatie met betrekking tot de beleidsdefinitie.

Beleidstype

Hoewel de policyType eigenschap niet kan worden ingesteld, worden er drie waarden geretourneerd door SDK en zichtbaar in de portal:

  • Builtin: Microsoft biedt en onderhoudt deze beleidsdefinities.
  • Custom: Alle beleidsdefinities die door klanten zijn gemaakt, hebben deze waarde.
  • Static: Geeft een definitie van het nalevingsbeleid voor regelgeving aan met Microsoft-eigendom. De nalevingsresultaten voor deze beleidsdefinities zijn de resultaten van niet-Microsoft-controles van de Microsoft-infrastructuur. In Azure Portal wordt deze waarde soms weergegeven als Door Microsoft beheerd. Zie Gedeelde verantwoordelijkheid in de cloud voor meer informatie.

Modus

Het mode is geconfigureerd, afhankelijk van of het beleid is gericht op een Azure Resource Manager-eigenschap of een resourceprovidereigenschap.

Resource Manager-modi

De mode bepaalt welke resourcetypen worden geëvalueerd voor een beleidsdefinitie. De ondersteunde modi zijn:

  • all: resourcegroepen, abonnementen en alle resourcetypen evalueren
  • indexed: alleen resourcetypen evalueren die ondersteuning bieden voor tags en locatie

Resource ondersteunt bijvoorbeeld Microsoft.Network/routeTables tags en locatie en wordt geëvalueerd in beide modi. Microsoft.Network/routeTables/routes Resource kan echter niet worden gelabeld en wordt niet geëvalueerd in Indexed de modus.

In de meeste gevallen wordt u aangeraden dit in te all stellenmode. Alle beleidsdefinities die via de portal zijn gemaakt, gebruiken de all modus. Als u PowerShell of Azure CLI gebruikt, kunt u de mode parameter handmatig opgeven. Als de beleidsdefinitie geen waarde bevat mode , wordt deze standaard ingesteld all in Azure PowerShell en null in Azure CLI. Een null modus is hetzelfde als het gebruik indexed om compatibiliteit met eerdere versies te ondersteunen.

indexed moet worden gebruikt bij het maken van beleid waarmee tags of locaties worden afgedwongen. Hoewel dit niet vereist is, voorkomt u dat resources die geen ondersteuning bieden voor tags en locaties, worden weergegeven als niet-compatibel in de nalevingsresultaten. De uitzondering is resourcegroepen en abonnementen. Beleidsdefinities die locatie of tags afdwingen voor een resourcegroep of abonnement, moeten zijn ingesteld modeall op en specifiek gericht zijn op het Microsoft.Resources/subscriptions/resourceGroups of Microsoft.Resources/subscriptions type. Zie Patroon: Tags - Voorbeeld 1 voor een voorbeeld. Zie Tag-ondersteuning voor Azure-resources voor een lijst met resources die tags ondersteunen.

Resourceprovidermodi

De volgende resourceprovidermodi worden volledig ondersteund:

  • Microsoft.Kubernetes.Data voor het beheren van Kubernetes-clusters en -onderdelen, zoals pods, containers en ingresses. Ondersteund voor Azure Kubernetes Service-clusters en Kubernetes-clusters met Azure Arc. Definities die deze resourceprovidermodus gebruiken, gebruiken de effecten controleren, weigeren en uitgeschakeld.
  • Microsoft.KeyVault.Data voor het beheren van kluizen en certificaten in Azure Key Vault. Zie Azure Key Vault integreren met Azure Policy voor meer informatie over deze beleidsdefinities.
  • Microsoft.Network.Data voor het beheren van aangepast lidmaatschapsbeleid van Azure Virtual Network Manager met behulp van Azure Policy.

De volgende resourceprovidermodi worden momenteel ondersteund als preview:

  • Microsoft.ManagedHSM.Data voor het beheren van HSM-sleutels (Managed Hardware Security Module) met behulp van Azure Policy.
  • Microsoft.DataFactory.Data voor het gebruik van Azure Policy voor het weigeren van uitgaande verkeer van Azure Data Factory-domeinnamen die niet zijn opgegeven in een acceptatielijst. Deze resourceprovidermodus wordt alleen afgedwongen en rapporteert geen naleving in openbare preview.
  • Microsoft.MachineLearningServices.v2.Data voor het beheren van Azure Machine Learning-modelimplementaties . Deze resourceprovidermodus rapporteert naleving voor nieuw gemaakte en bijgewerkte onderdelen. Tijdens de openbare preview blijven nalevingsrecords 24 uur bestaan. Modelimplementaties die bestaan voordat deze beleidsdefinities worden toegewezen, rapporteren geen naleving.

Notitie

Tenzij expliciet vermeld, ondersteunen resourceprovidermodi alleen ingebouwde beleidsdefinities en worden uitzonderingen niet ondersteund op onderdeelniveau.

Metagegevens

Met de optionele metadata eigenschap wordt informatie over de beleidsdefinitie opgeslagen. Klanten kunnen eigenschappen en waarden definiëren die nuttig zijn voor hun organisatie in metadata. Er zijn echter enkele algemene eigenschappen die worden gebruikt door Azure Policy en ingebouwde functies. Elke metadata eigenschap heeft een limiet van 1024 tekens.

Algemene eigenschappen van metagegevens

  • version (tekenreeks): Houdt details bij over de versie van de inhoud van een beleidsdefinitie.
  • category (tekenreeks): Bepaalt onder welke categorie in Azure Portal de beleidsdefinitie wordt weergegeven.
  • preview(Booleaanse waarde): Waar of onwaar voor als de beleidsdefinitie een preview-versie is.
  • deprecated (Booleaanse waarde): Waar of onwaar voor als de beleidsdefinitie is gemarkeerd als afgeschaft.
  • portalReview (tekenreeks): bepaalt of parameters moeten worden gecontroleerd in de portal, ongeacht de vereiste invoer.

Notitie

De Azure Policy-service gebruikt version, previewen deprecated eigenschappen om het wijzigingsniveau over te brengen naar een ingebouwde beleidsdefinitie of initiatief en status. De notatie version is: {Major}.{Minor}.{Patch}. Specifieke statussen, zoals afgeschaft of preview, worden toegevoegd aan de version eigenschap of in een andere eigenschap als een Booleaanse waarde. Zie Ingebouwde versiebeheer voor meer informatie over de manier waarop ingebouwde Versies van Azure Policy worden gebruikt. Zie Preview- en afgeschafte beleidsregels voor meer informatie over wat het betekent voor een beleid dat moet worden afgeschaft of als preview-versie wordt gebruikt.

Definitielocatie

Tijdens het maken van een initiatief of beleid moet u de definitielocatie opgeven. De definitielocatie moet een beheergroep of een abonnement zijn. Deze locatie bepaalt het bereik waaraan het initiatief of beleid kan worden toegewezen. Resources moeten directe leden zijn van of onderliggende items in de hiërarchie van de definitielocatie die moeten worden gericht op toewijzing.

Als de definitielocatie een:

  • Abonnement : alleen resources binnen dat abonnement kunnen worden toegewezen aan de beleidsdefinitie.
  • Beheergroep : alleen resources binnen onderliggende beheergroepen en onderliggende abonnementen kunnen worden toegewezen aan de beleidsdefinitie. Als u van plan bent de beleidsdefinitie toe te passen op verschillende abonnementen, moet de locatie een beheergroep zijn die elk abonnement bevat.

Zie Bereik in Azure Policy begrijpen voor meer informatie.

Volgende stappen