Megosztás a következőn keresztül:


Szabályzatok létrehozása programozott módon

Ez a cikk végigvezeti a szabályzatok programozott létrehozásának és kezelésének folyamatán. Az Azure Policy-definíciók különböző szabályokat és hatásokat kényszerítenek ki az erőforrásokon. A kényszerítés gondoskodik arról, hogy az erőforrások megfeleljenek a vállalati szabványoknak és a szolgáltatási szintű szerződéseknek.

A megfelelőségről további információt a megfelelőségi adatok lekéréséről talál.

Előfeltételek

Mielőtt hozzákezdene, győződjön meg arról, hogy a következő előfeltételek teljesülnek:

  1. Ha még nem tette meg, telepítse az ARMClient eszközt. Ez egy olyan segédprogram, amely HTTP-kéréseket küld az Azure Resource Manager-alapú API-khoz.

  2. Frissítse az Azure PowerShell-modult a legújabb verzióra. Részletes információkért tekintse meg az Azure PowerShell-modul telepítését ismertető témakört. A legújabb verzióval kapcsolatos további információkért lásd az Azure PowerShellt.

  3. Regisztrálja az Azure Policy Insights erőforrás-szolgáltatót az Azure PowerShell használatával annak ellenőrzéséhez, hogy az előfizetés működik-e az erőforrás-szolgáltatóval. Erőforrás-szolgáltató regisztrálásához engedéllyel kell rendelkeznie az erőforrás-szolgáltató regisztrációs műveletének futtatásához. Ezt a műveletet a Közreműködői és Tulajdonosi szerepkörök magukba foglalják. Az erőforrás-szolgáltató regisztrálásához futtassa az alábbi parancsot:

    Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
    

    Az erőforrás-szolgáltatók regisztrálásával és megtekintésével kapcsolatos további információért tekintse meg az erőforrás-szolgáltatókat és típusaikat ismertető cikket.

  4. Ha még nem tette meg, telepítse az Azure CLI-t. A legújabb verziót az Azure CLI windowsos telepítésekor szerezheti be.

Szabályzatdefiníció létrehozása és hozzárendelése

Az erőforrások jobb láthatóságának első lépése a szabályzatok létrehozása és hozzárendelése az erőforrásokhoz. A következő lépés a szabályzatok programozott létrehozásának és hozzárendelésének elsajátítása. A példaszabályzat a PowerShell, az Azure CLI és a HTTP-kérések használatával minden nyilvános hálózat számára nyitott tárfiókokat naplóz.

Szabályzatdefiníció létrehozása és hozzárendelése a PowerShell-lel

  1. Az alábbi JSON-kódrészlettel hozzon létre egy JSON-fájlt AuditStorageAccounts.json néven.

    {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
            "equals": "Allow"
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
    

    További információ a szabályzatdefiníciók készítéséről: Azure Policy Definition Structure.

  2. Futtassa a következő parancsot egy szabályzatdefiníció létrehozásához a AuditStorageAccounts.json fájl használatával.

    New-AzPolicyDefinition -Name 'AuditStorageAccounts' -DisplayName 'Audit Storage Accounts Open to Public Networks' -Policy 'AuditStorageAccounts.json'
    

    A parancs létrehoz egy Audit Storage Accounts Open to Public Networks nevű szabályzatdefiníciót. További információ a használható egyéb paraméterekről: New-AzPolicyDefinition.

    Helyparaméterek nélküli hívás esetén New-AzPolicyDefinition alapértelmezés szerint a szabályzat definícióját a munkamenetkörnyezet kiválasztott előfizetésében menti. Ha a definíciót egy másik helyre szeretné menteni, használja a következő paramétereket:

    • SubscriptionId – Mentés másik előfizetésbe. GUID-értéket igényel.
    • ManagementGroupName: Mentés egy felügyeleti csoportba. Karakterlánc értéket igényel.
  3. A szabályzatdefiníció létrehozása után a következő parancsok futtatásával hozhat létre szabályzat-hozzárendelést:

    $rg = Get-AzResourceGroup -Name 'ContosoRG'
    $Policy = Get-AzPolicyDefinition -Name 'AuditStorageAccounts'
    New-AzPolicyAssignment -Name 'AuditStorageAccounts' -PolicyDefinition $Policy -Scope $rg.ResourceId
    

    Cserélje le a ContosoRG-t a kívánt erőforráscsoport nevére.

    A Scope paraméter felügyeleti New-AzPolicyAssignment csoporttal, előfizetéssel, erőforráscsoporttal vagy egyetlen erőforrással működik. A paraméter egy teljes erőforrás-elérési utat használ, amelyet a ResourceId tulajdonság Get-AzResourceGroup ad vissza. Az egyes tárolókra vonatkozó mintázat Scope a következő. Cserélje le a {rName}, {rgName}, {subId}, és {mgName} elemeket az erőforrás nevére, az erőforráscsoport nevére, az előfizetés azonosítójára és a felügyeleti csoport nevére. {rType} helyébe az erőforrás erőforrástípusát helyettesítik, például Microsoft.Compute/virtualMachines egy virtuális gép esetében.

    • Erőforrás - /subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName}
    • Erőforráscsoport – /subscriptions/{subId}/resourceGroups/{rgName}
    • Előfizetés- /subscriptions/{subId}
    • Felügyeleti csoport – /providers/Microsoft.Management/managementGroups/{mgName}

Az erőforrás-szabályzatok Resource Manager PowerShell-modullal történő kezelésével kapcsolatos további információkért lásd: Az.Resources.

Szabályzatdefiníció létrehozása és hozzárendelése az ARMClient használatával

