Руководство. Создание политик и управление ими для обеспечения соответствия требованиямTutorial: Create and manage policies to enforce compliance

Понимание того, как создавать политики и управлять ими в Azure, важно для обеспечения соответствия корпоративным стандартам и соглашениям об уровне обслуживания.Understanding how to create and manage policies in Azure is important for staying compliant with your corporate standards and service level agreements. В этом руководстве вы научитесь использовать службу "Политика Azure" для выполнения некоторых общих задач, связанных с созданием, назначением и управлением политиками в вашей организации, таких как:In this tutorial, you learn to use Azure Policy to do some of the more common tasks related to creating, assigning, and managing policies across your organization, such as:

  • Назначение политики для применения условий для ресурсов, которые вы создадите в будущем.Assign a policy to enforce a condition for resources you create in the future
  • Создание и назначение определения инициативы для отслеживания соответствия нескольких ресурсов.Create and assign an initiative definition to track compliance for multiple resources
  • Обход запрета на создание несоответствующих или отклоненных ресурсовResolve a non-compliant or denied resource
  • Внедрение новой политики в организации.Implement a new policy across an organization

В кратких руководствах вы можете узнать, как назначить политику, чтобы определить текущее состояние соответствия имеющихся ресурсов.If you would like to assign a policy to identify the current compliance state of your existing resources, the quickstart articles go over how to do so.

предварительные требованияPrerequisites

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Назначение политикиAssign a policy

Первым шагом для обеспечения соответствия Политике Azure является назначение определения политики.The first step in enforcing compliance with Azure Policy is to assign a policy definition. Определение политики определяет, при каких условиях применяется политика и какой результат это даст.A policy definition defines under what condition a policy is enforced and what effect to take. В этом примере назначается встроенное определение политики, называемое Требовать SQL Server версии 12.0, чтобы обеспечить соответствие всех баз данных SQL Server версии 12.0.In this example, assign a built-in policy definition, called Require SQL Server version 12.0, to enforce the condition that all SQL Server databases must be v12.0 to be compliant.

  1. Перейдите на портал Azure, чтобы назначить политики.Go to the Azure portal to assign policies. Найдите в поиске и выберите пункт Политика.Search for and select Policy.

    Поиск политики в строке поиска

  2. Выберите Назначения на странице службы "Политики Azure" слева.Select Assignments on the left side of the Azure Policy page. Назначение — это политика, которая назначена в рамках определенной области.An assignment is a policy that has been assigned to take place within a specific scope.

    Выбор пункта "Назначения" на странице обзора политики

  3. Выберите Назначить политику в верхней части страницы Policy — Assignments (Политика — назначения).Select Assign Policy from the top of the Policy - Assignments page.

    Назначение определения политики на странице "Назначения"

  4. На странице Назначить политику, на вкладке Основные сведения выберите значение в поле Область. Для этого нажмите кнопку с многоточием и выберите группу управления или подписку.On the Assign Policy page and Basics tab, select the Scope by selecting the ellipsis and selecting either a management group or subscription. Либо выберите группу ресурсов.Optionally, select a resource group. Она определяет, к каким ресурсам или группе ресурсов принудительно применяется назначение политики.A scope determines what resources or grouping of resources the policy assignment gets enforced on. Теперь щелкните Выбрать в нижней части страницы Область.Then select Select at the bottom of the Scope page.

    В этом примере используется подписка Contoso.This example uses the Contoso subscription. Ваша подписка будет отличаться.Your subscription will differ.

  5. Ресурсы можно исключить на основе параметра Область.Resources can be excluded based on the Scope. Исключения начинаются на один уровень ниже уровня параметра Область.Exclusions start at one level lower than the level of the Scope. Исключения являются необязательными, поэтому пока оставьте это поле пустым.Exclusions are optional, so leave it blank for now.

  6. Выберите многоточие рядом с пунктом Определение политики, чтобы открыть список доступных определений.Select the Policy definition ellipsis to open the list of available definitions. Вы можете фильтровать определение политики Тип по встроенному значению, чтобы просмотреть все политики и их описания.You can filter the policy definition Type to Built-in to view all and read their descriptions.

  7. Выберите Добавление или замена тегов в ресурсах.Select Add or replace a tag on resources. Если не удается быстро найти этот элемент, введите add or replace (добавить или заменить) в поле поиска и нажмите клавишу ВВОД или щелкните в любом месте вне поля поиска.If you can't find it right away, type add or replace into the search box and then press ENTER or select out of the search box. Щелкните Выбрать в нижней части страницы доступных определений после того, как найдете и выберете определение политики.Select Select at the bottom of the Available Definitions page once you have found and selected the policy definition.

    Использование фильтра поиска для поиска политики

  8. Имя назначения автоматически заполняется выбранным именем политики, но его можно изменить.The Assignment name is automatically populated with the policy name you selected, but you can change it. Для нашего примера оставьте выбранной политику Добавление или замена тега в ресурсах.For this example, leave Add or replace a tag on resources. При желании вы можете добавить необязательное описание.You can also add an optional Description. Описание содержит сведения о назначении этой политики.The description provides details about this policy assignment.

  9. Для параметра Применение политик сохраните значение Включено.Leave Policy enforcement as Enabled. При выборе варианта Отключено вы сможете проверить результат применения политики, не запуская соответствующее действие.When Disabled, this setting allows testing the outcome of the policy without triggering the effect. Дополнительные сведения о режиме применения политик см. здесь.For more information, see enforcement mode.

  10. Кем назначено. Это поле заполняется автоматически, в зависимости от текущего пользователя.Assigned by is automatically filled based on who is logged in. Это поле не является обязательным, поэтому можно ввести произвольные значения.This field is optional, so custom values can be entered.

  11. В верхней части страницы мастера выберите вкладку Параметры.Select the Parameters tab at the top of the wizard.

  12. Для параметра Имя тега введите значение Environment (Среда), а для параметра Значение тега — Dev.For Tag Name, enter Environment and for Tag Value enter Dev.

  13. В верхней части страницы мастера выберите вкладку Рекомендации.Select the Remediation tab at the top of the wizard.

  14. Снимите флажок Создание задачи исправления, если он установлен.Leave Create a remediation task unchecked. Это поле позволяет создать задачу для применения изменений ко всем существующим ресурсам, а не только к новым или обновляемым.This box allows you to create a task to alter existing resources in addition to new or updated resources. Дополнительные сведения см. в статье об исправлении ресурсов.For more information, see remediate resources.

  15. Флажок Создать управляемое удостоверение устанавливается автоматически, так как это определение политики использует эффект modify (изменение).Create a Managed Identity is automatically checked since this policy definition uses the modify effect. Для параметра Разрешения автоматически устанавливается значение Участник на основе определения политики.Permissions is set to Contributor automatically based on the policy definition. Дополнительные сведения см. в статье Что такое управляемые удостоверения для ресурсов Azure? и разделе How remediation security works (Как работает безопасность исправлений).For more information, see managed identities and how remediation security works.

  16. В верхней части страницы мастера выберите вкладку Просмотр и создание.Select the Review + create tab at the top of the wizard.

  17. Проверьте выбранные значения и щелкните Создать в нижней части страницы.Review your selections, then select Create at the bottom of the page.

Реализация новой пользовательской политикиImplement a new custom policy

Назначив определение встроенной политики, можно использовать новые возможности работы со службой "Политика Azure".Now that you've assigned a built-in policy definition, you can do more with Azure Policy. Создайте пользовательскую политику, чтобы снизить расходы. Это гарантирует, что в вашей среде не могут создаваться виртуальные машины серии G.Next, create a new custom policy to save costs by validating that VMs created in your environment can't be in the G series. Таким образом, каждый раз, когда пользователь в вашей организации пытается создать виртуальную машину серии G, запрос отклоняется.This way, every time a user in your organization tries to create VM in the G series, the request is denied.

  1. Выберите Определения в разделе Разработка в левой части страницы службы "Политика Azure".Select Definitions under Authoring in the left side of the Azure Policy page.

    Страница "Определения" в группе "Разработка"

  2. Выберите + Policy definition (+ Определение политики) в верхней части страницы.Select + Policy definition at the top of the page. При этом откроется страница Определение политики.This button opens to the Policy definition page.

  3. Введите следующие сведения:Enter the following information:

    • Группа управления или подписка, в которой сохраняется определение политики.The management group or subscription in which the policy definition is saved. Выберите, нажав на кнопку с многоточием в области Расположение определения.Select by using the ellipsis on Definition location.

      Примечание

      Если вы планируете применять это определение политики к нескольким подпискам, расположение должно быть группой управления, содержащей подписки, которым вы назначите политику.If you plan to apply this policy definition to multiple subscriptions, the location must be a management group that contains the subscriptions you assign the policy to. То же самое верно и для определения инициативы.The same is true for an initiative definition.

    • Имя определения политики: _*Require VM SKUs smaller than the G series (Требовать номер SKU виртуальной машины меньше, чем серия G).The name of the policy definition - _*Require VM SKUs smaller than the G series

    • Описание того, для чего предназначено определение политики. Это определение политики гарантирует, что все виртуальные машины, созданные в этой области, будут иметь номера SKU меньше, чем серия G, что позволяет сэкономить затраты.The description of what the policy definition is intended to do – This policy definition enforces that all VMs created in this scope have SKUs smaller than the G series to reduce cost.

    • Выберите из имеющихся параметров (например, Вычисление) или создайте категорию для этого определения политики.Choose from existing options (such as Compute), or create a new category for this policy definition.

    • Скопируйте следующий код JSON и обновите его в соответствии со своими потребностями.Copy the following JSON code and then update it for your needs with:

      • параметры политики;The policy parameters.
      • правила и условия политики — в данном случае номер SKU виртуальной машины, соответствующий серии G;The policy rules/conditions, in this case – VM SKU size equal to G series
      • действие политики — в этом случае Отменить.The policy effect, in this case – Deny.

    Код JSON должен выглядеть следующим образом.Here's what the JSON should look like. Вставьте измененный код на портале Azure.Paste your revised code into the Azure portal.

    {
        "policyRule": {
            "if": {
                "allOf": [{
                        "field": "type",
                        "equals": "Microsoft.Compute/virtualMachines"
                    },
                    {
                        "field": "Microsoft.Compute/virtualMachines/sku.name",
                        "like": "Standard_G*"
                    }
                ]
            },
            "then": {
                "effect": "deny"
            }
        }
    }
    

    Свойство field в правиле политики должно иметь одно из поддерживаемых значений.The field property in the policy rule must be a supported value. Полный список допустимых значений вы найдете в описании полей структуры определения политики.A full list of values is found on policy definition structure fields. Вот пример псевдонима: "Microsoft.Compute/VirtualMachines/Size".An example of an alias might be "Microsoft.Compute/VirtualMachines/Size".

    Больше примеров по службе "Политика Azure" см. в статье Примеры для Политики Azure.To view more Azure policy samples, see Azure Policy samples.

  4. Щелкните Сохранить.Select Save.

Создание определения политики с использованием REST APICreate a policy definition with REST API

Для создания политики вы можете использовать REST API для определений Политики Azure.You can create a policy with the REST API for Azure Policy Definitions. API REST позволяет создавать и удалять определения политик и получать сведения о существующих определениях.The REST API enables you to create and delete policy definitions, and get information about existing definitions. Чтобы создать определение политики, используйте следующий пример.To create a policy definition, use the following example:

PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.authorization/policydefinitions/{policyDefinitionName}?api-version={api-version}

Добавьте текст запроса. Ниже приведен соответствующий пример.Include a request body similar to the following example:

{
    "properties": {
        "parameters": {
            "allowedLocations": {
                "type": "array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                }
            }
        },
        "displayName": "Allowed locations",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
        "policyRule": {
            "if": {
                "not": {
                    "field": "location",
                    "in": "[parameters('allowedLocations')]"
                }
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}

Создание определения политики с помощью PowerShellCreate a policy definition with PowerShell

Прежде чем продолжить работу с примером PowerShell, убедитесь, что у вас установлена последняя версия модуля Az для Azure PowerShell.Before proceeding with the PowerShell example, make sure you've installed the latest version of the Azure PowerShell Az module.

Определение политики можно создать с помощью командлета New-AzPolicyDefinition.You can create a policy definition using the New-AzPolicyDefinition cmdlet.

Чтобы создать определение политики из файла, передайте путь в файл.To create a policy definition from a file, pass the path to the file. Для внешнего файла используйте следующий пример.For an external file, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -DisplayName 'Deny cool access tiering for storage' `
    -Policy 'https://raw.githubusercontent.com/Azure/azure-policy-samples/master/samples/Storage/storage-account-access-tier/azurepolicy.rules.json'

Для применения локального файла используйте следующий пример.For a local file use, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -Description 'Deny cool access tiering for storage' `
    -Policy 'c:\policies\coolAccessTier.json'

Для создания определения политики с помощью встроенного правила используйте следующий пример.To create a policy definition with an inline rule, use the following example:

$definition = New-AzPolicyDefinition -Name 'denyCoolTiering' -Description 'Deny cool access tiering for storage' -Policy '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

Выходные данные сохраняются в объекте $definition, который используется при назначении политики.The output is stored in a $definition object, which is used during policy assignment. В следующем примере создается определение политики, которое включает параметры:The following example creates a policy definition that includes parameters:

$policy = '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "not": {
                    "field": "location",
                    "in": "[parameters(''allowedLocations'')]"
                }
            }
        ]
    },
    "then": {
        "effect": "Deny"
    }
}'

$parameters = '{
    "allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of locations that can be specified when deploying storage accounts.",
            "strongType": "location",
            "displayName": "Allowed locations"
        }
    }
}'

$definition = New-AzPolicyDefinition -Name 'storageLocations' -Description 'Policy to specify locations for storage accounts.' -Policy $policy -Parameter $parameters

Просмотр определений политики с помощью PowerShellView policy definitions with PowerShell

Чтобы просмотреть все определения политик в подписке, используйте приведенную ниже команду.To see all policy definitions in your subscription, use the following command:

Get-AzPolicyDefinition

Она возвращает все доступные определения политик, включая встроенные политики.It returns all available policy definitions, including built-in policies. Каждая политика возвращается в приведенном ниже формате.Each policy is returned in the following format:

Name               : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceId         : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceName       : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceType       : Microsoft.Authorization/policyDefinitions
Properties         : @{displayName=Allowed locations; policyType=BuiltIn; description=This policy enables you to
                     restrict the locations your organization can specify when deploying resources. Use to enforce
                     your geo-compliance requirements.; parameters=; policyRule=}
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c

Создание определения политики с использованием Azure CLICreate a policy definition with Azure CLI

Определение политики можно создать с помощью команды az policy definition в Azure CLI.You can create a policy definition using Azure CLI with the az policy definition command. Для создания определения политики с помощью встроенного правила используйте следующий пример.To create a policy definition with an inline rule, use the following example:

az policy definition create --name 'denyCoolTiering' --description 'Deny cool access tiering for storage' --rules '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

Просмотр определений политики с помощью Azure CLIView policy definitions with Azure CLI

Чтобы просмотреть все определения политик в подписке, используйте приведенную ниже команду.To see all policy definitions in your subscription, use the following command:

az policy definition list

Она возвращает все доступные определения политик, включая встроенные политики.It returns all available policy definitions, including built-in policies. Каждая политика возвращается в приведенном ниже формате.Each policy is returned in the following format:

{
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources. Use to enforce your geo-compliance requirements.",
    "displayName": "Allowed locations",
    "id": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "name": "e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "policyRule": {
        "if": {
            "not": {
                "field": "location",
                "in": "[parameters('listOfAllowedLocations')]"
            }
        },
        "then": {
            "effect": "Deny"
        }
    },
    "policyType": "BuiltIn"
}

Создание определения инициативы и его назначениеCreate and assign an initiative definition

С помощью определения инициативы вы можете сгруппировать несколько определений политики для достижения одной ключевой цели.With an initiative definition, you can group several policy definitions to achieve one overarching goal. Инициатива оценивает, насколько ресурсы в области назначения соответствуют требованиям указанных политик.An initiative evaluates resources within scope of the assignment for compliance to the included policies. Дополнительные сведения об определениях инициативы см. в статье What is Azure Policy? (Что такое служба "Политика Azure"?).For more information about initiative definitions, see Azure Policy overview.

Создание определения инициативыCreate an initiative definition

  1. Выберите Определения в разделе Разработка в левой части страницы службы "Политика Azure".Select Definitions under Authoring in the left side of the Azure Policy page.

    Выбор определения на странице "Определения"

  2. Выберите + Initiative Definition (+ Определение инициативы) в верхней части страницы, чтобы открыть страницу Initiative definition (Определение инициативы).Select + Initiative Definition at the top of the page to open the Initiative definition page.

    Просмотр страницы "Определение инициативы"

  3. Используйте кнопку с многоточием в области Расположение определения, чтобы выбрать группу управления или подписку для хранения определения.Use the Definition location ellipsis to select a management group or subscription to store the definition. Если на предыдущей странице настроена одна группа управления или подписка, поле Расположение определения заполняется автоматически.If the previous page was scoped to a single management group or subscription, Definition location is automatically populated. После выбора значений заполняются поля в разделе Доступные определения.Once selected, Available Definitions is populated.

  4. Введите имя и описание инициативы.Enter the Name and Description of the initiative.

    В этом примере проверяется, соответствуют ли ресурсы определениям политики безопасности.This example validates that resources are in compliance with policy definitions about getting secure. Назовите инициативу Защита и введите следующее описание: Эта инициатива была создана для обработки всех определений политик, связанных с защитой ресурсов.Name the initiative Get Secure and set the description as: This initiative has been created to handle all policy definitions associated with securing resources.

  5. Для категории выберите из имеющихся параметров или создайте категорию.For Category, choose from existing options or create a new category.

  6. Просмотрите список доступных определений (правая половина страницы Initiative definition (Определение инициативы)) и выберите определения политики, которые вы хотите добавить к этой инициативе.Browse through the list of Available Definitions (right half of Initiative definition page) and select the policy definition(s) you would like to add to this initiative. Для инициативы Защита добавьте следующие встроенные определения политик, щелкнув + рядом с информацией об определении политики или щелкнув строку определения политики и параметр + Добавить на странице сведений.For the Get Secure initiative, add the following built-in policy definitions by selecting the + next to the policy definition information or selecting a policy definition row and then the + Add option in the details page:

    • Допустимые расположенияAllowed locations
    • Мониторинг отсутствия Endpoint Protection в Центре безопасности AzureMonitor missing Endpoint Protection in Azure Security Center
    • Строгость правил групп безопасности сети для виртуальных машин, подключенных к Интернету, должна быть увеличена.Network Security Group Rules for Internet facing virtual machines should be hardened
    • Необходимо включить Azure Backup для виртуальных машин.Azure Backup should be enabled for Virtual Machines
    • Шифрование дисков должно применяться к виртуальным машинам.Disk encryption should be applied on virtual machines

    Каждое определение политики, выбранное из этого списка, добавляется в область Категория.After selecting the policy definition from the list, each is added below Category.

    Просмотр параметров на странице "Определение инициативы"

  7. Если в определении политики, добавляемом в инициативу, есть параметры, они отображаются в разделе с именем политики в области Категория.If a policy definition being added to the initiative has parameters, they're shown under the policy name in the area under Category area. В разделе Значения можно выбрать значение "Задать значение" (запрограммированное для всех назначений этой инициативы) или "Использовать параметр инициативы" (задается при каждом назначении инициативы).The value can be set to either 'Set value' (hard coded for all assignments of this initiative) or 'Use Initiative Parameter' (set during each initiative assignment). Если выбран параметр "Задать значение", в раскрывающемся списке справа от раздела Значения можно ввести или выбрать значения.If 'Set value' is selected, the drop-down to the right of Value(s) allows entering or selecting the value(s). Если выбрать "Использовать параметр инициативы", отобразится новый раздел Параметры инициативы, где можно определить параметр, который будет установлен при назначении инициативы.If 'Use Initiative Parameter' is selected, a new Initiative parameters section is displayed allowing you to define the parameter that is set during initiative assignment. Допустимые значения для этого параметра инициативы могут дополнительно ограничивать, что может быть задано при назначении инициативы.The allowed values on this initiative parameter can further restrict what may be set during initiative assignment.

    Изменение допустимых значений для параметров определения инициативы

    Примечание

    При использовании некоторых параметровstrongType список значений не может определяться автоматически.In the case of some strongType parameters, the list of values cannot be automatically determined. В этом случае справа от строки параметра появляется многоточие.In these cases, an ellipsis appears to the right of the parameter row. Если щелкнуть его, откроется страница "Область параметра (<имя параметра>)".Selecting it opens the 'Parameter scope (<parameter name>)' page. На этой странице выберите подписку, используемую для предоставления значений.On this page, select the subscription to use for providing the value options. Эта область параметра используется только при создании определения инициативы. Она не влияет на вычисление политики или область инициативы при назначении.This parameter scope is only used during creation of the initiative definition and has no impact on policy evaluation or the scope of the initiative when assigned.

    Задайте для параметра "Разрешенные расположения" значение "Восточная часть США 2" и сохраните для остальных параметров значение AuditifNotExists по умолчанию.Set the 'Allowed locations' parameter to 'East US 2' and leave the others as the default 'AuditifNotExists'.

  8. Щелкните Сохранить.Select Save.

Создание определения инициативы политики с использованием Azure CLICreate a policy initiative definition with Azure CLI

Определение инициативы политики можно создать с помощью команды az policy set-definition в Azure CLI.You can create a policy initiative definition using Azure CLI with the az policy set-definition command. Чтобы создать определение инициативы политики на основе существующего определения политики, воспользуйтесь следующим примером.To create a policy initiative definition with an existing policy definition, use the following example:

az policy set-definition create -n readOnlyStorage --definitions '[
        {
            "policyDefinitionId": "/subscriptions/mySubId/providers/Microsoft.Authorization/policyDefinitions/storagePolicy",
            "parameters": { "storageSku": { "value": "[parameters(\"requiredSku\")]" } }
        }
    ]' \
    --params '{ "requiredSku": { "type": "String" } }'

Создание определения инициативы политики с использованием Azure PowerShellCreate a policy initiative definition with Azure PowerShell

Определение инициативы политики можно создать с помощью командлета New-AzPolicySetDefinition для Azure PowerShell.You can create a policy initiative definition using Azure PowerShell with the New-AzPolicySetDefinition cmdlet. Чтобы создать определение инициативы политики на основе существующего определения политики, воспользуйтесь следующим файлом определения инициативы политики в качестве VMPolicySet.json.To create a policy initiative definition with an existing policy definition, use the following policy initiative definition file as VMPolicySet.json:

[
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
        "parameters": {
            "tagName": {
                "value": "Business Unit"
            },
            "tagValue": {
                "value": "Finance"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf"
    }
]
New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -Metadata '{"category":"Virtual Machine"}' -PolicyDefinition C:\VMPolicySet.json

Назначение определения инициативыAssign an initiative definition

  1. Выберите Определения в разделе Разработка в левой части страницы службы "Политика Azure".Select Definitions under Authoring in the left side of the Azure Policy page.

  2. Найдите ранее созданное определение инициативы Защита и выберите его.Locate the Get Secure initiative definition you previously created and select it. Выберите Назначить в верхней части страницы, чтобы открыть страницу Защита: назначить инициативу.Select Assign at the top of the page to open to the Get Secure: Assign initiative page.

    Назначение определения на странице "Определение инициативы"

    Вы также можете щелкнуть выбранную строку правой кнопкой мыши или щелкнуть многоточие в конце строки для отображения контекстного меню.You can also right-click on the selected row or select the ellipsis at the end of the row for a contextual menu. Затем выберите Назначить.Then select Assign.

    Альтернативные параметры для инициативы

  3. Заполните страницу Защита: назначение инициативы, указав сведения, приведенные в примере ниже.Fill out the Get Secure: Assign Initiative page by entering the following example information. Вы можете использовать собственные сведения.You can use your own information.

    • Область. Группа управления или подписка, в которую вы сохранили инициативу, будет использоваться по умолчанию.Scope: The management group or subscription you saved the initiative to becomes the default. Вы можете изменить область для назначения инициативы группе ресурсов или подписке в расположении для сохранения.You can change scope to assign the initiative to a subscription or resource group within the save location.
    • "Исключения". Настройте все ресурсы в области, чтобы назначение инициативы не применялось к ним.Exclusions: Configure any resources within the scope to prevent the initiative assignment from being applied to them.
    • "Определение инициативы" и "Название назначения". "Защита" (предварительно заполнено как название назначенной инициативы).Initiative definition and Assignment name: Get Secure (pre-populated as name of initiative being assigned).
    • Описание. Это назначение инициативы предназначено для принудительного применения группы определений политики.Description: This initiative assignment is tailored to enforce this group of policy definitions.
    • Принудительное применение политики. Оставьте значение по умолчанию Включено.Policy enforcement: Leave as the default Enabled.
    • "Кем назначено". Это поле заполняется автоматически, в зависимости от текущего пользователя.Assigned by: Automatically filled based on who is logged in. Это поле не является обязательным, поэтому можно ввести произвольные значения.This field is optional, so custom values can be entered.
  4. В верхней части страницы мастера выберите вкладку Параметры.Select the Parameters tab at the top of the wizard. Если вы настроили параметр инициативы на предыдущих шагах, задайте значение здесь.If you configured an initiative parameter in previous steps, set a value here.

  5. В верхней части страницы мастера выберите вкладку Рекомендации.Select the Remediation tab at the top of the wizard. Оставьте флажок Создать управляемое удостоверение неустановленным.Leave Create a Managed Identity unchecked. Его необходимо устанавливать, когда назначаемая политика или инициатива содержит политику с эффектом deployIfNotExists или modify.This box must be checked when the policy or initiative being assigned includes a policy with the deployIfNotExists or modify effects. Так как политика, используемая в этом руководстве, ее не содержит, не устанавливайте этот флажок.As the policy used for this tutorial doesn't, leave it blank. Дополнительные сведения см. в статье Что такое управляемые удостоверения для ресурсов Azure? и разделе How remediation security works (Как работает безопасность исправлений).For more information, see managed identities and how remediation security works.

  6. В верхней части страницы мастера выберите вкладку Просмотр и создание.Select the Review + create tab at the top of the wizard.

  7. Проверьте выбранные значения и щелкните Создать в нижней части страницы.Review your selections, then select Create at the bottom of the page.

Проверка исходного соответствияCheck initial compliance

  1. Выберите Соответствия на странице службы "Политики Azure" слева.Select Compliance in the left side of the Azure Policy page.

  2. Перейдите к инициативе Защита.Locate the Get Secure initiative. Вполне вероятно, что она все еще в состоянии соответствияНе запущено.It's likely still in Compliance state of Not started. Щелкните инициативу, чтобы получить подробные сведения о ходе выполнения назначения.Select the initiative to get full details on the progress of the assignment.

    Страница соответствия инициативы — оценка не начата

  3. Когда назначение инициативы будет завершено, состояние соответствия на странице отобразится как Соответствует.Once the initiative assignment has been completed, the compliance page is updated with the Compliance state of Compliant.

    Страница соответствия инициативы — ресурсы соответствуют требованиям

  4. Если щелкнуть любую политику на странице соответствия требованиям инициативы, откроется страница сведений о соответствии для этой политики.Selecting any policy on the initiative compliance page opens the compliance details page for that policy. Здесь содержится информация о соответствии на уровне ресурсов.This page provides details at the resource level for compliance.

Исключение несоответствующих или отклоненных ресурсовExempt a non-compliant or denied resource using Exclusion

После назначения инициативы политики, которая требует определенного расположения, отклоняются все ресурсы, созданные в других расположениях.After assigning a policy initiative to require a specific location, any resource created in a different location is denied. В этом разделе описывается, как решить проблему с отклонением запроса на создание ресурса, создав исключение для одной группы ресурсов.In this section, you walk through resolving a denied request to create a resource by creating an exclusion on a single resource group. Это исключение не позволяет применять политику (или инициативу) к указанной группе ресурсов.The exclusion prevents enforcement of the policy (or initiative) on that resource group. В следующем примере для группы ресурсов, указанной в качестве исключения, допускается любое расположение.In the following example, any location is allowed in the excluded resource group. Исключение можно применять к подписке, группе ресурсов или отдельным ресурсам.An exclusion can apply to a subscription, a resource group, or an individual resources.

Развертывания, запрещенные назначенными политиками или инициативами, можно просматривать в той группе ресурсов, для которой выполнялось развертывание: Выберите Развертывания в левой части страницы, а затем щелкните Имя неудачного развертывания.Deployments prevented by an assigned policy or initiative can be viewed on the resource group targeted by the deployment: Select Deployments in the left side of the page, then select the Deployment Name of the failed deployment. Исключенный ресурс отображается с состоянием Запрещено.The resource that was denied is listed with a status of Forbidden. Чтобы определить политику или инициативу и назначение, отклонившее ресурс, щелкните Сбой. Щелкните здесь, чтобы узнать больше -> на странице Deployment Overview (Общие сведения о развертывании).To determine the policy or initiative and assignment that denied the resource, select Failed. Click here for details -> on the Deployment Overview page. В правой части страницы откроется окно со сведениями об ошибке.A window opens on the right side of the page with the error information. В разделе Сведения об ошибке будут идентификаторы GUID связанных объектов политики.Under Error Details are the GUIDs of the related policy objects.

Развертывание отклонено назначением политики

На странице "Политика Azure". Выберите Соответствие в левой части страницы и щелкните инициативу политики Защита.On the Azure Policy page: Select Compliance in the left side of the page and select the Get Secure policy initiative. На этой странице вы увидите, что значение Отклонено для заблокированных ресурсов увеличилось.On this page, there is an increase in the Deny count for blocked resources. На вкладке События содержатся сведения о том, кто пытался создать или развернуть ресурс, отклоненный определением политики.Under the Events tab are details about who tried to create or deploy the resource that was denied by the policy definition.

Общие сведения о соответствии назначенной политики

В этом примере Трент Бейкер, один из старших специалистов по визуализации Contoso, выполнил необходимую работу.In this example, Trent Baker, one of Contoso's Sr. Virtualization specialists, was doing required work. Нам нужно предоставить Тренту область для исключения.We need to grant Trent a space for an exception. Мы создали группу ресурсов LocationsExcluded, а теперь сделаем ее исключением из нашего назначения политики.Created a new resource group, LocationsExcluded, and next grant it an exception to this policy assignment.

Обновление назначения с исключениемUpdate assignment with exclusion

  1. Выберите Назначения в разделе Разработка в левой части страницы службы "Политика Azure".Select Assignments under Authoring in the left side of the Azure Policy page.

  2. Просмотрите все назначения политик и откройте назначение политики Защита.Browse through all policy assignments and open the Get Secure policy assignment.

  3. Задайте исключение, щелкнув многоточие и выбрав группу ресурсов для исключения. В нашем примере используется LocationsExcluded.Set the Exclusion by selecting the ellipsis and selecting the resource group to exclude, LocationsExcluded in this example. Щелкните Добавить к выбранной области и Сохранить.Select Add to Selected Scope and then select Save.

    Добавление исключения группы ресурсов к назначению политики

    Примечание

    В зависимости от определения политики и ее результата вы можете предоставить исключения определенным ресурсам в рамках группы ресурсов, входящей в область назначения.Depending on the policy definition and its effect, the exclusion could also be granted to specific resources within a resource group inside the scope of the assignment. В нашем примере нет смысла задавать исключение для определенного уже существующего ресурса, так как мы использовали эффект Deny (Отклонить).As a Deny effect was used in this tutorial, it wouldn't make sense to set the exclusion on a specific resource that already exists.

  4. Щелкните Просмотреть и сохранить и Сохранить.Select Review + save and then select Save.

В этом разделе вы устранили отклоненный запрос путем создания исключения в одной группе ресурсов.In this section, you resolved the denied request by creating an exclusion on a single resource group.

Очистка ресурсовClean up resources

Если вы завершили работу с ресурсами по этому руководству, следуйте инструкциям ниже, чтобы удалить все созданные назначения или определения политик.If you're done working with resources from this tutorial, use the following steps to delete any of the policy assignments or definitions created above:

  1. Выберите Определения (или Назначения, если вы пытаетесь удалить назначение) в разделе Разработка в левой части страницы службы "Политика Azure".Select Definitions (or Assignments if you're trying to delete an assignment) under Authoring in the left side of the Azure Policy page.

  2. Найдите новую инициативу либо определение политики (или назначение), которые вы хотите удалить.Search for the new initiative or policy definition (or assignment) you want to remove.

  3. Щелкните строку правой кнопкой мыши или выберите многоточие в конце определения (или назначения), а затем выберите Удалить определение (или Удаление назначения).Right-click the row or select the ellipses at the end of the definition (or assignment), and select Delete definition (or Delete assignment).

ПросмотрReview

В этом руководстве вы успешно выполнили следующие действия:In this tutorial, you successfully accomplished the following tasks:

  • назначили политику для применения условий для ресурсов, которые будут созданы в будущем;Assigned a policy to enforce a condition for resources you create in the future
  • создали и назначили определение инициативы для отслеживания соответствия нескольких ресурсов;Created and assign an initiative definition to track compliance for multiple resources
  • обошли запрет на создание несоответствующих или отклоненных ресурсов;Resolved a non-compliant or denied resource
  • внедрили новую политику в организации.Implemented a new policy across an organization

Дальнейшие действияNext steps

Дополнительные сведения о структурах определения политик см. в статье:To learn more about the structures of policy definitions, look at this article: