Delen via


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
  • version
  • 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 mode all 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.
  • Microsoft.LoadTestService.Data voor het beperken van Azure Load Testing-exemplaren tot privé-eindpunten.

Notitie

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

Wanneer versiebeheer van Azure Policy wordt uitgebracht, bieden de volgende resourceprovidermodi geen ondersteuning voor ingebouwde versiebeheer:

  • Microsoft.DataFactory.Data
  • Microsoft.MachineLearningServices.v2.Data
  • Microsoft.ManagedHSM.Data

Versie (preview)

Ingebouwde beleidsdefinities kunnen meerdere versies met hetzelfde definitionIDhosten. Als er geen versienummer is opgegeven, worden in alle ervaringen de nieuwste versie van de definitie weergegeven. Als u een specifieke versie van een ingebouwde versie wilt zien, moet deze worden opgegeven in api, SDK of gebruikersinterface. Als u wilt verwijzen naar een specifieke versie van een definitie binnen een toewijzing, raadpleegt u de definitieversie binnen de toewijzing

De Azure Policy-service maakt gebruik versionvan , previewen deprecated eigenschappen om de status en het wijzigingsniveau over te brengen in een ingebouwde beleidsdefinitie of -initiatief. De notatie version is: {Major}.{Minor}.{Patch}. Wanneer een beleidsdefinitie de preview-status heeft, wordt het achtervoegselvoorbeeld toegevoegd aan de version eigenschap en behandeld als een Booleaanse waarde. Wanneer een beleidsdefinitie wordt afgeschaft, wordt de afschaffing vastgelegd als een Booleaanse waarde in de metagegevens van de definitie met behulp van "deprecated": "true".

  • Primaire versie (voorbeeld: 2.0.0): introduceert belangrijke wijzigingen, zoals belangrijke regellogicawijzigingen, het verwijderen van parameters, het toevoegen van een afdwingingseffect standaard.
  • Secundaire versie (voorbeeld: 2.1.0): introduceert wijzigingen zoals kleine regellogicawijzigingen, het toevoegen van nieuwe parameter toegestane waarden, wijzigen in roleDefinitionIds, toevoegen of verplaatsen van definities binnen een initiatief.
  • Patchversie (voorbeeld: 2.1.4): introduceert tekenreeks- of metagegevenswijzigingen en scenario's voor beveiliging van glas (zeldzaam).

Zie Ingebouwde versiebeheer voor meer informatie over ingebouwde Versies van Azure Policy. 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.

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.

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