Szabályzatdefiníció létrehozásához használja az alábbi eljárást.

  1. Másolja a következő JSON-kódrészletet egy JSON-fájl létrehozásához. A következő lépésben meghívja a fájlt.

    "properties": {
      "displayName": "Audit Storage Accounts Open to Public Networks",
      "policyType": "Custom",
      "mode": "Indexed",
      "description": "This policy ensures that storage accounts with exposure to Public Networks are audited.",
      "parameters": {},
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
              "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
              "equals": "Allow"
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  2. Hozza létre a szabályzatdefiníciót az alábbi hívások egyikével:

    # For defining a policy in a subscription
    armclient PUT "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file>
    
    # For defining a policy in a management group
    armclient PUT "/providers/Microsoft.Management/managementgroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file>
    

    Cserélje le az előzőt {subscriptionId} az előfizetés azonosítójára vagy {managementGroupId} a felügyeleti csoport azonosítójára.

    További információt a lekérdezés szerkezetéről az alábbi témakörökben talál: Azure Policy Definíciók – Létrehozás vagy frissítés és Policy Definíciók – Létrehozás vagy frissítés a Felügyeleti Csoportnál.

Az alábbi eljárással hozzon létre egy szabályzat-hozzárendelést, és rendelje hozzá a szabályzatdefiníciót az erőforráscsoport szintjén.

  1. Másolja a következő JSON-kódrészletet egy JSON-szabályzat-hozzárendelési fájl létrehozásához. A szimbólumokban szereplő <> példaadatokat cserélje le a saját értékeire.

    {
      "properties": {
        "description": "This policy assignment makes sure that storage accounts with exposure to Public Networks are audited.",
        "displayName": "Audit Storage Accounts Open to Public Networks Assignment",
        "parameters": {},
        "policyDefinitionId": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks",
        "scope": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>"
      }
    }
    
  2. Hozza létre a szabályzat-hozzárendelést a következő hívással:

    armclient PUT "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Authorization/policyAssignments/Audit Storage Accounts Open to Public Networks?api-version=2021-09-01" @<path to Assignment JSON file>
    

    A szimbólumokban szereplő <> példaadatokat cserélje le a saját értékeire.

    A HTTP-hívások REST API-ba való indításáról további információt az Azure REST API-erőforrásokban talál.

Szabályzatdefiníció létrehozása és hozzárendelése az Azure CLI-vel

Szabályzatdefiníció létrehozásához kövesse az alábbi eljárást:

  1. Másolja a következő JSON-kódrészletet egy JSON-szabályzat-hozzárendelési fájl létrehozásához.

    {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
            "equals": "Allow"
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
    

    További információ a szabályzatdefiníciók készítéséről: Azure Policy Definition Structure.

  2. Szabályzatdefiníció létrehozásához futtassa a következő parancsot:

    az policy definition create --name 'audit-storage-accounts-open-to-public-networks' --display-name 'Audit Storage Accounts Open to Public Networks' --description 'This policy ensures that storage accounts with exposures to public networks are audited.' --rules '<path to json file>' --mode All
    

    A parancs létrehoz egy Audit Storage Accounts Open to Public Networks nevű szabályzatdefiníciót. További információt az egyéb paraméterekről, amelyeket használhat, lásd: az policy definition create.

    Ha helyparaméterek nélkül hívják meg, a az policy definition creation alapértelmezés szerint a szabályzatdefiníciót a munkameneti környezet kiválasztott előfizetésében menti. Ha a definíciót egy másik helyre szeretné menteni, használja a következő paramétereket:

    • előfizetés – Mentés másik előfizetésbe. Egy GUID érték szükséges az előfizetés azonosítójához, vagy egy sztring érték az előfizetés nevéhez.
    • felügyeleti csoport – Mentés egy felügyeleti csoportba. Egy string értéket igényel.
  3. Szabályzat-hozzárendelés létrehozásához használja az alábbi parancsot. Cserélje le a példaadatokat szögletes zárójelek szimbólumaiban < > a saját értékeire.

    az policy assignment create --name '<name>' --scope '<scope>' --policy '<policy definition ID>'
    

    A scope paraméter felügyeleti az policy assignment create csoporttal, előfizetéssel, erőforráscsoporttal vagy egyetlen erőforrással működik. A paraméter egy teljes erőforrás-elérési utat használ. Az scope mintája az egyes tárolók esetében a következő. Cserélje le a {rName} erőforrás nevét, a {rgName} erőforráscsoport nevét, a {subId} előfizetés azonosítóját és a {mgName} felügyeleti csoport nevét. A {rType} az erőforrás erőforrástípusával lesz lecserélve, például Microsoft.Compute/virtualMachines egy virtuális gépnél.

    • Erőforrás- /subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName}
    • Erőforráscsoport – /subscriptions/{subID}/resourceGroups/{rgName}
    • Előfizetés- /subscriptions/{subID}
    • Felügyeleti csoport – /providers/Microsoft.Management/managementGroups/{mgName}

Az Azure Policy Definition AZONOSÍTÓját a PowerShell használatával szerezheti be a következő paranccsal:

az policy definition show --name 'Audit Storage Accounts with Open Public Networks'

A létrehozott szabályzatdefiníció szabályzatdefiníció-azonosítójának az alábbi példához kell hasonlítania:

"/subscription/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks"

Az erőforrás-szabályzatok Azure CLI-vel való kezelésével kapcsolatos további információkért lásd az Azure CLI erőforrásszabályzatait.

Következő lépések

A cikkben található parancsokkal és lekérdezésekkel kapcsolatos további információkért tekintse át az alábbi cikkeket.