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


Oktatóanyag: Egyéni szabályzatdefiníció létrehozása

Az egyéni szabályzatdefiníciók lehetővé teszik az ügyfelek számára, hogy saját szabályokat határozzanak meg az Azure használatára. Ezek a szabályok gyakran az alábbiakat kényszerítik ki:

  • Biztonsági eljárások
  • Költségkezelés
  • Szervezetspecifikus szabályok (például elnevezés vagy helyek)

Az egyéni szabályzat létrehozásának üzleti indokától függetlenül az új egyéni szabályzat definiálásának lépései ugyanazok.

Egyéni szabályzat létrehozása előtt tekintse meg a szabályzatmintákat annak megállapításához, hogy létezik-e már az igényeinek megfelelő szabályzat.

Az egyéni szabályzatok létrehozásának megközelítése az alábbi lépéseket követi:

  • Az üzleti követelmények azonosítása
  • Az egyes követelmények leképezése egy Azure-erőforrástulajdonságra
  • A tulajdonság leképezése egy aliasra
  • A használni kívánt hatás meghatározása
  • A szabályzatdefiníció összeállítása

Előfeltételek

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Követelmények azonosítása

A szabályzatdefiníció létrehozása előtt fontos megérteni a szabályzat célját. Ebben az oktatóanyagban egy gyakori vállalati biztonsági követelményt használunk a következő lépések szemléltetésére:

  • Minden tárfiókot engedélyezni kell a HTTPS-hez
  • Minden tárfiókot le kell tiltani a HTTP-ben

A követelményeknek egyértelműen meg kell határozniuk a "lenni" és a "nem kell" erőforrásállapotokat.

Bár meghatároztuk az erőforrás várt állapotát, még nem határoztuk meg, hogy mit szeretnénk tenni a nem megfelelő erőforrásokkal. Az Azure Policy számos effektust támogat. Ebben az oktatóanyagban az üzleti követelményt úgy határozzuk meg, hogy megakadályozza az erőforrások létrehozását, ha nem felelnek meg az üzleti szabályoknak. Ennek a célnak a teljesítéséhez a Megtagadás effektust fogjuk használni. Azt is szeretnénk, ha egy adott hozzárendelés esetében felfüggesztené a szabályzatot. Ezért a Letiltott effektust fogjuk használni, és az effektust paraméterként fogjuk használni a szabályzatdefinícióban.

Erőforrás tulajdonságainak meghatározása

Az üzleti követelmény alapján az Azure Policyvel auditálandó Azure-erőforrás egy tárfiók. A szabályzatdefinícióban használandó tulajdonságokat azonban nem ismerjük. Az Azure Policy kiértékeli az erőforrás JSON-ábrázolását, ezért meg kell ismernünk az adott erőforráson elérhető tulajdonságokat.

Az Azure-erőforrások tulajdonságainak meghatározására számos módon van lehetőség. Az oktatóanyag mindegyikét áttekintjük:

  • Azure Policy-bővítmény VSCode-hoz
  • Azure Resource Manager-sablonok (ARM-sablonok)
    • Meglévő erőforrás exportálása
    • Létrehozási funkció
    • Gyorssablonok (GitHub)
    • Sablonok referenciadokumentumai
  • Azure Resource Explorer

Erőforrások megtekintése a VS Code-bővítményben

A VS Code-bővítménnyel megkeresheti az erőforrásokat a környezetben, és megtekintheti az egyes erőforrások Resource Manager-tulajdonságait.

ARM-sablonok

Számos módon megtekintheti azt az ARM-sablont, amely a kezelni kívánt tulajdonságot tartalmazza.

Meglévő erőforrás a portálon

A tulajdonságok keresésének legegyszerűbb módja egy azonos típusú, meglévő erőforrás megtekintése. A kikényszeríteni kívánt beállítással konfigurált erőforrások az összehasonlítás alapját adó értéket is megadják. Tekintse meg az Adott erőforráshoz tartozó Azure PortalOn a Sablon exportálása lapot (a Beállítások területen).

Figyelmeztetés

Az Azure Portal által exportált ARM-sablon nem csatlakoztatható közvetlenül egy deployment ARM-sablon tulajdonságához a deployIfNotExists szabályzatdefinícióban.

Képernyőkép egy meglévő erőforrás Exportálás sablonlapjáról az Azure Portalon.

A tárfiókok esetében az alábbi példához hasonló sablon jelenik meg:

