Gyakorlat – Erőforrások üzembe helyezése felügyeleti csoportban

Befejeződött

A Project Teddybear sikeres volt, és most a játékvállalat titkos R&D fejlesztése készen áll arra, hogy még több új játékot kutatjon. A csapat majdnem napi rendszerességgel kezdett új előfizetéseket kérni, és mindegyikre alkalmaznia kell a szabályzatait.

A szabályzatdefiníciók és hozzárendelések duplikálása helyett úgy döntött, hogy a csoport összes előfizetését egy felügyeleti csoportba helyezi. Ezután a szabályzatot az egyes előfizetések helyett a teljes felügyeleti csoportra alkalmazhatja.

Ebben a gyakorlatban létrehoz egy új Bicep-sablont, amely szabályzatdefiníciókat és hozzárendeléseket alkalmaz egy felügyeleti csoportra.

A folyamat során a következőt fogja elvégezni:

  • Hozzon létre egy új felügyeleti csoportot.
  • Hozzon létre egy új felügyeleti csoport hatókörű Bicep-fájlt.
  • Adja hozzá az Azure Policy-erőforrásokat a fájlhoz.
  • Kapcsolja a szabályzat-hozzárendelést a szabályzatdefinícióhoz az erőforrás-azonosító manuális összeállításával.
  • Helyezze üzembe a sablont, és ellenőrizze az eredményt.

Ehhez a gyakorlathoz a következő előfeltételek szükségesek:

  • A felügyeleti csoportokat engedélyezni kell az Azure-bérlőn.
  • Engedélyekre van szüksége egy új felügyeleti csoport létrehozásához a hierarchián belül.
  • Engedélyekre van szüksége az Azure Policy-erőforrások felügyeleti csoportban való üzembe helyezéséhez.

Ha a jelenlegi Azure-fiókjával nem tudja teljesíteni ezeket a követelményeket, ingyenes próbaverziót kaphat, és létrehozhat egy új Azure-előfizetést és -bérlőt. Másik lehetőségként kihagyhatja a gyakorlat üzembe helyezési lépéseit.

Felügyeleti csoport létrehozása

Ebben a gyakorlatban létrehoz egy új felügyeleti csoportot, hogy véletlenül ne befolyásolja az Azure-környezet egy másik részén található erőforrásokat.

A Visual Studio Code terminálon futtassa a következő Azure CLI-parancsokat:

az account management-group create \
  --name SecretRND \
  --display-name "Secret R&D Projects"

Alapértelmezés szerint az új felügyeleti csoport a bérlői gyökérszintű felügyeleti csoport közvetlen gyermekeként jön létre. Ha a felügyeleti csoportot egy adott helyre kell helyeznie a meglévő felügyeleti csoport hierarchiájában, használja a --parent-id paramétert, és adja meg a szülőként használni kívánt felügyeleti csoport nevét.

A Visual Studio Code terminálon futtassa a következő Azure PowerShell-parancsokat:

New-AzManagementGroup `
  -GroupId 'SecretRND' `
  -DisplayName 'Secret R&D Projects'

Alapértelmezés szerint az új felügyeleti csoport a bérlő gyökérszintű felügyeleti csoportjának gyermekeként jön létre. Ha a felügyeleti csoportot egy adott helyre kell helyeznie a meglévő felügyeleti csoport hierarchiájában, használja a -ParentId paramétert, és adja meg a szülőként használni kívánt felügyeleti csoport nevét.

Egy valós üzembe helyezés során az R&D-csapat előfizetéseit áthelyezi a felügyeleti csoportba. Ebben a gyakorlatban akkor is üzembe helyezi a szabályzatokat, ha a felügyeleti csoport nem tartalmaz előfizetéseket. Ugyanez az üzembe helyezési folyamat vonatkozik arra, hogy a felügyeleti csoport üres vagy előfizetéseket tartalmaz-e.

Bicep-fájl létrehozása felügyeleti csoporton való üzembe helyezéshez

  1. Nyissa meg a Visual Studio Code-ot.

  2. Törölje a main.bicep fájlt, majd hozzon létre egy új üres fájlt ugyanazzal a névvel.

  3. Mentse az üres fájlt.

  4. Adja hozzá a következő tartalmat a fájlhoz.

    targetScope = 'managementGroup'
    

    Vegye figyelembe, hogy ez a kódsor tájékoztatja a Bicepet, hogy a sablon a felügyeleti csoport hatókörében lesz üzembe helyezve.

Szabályzatdefiníció hozzáadása

Ahogy korábban is tette, hozzon létre egy szabályzatdefiníciót a Bicep-fájlban.

  1. Az imént hozzáadott sor alatt adja hozzá a következő változódefiníciót:

    var policyDefinitionName = 'DenyFandGSeriesVMs'
    
  2. A fájl alján adja hozzá a következő Azure Policy-definíciót:

    resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2020-03-01' = {
      name: policyDefinitionName
      properties: {
        policyType: 'Custom'
        mode: 'All'
        parameters: {}
        policyRule: {
          if: {
            allOf: [
              {
                field: 'type'
                equals: 'Microsoft.Compute/virtualMachines'
              }
              {
                anyOf: [
                  {
                    field: 'Microsoft.Compute/virtualMachines/sku.name'
                    like: 'Standard_F*'
                  }
                  {
                    field: 'Microsoft.Compute/virtualMachines/sku.name'
                    like: 'Standard_G*'
                  }
                ]
              }
            ]
          }
          then: {
            effect: 'deny'
          }
        }
      }
    }
    

    A szabályzatdefiníció megegyezik az előfizetésre korábban alkalmazott szabályzattal. Ezúttal azonban egy felügyeleti csoportban helyezi üzembe.

Szabályzat-hozzárendelés hozzáadása

Most alkalmazza a szabályzatot a felügyeleti csoportra. Ez azt jelenti, hogy a szabályzat a felügyeleti csoport összes gyermek előfizetésére érvényes lesz.

  1. policyDefinitionName A változódefiníció alatt adja hozzá a következő változót:

    var policyAssignmentName = 'DenyFandGSeriesVMs'
    
  2. A fájl alján, a szabályzatdefiníciós erőforrás alatt adja hozzá a következő szabályzat-hozzárendelést:

    resource policyAssignment 'Microsoft.Authorization/policyAssignments@2020-03-01' = {
      name: policyAssignmentName
      properties: {
        policyDefinitionId: policyDefinition.id
      }
    }
    
  3. Mentse a fájl módosításait.

A sablon ellenőrzése

A sablonnak a következőképpen kell kinéznie:

targetScope = 'managementGroup'

var policyDefinitionName = 'DenyFandGSeriesVMs'
var policyAssignmentName = 'DenyFandGSeriesVMs'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2020-03-01' = {
  name: policyDefinitionName
  properties: {
    policyType: 'Custom'
    mode: 'All'
    parameters: {}
    policyRule: {
      if: {
        allOf: [
          {
            field: 'type'
            equals: 'Microsoft.Compute/virtualMachines'
          }
          {
            anyOf: [
              {
                field: 'Microsoft.Compute/virtualMachines/sku.name'
                like: 'Standard_F*'
              }
              {
                field: 'Microsoft.Compute/virtualMachines/sku.name'
                like: 'Standard_G*'
              }
            ]
          }
        ]
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource policyAssignment 'Microsoft.Authorization/policyAssignments@2020-03-01' = {
  name: policyAssignmentName
  properties: {
    policyDefinitionId: policyDefinition.id
  }
}

Ha nem, másolja ki a példát, vagy módosítsa a sablont a példának megfelelően.

A sablon üzembe helyezése az Azure-ban

A Visual Studio Code terminálban helyezze üzembe a sablont az alábbi Azure CLI-parancsokkal:

managementGroupId="SecretRND"
templateFile="main.bicep"
today=$(date +"%d-%b-%Y")
deploymentName="mg-scope-"$today

az deployment mg create \
  --management-group-id $managementGroupId \
  --name $deploymentName \
  --location westus \
  --template-file $templateFile

Helyezze üzembe a sablont Azure PowerShell-parancsok használatával a terminálban.

$managementGroupId = 'SecretRND'
$templateFile = 'main.bicep'
$today = Get-Date -Format 'MM-dd-yyyy'
$deploymentName = "mg-scope-$today"

New-AzManagementGroupDeployment `
  -ManagementGroupId $managementGroupId `
  -Name $deploymentName `
  -Location westus `
  -TemplateFile $templateFile

Figyelje meg, hogy az előfizetések központi telepítéséhez hasonlóan explicit módon adja meg az üzembehelyezési metaadatok nevét és helyét. A mai dátumot használva csökkenti a meglévő üzembe helyezési név használatának esélyét.

Az üzembe helyezés végrehajtása eltarthat egy-két percig, majd megjelenik egy sikeres üzembe helyezés.

Az üzemelő példány ellenőrzése

Az előfizetés-hatókörű üzemelő példányokhoz hasonlóan a felügyeleti csoport hatókörű üzemelő példányait is megtekintheti az Azure Portalon.

  1. Nyissa meg az Azure Portalt.

  2. A bal oldali panelen válassza a Minden szolgáltatás lehetőséget.

  3. A Keresőmezőbe írja be a felügyeleti csoportot, majd válassza ki a Felügyeleti csoportokat a találatok listájában.

    Screenshot of the Azure portal interface showing the service list with 'Management groups' highlighted.

  4. Válassza ki a Titkos R&D-projektek felügyeleti csoportját .

    Screenshot of the Azure portal interface, highlighting 'Secret R&D Projects' in the list of management groups.

  5. A bal oldali ablaktáblán a Keresőmezőbe írja be az Üzembe helyezéseket, majd válassza a Központi telepítések lehetőséget az Irányítás területen.

    Screenshot of the Azure portal interface, showing the management group details.

  6. Válassza ki az mg-hatókörrel kezdődő üzembe helyezést az üzembe helyezett erőforrások megtekintéséhez.

    Screenshot of the Azure portal Deployments pane, highlighting the 'mg-scope-*' deployment in the list of deployments.

  7. A kijelölt üzembe helyezés Áttekintés ablaktábláján válassza az Üzembe helyezés részletei lehetőséget a kibontásához. A két Azure Policy-erőforrás szerepel a listán.

    Screenshot of the Azure portal 'Overview' pane for the selected deployment.

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

Sikeresen üzembe helyezte a felügyeleti csoport hatókörű erőforrásait. Eltávolíthatja a létrehozott szabályzaterőforrásokat és felügyeleti csoportot.

az account management-group delete --name SecretRND
Remove-AzManagementGroup -GroupId SecretRND