Cvičení – nasazení prostředků do skupiny pro správu

Dokončeno

Projekt Teddybear byl úspěšný a nyní tajný vývoj V&D ve vaší hračkové společnosti je připraven prozkoumat ještě více nových hraček. Tým vás začal žádat o nová předplatná téměř každý den a musí pro ně použít své zásady.

Místo duplikování definic a přiřazení zásad v každém předplatném jste se rozhodli umístit všechna předplatná týmu do skupiny pro správu. Zásady pak můžete použít pro celou skupinu pro správu místo pro jednotlivá předplatná.

V tomto cvičení vytvoříte novou šablonu Bicep, která použije definice zásad a přiřazení pro skupinu pro správu.

Během tohoto procesu:

  • Vytvořte novou skupinu pro správu.
  • Vytvořte nový soubor Bicep s oborem skupiny pro správu.
  • Přidejte do souboru prostředky Azure Policy.
  • Přiřazení zásady propojte s definicí zásady ručním sestavením ID prostředku.
  • Nasaďte šablonu a ověřte výsledek.

Toto cvičení vyžaduje následující požadavky:

  • Ve vašem tenantovi Azure musí být povolené skupiny pro správu.
  • Potřebujete oprávnění k vytvoření nové skupiny pro správu v rámci vaší hierarchie.
  • Potřebujete oprávnění k nasazení prostředků Azure Policy do skupiny pro správu.

Pokud tyto požadavky s aktuálním účtem Azure nemůžete splnit, můžete získat bezplatnou zkušební verzi a vytvořit nové předplatné a tenanta Azure. Případně můžete přeskočit kroky nasazení v tomto cvičení.

Vytvoření skupiny pro správu

V tomto cvičení vytvoříte novou skupinu pro správu, abyste omylem neovlivňovali žádné prostředky v jiné části prostředí Azure.

V terminálu editoru Visual Studio Code spusťte následující příkazy Azure CLI:

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

Ve výchozím nastavení se nová skupina pro správu vytvoří jako přímá podřízená položka kořenové skupiny pro správu tenanta. Pokud potřebujete skupinu pro správu umístit na určité místo v existující hierarchii skupin pro správu, použijte --parent-id parametr a zadejte název skupiny pro správu, kterou chcete použít jako nadřazenou položku.

V terminálu editoru Visual Studio Code spusťte následující příkazy Azure PowerShellu:

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

Ve výchozím nastavení se nová skupina pro správu vytvoří jako podřízená kořenová skupina pro správu tenanta. Pokud potřebujete skupinu pro správu umístit na určité místo v existující hierarchii skupin pro správu, použijte -ParentId parametr a zadejte název skupiny pro správu, kterou chcete použít jako nadřazenou položku.

V reálném nasazení byste přesunuli předplatná týmu R&D do skupiny pro správu. V tomto cvičení nasadíte zásady, i když skupina pro správu neobsahuje žádná předplatná. Stejný proces nasazení platí bez ohledu na to, jestli je skupina pro správu prázdná nebo obsahuje předplatná.

Vytvoření souboru Bicep pro nasazení do skupiny pro správu

  1. Otevřete Visual Studio Code.

  2. Odstraňte soubor main.bicep a vytvořte nový prázdný soubor se stejným názvem.

  3. Uložte prázdný soubor.

  4. Do souboru přidejte následující obsah.

    targetScope = 'managementGroup'
    

    Všimněte si, že tento řádek kódu říká Bicep, že vaše šablona se nasadí v oboru skupiny pro správu.

Přidání definice zásady

Jak jste to udělali dříve, vytvořte v souboru Bicep definici zásady.

  1. Pod řádek, který jste právě přidali, přidejte následující definici proměnné:

    var policyDefinitionName = 'DenyFandGSeriesVMs'
    
  2. V dolní části souboru přidejte následující definici služby Azure Policy:

    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'
          }
        }
      }
    }
    

    Definice zásady je stejná jako ta, kterou jste dříve použili pro vaše předplatné. Tentokrát ho ale nasazujete do skupiny pro správu.

Přidání přiřazení zásad

Teď zásadu použijete pro skupinu pro správu. To znamená, že zásady se použijí pro všechna předplatná, která jsou podřízená této skupině pro správu.

  1. policyDefinitionName Pod definici proměnné přidejte následující proměnnou:

    var policyAssignmentName = 'DenyFandGSeriesVMs'
    
  2. V dolní části souboru pod prostředek definice zásady přidejte následující přiřazení zásad:

    resource policyAssignment 'Microsoft.Authorization/policyAssignments@2020-03-01' = {
      name: policyAssignmentName
      properties: {
        policyDefinitionId: policyDefinition.id
      }
    }
    
  3. Uložte změny souboru.

Ověření šablony

Šablona by měla vypadat takto:

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

Pokud tomu tak není, zkopírujte příklad nebo upravte šablonu tak, aby odpovídala příkladu.

Nasazení šablony do Azure

V terminálu editoru Visual Studio Code nasaďte šablonu pomocí následujících příkazů Azure CLI:

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

Nasaďte šablonu pomocí příkazů Azure PowerShellu v terminálu.

$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

Všimněte si, že stejně jako u nasazení předplatného explicitně zadáváte název a umístění metadat nasazení. A používáte dnešní datum, abyste snížili pravděpodobnost použití názvu existujícího nasazení.

Dokončení nasazení může trvat minutu nebo dvě a pak se zobrazí úspěšné nasazení.

Ověření nasazení

Stejně jako u nasazení s vymezeným předplatným můžete zobrazit nasazení s vymezeným oborem skupiny pro správu na webu Azure Portal.

  1. Přejděte na Azure Portal.

  2. V levém podokně vyberte Všechny služby.

  3. Do vyhledávacího pole zadejte skupinu pro správu a pak v seznamu výsledků vyberte Skupiny pro správu.

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

  4. Vyberte skupinu pro správu tajných projektů pro výzkum a výzkum.

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

  5. V levém podokně do vyhledávacího pole zadejte Nasazení a pak v části Zásady správného řízení vyberte Nasazení.

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

  6. Vyberte nasazení začínající oborem mg a podívejte se, jaké prostředky byly nasazeny.

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

  7. V podokně Přehled pro vybrané nasazení vyberte Podrobnosti o nasazení a rozbalte ho. V seznamu jsou uvedené dva prostředky Azure Policy.

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

Vyčištění prostředků

Úspěšně jste nasadili prostředky s vymezeným oborem skupiny pro správu. Prostředky zásad a skupinu pro správu, které jste vytvořili, můžete odebrat.

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