...
"resources": [{
    "comments": "Generalized from resource: '/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount'.",
    "type": "Microsoft.Storage/storageAccounts",
    "sku": {
        "name": "Standard_LRS",
        "tier": "Standard"
    },
    "kind": "Storage",
    "name": "[parameters('storageAccounts_mystorageaccount_name')]",
    "apiVersion": "2018-07-01",
    "location": "westus",
    "tags": {
        "ms-resource-usage": "azure-cloud-shell"
    },
    "scale": null,
    "properties": {
        "networkAcls": {
            "bypass": "AzureServices",
            "virtualNetworkRules": [],
            "ipRules": [],
            "defaultAction": "Allow"
        },
        "supportsHttpsTrafficOnly": false,
        "encryption": {
            "services": {
                "file": {
                    "enabled": true
                },
                "blob": {
                    "enabled": true
                }
            },
            "keySource": "Microsoft.Storage"
        }
    },
    "dependsOn": []
}]
...

A tulajdonságok alatt aHttpsTrafficOnly tulajdonságot támogató érték hamis értékre van állítva. Ez a tulajdonság úgy tűnik, hogy az a tulajdonság, amit keresünk. Emellett az erőforrás típusa a Microsoft.Storage/StorageAccounts. Ez a típus lehetővé teszi, hogy a szabályzatot csak az ilyen típusú erőforrásokra korlátozzuk.

Erőforrás létrehozása a portálon

A portálon használható másik módszer az erőforrás-létrehozási funkció. Amikor tárfiókot hoz létre a portálon, a Speciális lap egyik beállítása a Biztonságos átvitelre van szükség. Ez a tulajdonság Letiltva és Engedélyezve beállítással rendelkezik. Az információs ikon további szöveggel rendelkezik, amelyek megerősítik, hogy ez a beállítás valószínűleg a kívánt tulajdonság. A portál azonban nem adja meg a tulajdonság nevét ezen a képernyőn.

A Felülvizsgálat + létrehozás panelen a lap alján található az Automatizálási sablon letöltése hivatkozás a sablon letöltéséhez. A hivatkozás kiválasztásával megnyílik a konfigurált erőforrást létrehozó sablon. Ebben az esetben két fontos információt látunk:

...
"supportsHttpsTrafficOnly": {
    "type": "bool"
}
...
"properties": {
    "accessTier": "[parameters('accessTier')]",
    "supportsHttpsTrafficOnly": "[parameters('supportsHttpsTrafficOnly')]"
}
...

Ez az információ megmutatja a tulajdonság típusát, és azt is megerősíti, hogy aHttpsTrafficOnly az a tulajdonság, amelyet keresünk.

Gyorssablonok a GitHubon

A GitHubon elérhető Azure-gyorssablonok több száz, a különböző erőforrásokhoz készült ARM-sablont biztosítanak. Ezekkel a sablonokkal egyszerűen megtalálhatja a keresett erőforrás-tulajdonságot. Egyes tulajdonságok úgy tűnhetnek, hogy a keresett tulajdonságok, de más tulajdonságokat is vezérelhet.

Erőforrások referenciadokumentumai

Ha ellenőrizni szeretné, hogy aHttpsTrafficOnly helyes tulajdonság-e, ellenőrizze a társzolgáltató tárfiók-erőforrásának ARM-sablonreferenciáját. A tulajdonságokat tartalmazó objektum tartalmazza az érvényes paraméterek listáját. A StorageAccountPropertiesCreateParameters-object hivatkozás kiválasztásával elfogadható tulajdonságokat tartalmazó táblázat jelenik meg. támogatja aHttpsTrafficOnlyt , és a leírás megegyezik azzal, amit keresünk, hogy megfeleljen az üzleti követelményeknek.

Azure Resource Explorer

Az Azure-erőforrások megismerésének másik módja az Azure Resource Explorer (előzetes verzió). Ez az eszköz az előfizetés kontextusát használja, a webhelyen hitelesíteni kell magát az Azure-beli hitelesítő adataival. A hitelesítést követően kereshet szolgáltatók, előfizetések, erőforráscsoportok és erőforrások alapján.

Keresse meg a tárfiók erőforrását, és tekintse meg a tulajdonságokat. Itt is látható aHttpsTrafficOnly tulajdonság. A Dokumentáció lapra kattintva látható, hogy a tulajdonság leírása megegyezik a referenciadokumentumban korábban talált leírással.

A tulajdonság aliasának megkeresése

Azonosítottuk az erőforrástulajdonságot, de le kell képeznünk a tulajdonságot egy aliasra.

Az Azure-erőforrások aliasainak meghatározására többféleképpen is lehetőség van. Az oktatóanyag mindegyikét áttekintjük:

  • Azure Policy-bővítmény VSCode-hoz
  • Azure CLI
  • Azure PowerShell

Aliasok lekérése a VS Code-bővítményben

A VS Code-bővítményhez készült Azure Policy-bővítmény leegyszerűsíti az erőforrások keresését és az aliasok megtalálását.

Feljegyzés

A VS Code-bővítmény csak a Resource Manager mód tulajdonságait teszi elérhetővé, és nem jelenít meg erőforrás-szolgáltatói módtulajdonságokat .

Azure CLI

Az Azure CLI-ben az az provider parancscsoporttal kereshet erőforrás-aliasokat. A Microsoft.Storage-névtérre a korábban az Azure-erőforrással kapcsolatban kapott adatok alapján szűrünk.

# Login first with az login if not using Cloud Shell

# Get Azure Policy aliases for type Microsoft.Storage
az provider show --namespace Microsoft.Storage --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"

Az eredmények között egy olyan alias látható, amelyet aHttpsTrafficOnly nevű tárfiókok támogatnak. Ennek az aliasnak a megléte azt jelenti, hogy megírhatjuk a szabályzatot, hogy betartsuk az üzleti követelményeket!

Azure PowerShell

Az Azure PowerShellben a Get-AzPolicyAlias parancsmaggal kereshet erőforrás-aliasokat. A Microsoft.Storage-névtérre a korábban az Azure-erőforrással kapcsolatban kapott adatok alapján szűrünk.

# Login first with Connect-AzAccount if not using Cloud Shell

# Use Get-AzPolicyAlias to list aliases for Microsoft.Storage
(Get-AzPolicyAlias -NamespaceMatch 'Microsoft.Storage').Aliases

Az Azure CLI-hez hasonlóan az eredmények egy, aHttpsTrafficOnly nevű tárfiókok által támogatott aliast is mutatnak.

A használni kívánt hatás meghatározása

A nem megfelelő erőforrásokkal való teendők eldöntése majdnem ugyanolyan fontos, mint az, hogy eldöntse, mit érdemes kiértékelni. A nem megfelelő erőforrásokra adott minden lehetséges választ effektusnak nevezünk. Az effektus azt szabályozza, hogy a nem megfelelő erőforrás naplózva van-e, blokkolva van-e, hozzá vannak-e fűzve adatok, vagy van-e hozzá egy üzembe helyezés az erőforrás megfelelő állapotba helyezéséhez.

A mi példánkban a Megtagadás az a hatás, amelyet szeretnénk, mivel nem szeretnénk nem megfelelő erőforrásokat létrehozni az Azure-környezetünkben. A naplózás jó első választás a szabályzateffektusokhoz, hogy megállapítsa, milyen hatása van egy szabályzatnak, mielőtt Megtagadás értékre állítja. Az effektus hozzárendelésenkénti módosításának egyik módja az effektus paraméterezése. A részletekért tekintse meg az alábbi paramétereket .

A definíció összeállítása

Most már rendelkezünk a kezelni kívánt tulajdonság részleteinek és aliasának adataival. Ezután meg fogjuk írni magát a szabályzatszabályt. Ha még nem ismeri a szabályzatnyelvet, tekintse meg a szabályzatdefiníciók struktúráját a szabályzatdefiníció strukturálásához. Az alábbiakban egy üres sablont talál a szabályzatdefiníciók megjelenéséről:

{
    "properties": {
        "displayName": "<displayName>",
        "description": "<description>",
        "mode": "<mode>",
        "parameters": {
                <parameters>
        },
        "policyRule": {
            "if": {
                <rule>
            },
            "then": {
                "effect": "<effect>"
            }
        }
    }
}

Metaadatok

A három összetevő közül az első a szabályzat metaadatai. Ezek az összetevők könnyen megadhatnak értékeket, mivel tudjuk, hogy mire hozzuk létre a szabályt. A mód elsősorban a címkékről és az erőforrás helyéről szól. Mivel nem kell a címkéket támogató erőforrásokra korlátozni a kiértékelést, az összes értéket használjuk a módhoz.

"displayName": "Deny storage accounts not using only HTTPS",
"description": "Deny storage accounts not using only HTTPS. Checks the supportsHttpsTrafficOnly property on StorageAccounts.",
"mode": "all",

Paraméterek

Bár nem használtunk paramétert a kiértékelés módosításához, mégis egy paramétert szeretnénk használni a hibaelhárítási hatás megváltoztatásához. Meghatározunk egy effectType paramétert, és csak a Megtagadás és a Letiltás értékre korlátozzuk. Ez a két lehetőség megfelel az üzleti követelményeknek. A kész paraméterblokk a következő példához hasonlóan néz ki:

"parameters": {
    "effectType": {
        "type": "string",
        "defaultValue": "Deny",
        "allowedValues": [
            "Deny",
            "Disabled"
        ],
        "metadata": {
            "displayName": "Effect",
            "description": "Enable or disable the execution of the policy"
        }
    }
},

Szabályzatszabály

A szabályzatszabály összeállítása az egyéni szabályzatdefiníció létrehozásának utolsó lépése. Két olyan utasítást azonosítottunk, amelyek tesztelendők:

  • A tárfiók típusa Microsoft.Storage /storageAccounts
  • A tárfiók támogatja aHttpsTrafficOnly nem igaz

Mivel mindkét állításnak igaznak kell lennie, az allOf logikai operátort fogjuk használni. Az effectType paramétert statikus deklaráció helyett az effektusnak adjuk át. A kész szabály a következő példához hasonlóan néz ki:

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "field": "Microsoft.Storage/storageAccounts/supportsHttpsTrafficOnly",
            "notEquals": "true"
        }
    ]
},
"then": {
    "effect": "[parameters('effectType')]"
}

Létrehozott definíció

A szabályzat mindhárom része definiálva van, itt található a befejezett definíció:

{
    "properties": {
        "displayName": "Deny storage accounts not using only HTTPS",
        "description": "Deny storage accounts not using only HTTPS. Checks the supportsHttpsTrafficOnly property on StorageAccounts.",
        "mode": "all",
        "parameters": {
            "effectType": {
                "type": "string",
                "defaultValue": "Deny",
                "allowedValues": [
                    "Deny",
                    "Disabled"
                ],
                "metadata": {
                    "displayName": "Effect",
                    "description": "Enable or disable the execution of the policy"
                }
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.Storage/storageAccounts"
                    },
                    {
                        "field": "Microsoft.Storage/storageAccounts/supportsHttpsTrafficOnly",
                        "notEquals": "true"
                    }
                ]
            },
            "then": {
                "effect": "[parameters('effectType')]"
            }
        }
    }
}

A létrehozott definíció használható új szabályzatok létrehozásához. A Portál és az egyes SDK-k (Azure CLI, Azure PowerShell és REST API) különböző módokon fogadják el a definíciót, ezért tekintse át az egyes parancsokat a helyes használat ellenőrzéséhez. Ezután a paraméterezett hatással rendelje hozzá a szabályzatot a megfelelő erőforrásokhoz a tárfiókok biztonságának kezelése érdekében.

Az erőforrások eltávolítása

Ha végzett az oktatóanyag erőforrásaival, az alábbi lépésekkel törölheti a fent létrehozott hozzárendeléseket vagy definíciókat:

  1. Az Azure Policy oldal bal oldalán válassza a Definíciók (vagy Hozzárendelések , ha egy feladatot szeretne törölni) lehetőséget a Létrehozás területen.

  2. Keresse meg az eltávolítani kívánt új kezdeményezést vagy szabályzatdefiníciót (vagy hozzárendelést).

  3. Kattintson a jobb gombbal a sorra, vagy a bal gombbal a definíció (vagy a hozzárendelés) mellett található három pontra, majd a Definíció törlése (vagy a Hozzárendelés törlése) parancsra.

Áttekintés

Ebben az oktatóanyagban sikeresen elvégezte a következőket:

  • Azonosította az üzleti követelményeket
  • Az egyes követelmények megfeleltetése egy Azure-erőforrástulajdonságra
  • A tulajdonság leképezése aliasra
  • A használni kívánt hatás meghatározása
  • A szabályzatdefiníció összeállítása

Következő lépések

Ezután az egyéni szabályzatdefinícióval hozzon létre és rendeljen hozzá egy szabályzatot: