структура определения инициативы Политика Azure

Инициативы позволяют группировать несколько связанных определений политик для упрощения назначений и управления, так как вы работаете с группой как с одним элементом. Например, можно сгруппировать связанные определения политики тегов в одну инициативу. Вместо того, чтобы назначать каждую политику по отдельности, вы применяете инициативу.

Вы используете JSON для создания определения инициативы политики. Определение инициативы политики содержит элементы для следующих элементов:

В следующем примере показано, как создать инициативу для обработки двух тегов: costCenter и productName. Он использует две встроенные политики для применения значения тега по умолчанию.

{
    "properties": {
        "displayName": "Billing Tags Policy",
        "policyType": "Custom",
        "description": "Specify cost Center tag and product name tag",
        "version" : "1.0.0",
        "metadata": {
            "version": "1.0.0",
            "category": "Tags"
        },
        "parameters": {
            "costCenterValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for Cost Center tag"
                },
                "defaultValue": "DefaultCostCenter"
            },
            "productNameValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for product Name tag"
                },
                "defaultValue": "DefaultProduct"
            }
        },
        "policyDefinitions": [{
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "definitionVersion": "1.*.*"
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            }
        ]
    }
}

встроенные и шаблоны Политика Azure находятся на Политика Azure примерах.

Metadata

Необязательное metadata свойство хранит сведения о определении инициативы политики. Клиенты могут определять любые свойства и значения, полезные для организации, в свойстве metadata. Однако существуют некоторые свойства common, используемые Политика Azure и встроенными.

Общие свойства метаданных

  • version (строка): отслеживает сведения о версии содержимого определения инициативы политики. Для встроенных версий метаданных эта версия метаданных следует свойству версии встроенного. Рекомендуется использовать свойство версии для этой версии метаданных.

  • category (строка): определяет, под какой категорией на портале Azure отображается определение политики.

    Note

    Для инициативы category должно быть соответствие нормативным требованиям.

  • preview (boolean): true или false flag for if the policy initiative definition is preview.

  • deprecated (логическое значение): значение true или false флаг, если определение инициативы политики отмечено как нерекомендуемое.

Версия

Встроенные инициативы политики могут размещать несколько версий с definitionIDодинаковыми. Если номер версии не указан, все интерфейсы будут отображать последнюю версию определения. Чтобы просмотреть определенную версию встроенного элемента, ее необходимо указать в API, SDK или UI. Чтобы ссылаться на определенную версию определения в назначении, см. версию определения в назначении

Служба Политика Azure использует свойства version, preview и deprecated для передачи состояния и уровня изменений встроенному определению политики или инициативе. Формат version{Major}.{Minor}.{Patch}. Если определение политики находится в состоянии предварительной версии, суффикс предварительного просмотра добавляется к version свойству и рассматривается как логическое значение. Если определение политики снимается с поддержки, эта информация фиксируется как логическое значение в метаданных определения с помощью "deprecated": "true".

  • Основная версия (пример: 2.0.0): внесите критические изменения, такие как основные изменения логики правил, удаление параметров, добавление эффекта принудительного применения по умолчанию.
  • Дополнительная версия (пример: 2.1.0): вводятся такие изменения, как незначительные изменения логики правила, добавление новых допустимых параметров, изменение определений ролей, добавление или удаление определений в рамках инициативы.
  • Версия исправления (например, 2.1.4): внесение изменений в строки или метаданные и чрезвычайные сценарии безопасности (редко).

Встроенные инициативы являются версиями, а также можно ссылаться на определенные версии встроенных определений политик. Дополнительные сведения см. в справочнике по определению и версиям.

Дополнительные сведения о версиях Политика Azure для встроенных версий см. в разделе Строеное управление версиями. Дополнительные сведения о том, что означает политика deprecated или в preview см. в статье Preview и устаревшие политики.

Parameters

Параметры помогают упростить управление политиками за счет сокращения числа определений политик. Думайте о параметрах, таких как поля формы , name, address, city. state Эти параметры всегда остаются неизменными, однако их значения изменяются на основе отдельного заполнения формы. Параметры работают так же, как при создании инициатив политики. Включив параметры в определение инициативы политики, можно повторно использовать этот параметр в включенных политиках.

Note

После назначения инициативы параметры уровня инициативы не могут быть изменены. Из-за этого рекомендуется задать значение defaultValue при определении параметра.

Свойства параметра

Параметр имеет следующие свойства, используемые в определении инициативы политики:

  • name: имя параметра. Используется функцией развертывания parameters в правиле политики. Дополнительные сведения см. в разделе об использовании значения параметра.
  • type: определяет, является ли параметр строкой, массивом, объектом, логическимчислом, целым числом, float или datetime.
  • metadata: определяет вложенные подписки, которые в основном используются порталом Azure для отображения понятной для пользователя информации:
    • description: (Необязательно) Объяснение того, для чего используется параметр. Можно использовать для примеров допустимых значений.
    • displayName: дружелюбное имя, отображаемое на портале для параметра.
    • strongType: (Необязательно) Используется при назначении определения политики через портал. Предоставляет список с учетом контекста. См. дополнительные сведения в strongType.
  • defaultValue: (необязательно) задает значение параметра в назначении, если значение не задано.
  • allowedValues: (необязательно) Предоставляет массив значений, которые параметр принимает во время назначения.

Например, можно определить определение инициативы политики, чтобы ограничить расположения ресурсов в различных определениях включенных политик. Параметр для определения инициативы политики может быть разрешен. Затем параметр доступен каждому включению определения политики и определен во время назначения инициативы политики.

"parameters": {
    "init_allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of allowed locations for resources.",
            "displayName": "Allowed locations",
            "strongType": "location"
        },
        "defaultValue": [ "westus2" ],
        "allowedValues": [
            "eastus2",
            "westus2",
            "westus"
        ]
    }
}

Передача значения параметра определению политики

Вы объявляете, какие параметры инициативы передаются в включенные определения политик в массиве policyDefinitions определения инициативы. Хотя имя параметра может быть одинаковым, используя разные имена в инициативах, чем в определениях политики, упрощает удобочитаемость кода.

Например, параметр инициативы init_allowedLocations , определенный ранее, можно передать в несколько включенных определений политик и их параметров, sql_locations и vm_locations, как показано ниже.

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Этот пример ссылается на параметр init_allowedLocations , который был показан в свойствах параметров.

strongType

В свойстве metadata можно использовать strongType для предоставления списка вариантов на портале Azure. strongType может быть поддерживаемым типом ресурса или допустимым значением. Чтобы определить, является ли тип ресурса допустимым для strongType, используйте Get-AzResourceProvider.

Поддерживаются некоторые типы ресурсов, которые не возвращаются Get-AzResourceProvider . Эти типы ресурсов:

  • Microsoft.RecoveryServices/vaults/backupPolicies

Допустимые значения типа ресурсов для strongType :

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

Определения политик

Часть policyDefinitions определения инициативы представляет собой массив существующих определений политик, включенных в инициативу. Как упоминалось в разделе "Передача значения параметра в определение политики", это свойство является местом передачи параметров инициативы в определение политики.

Свойства определения политики

Каждый элемент массива , представляющий определение политики, имеет следующие свойства:

  • policyDefinitionId (строка): идентификатор пользовательского или встроенного определения политики для включения.
  • policyDefinitionReferenceId (строка): короткое имя для определения включенной политики.
  • parameters: (Необязательно) Пары name/value для передачи параметра инициативы включенного определения политики в качестве свойства в определении этой политики. Дополнительные сведения см. в разделе Параметры.
  • definitionVersion : (Необязательно) Версия встроенного определения для ссылки. Если ни один из них не указан, он ссылается на последнюю основную версию во время назначения и автоматический прием дополнительных обновлений. Дополнительные сведения см. в разделе "Версия определения"
  • groupNames (массив строк): (необязательно) Группа определения политики является членом. Дополнительные сведения см. в разделе "Группы политик".

Ниже приведен пример policyDefinitions двух включенных определений политик, каждый из которых передает один и тот же параметр инициативы:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "definitionVersion": "1.2.*"
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Группы определений политик

Определения политик в определении инициативы можно сгруппировать и классифицировать. Функция Политика Azure Regulatory Compliance (предварительная версия) использует это свойство для группировки определений в controls и compliance domains. Эта информация определяется в свойстве policyDefinitionGroups. Дополнительные сведения о группировке можно найти в объекте policyMetadata, созданном Microsoft. Дополнительные сведения см. в разделе "Объекты метаданных".

Параметры групп определений политик

Каждый элемент массива должен policyDefinitionGroups иметь оба следующих свойства:

  • name (строка) [обязательно]: короткое имя группы. В соответствии с нормативными требованиями элемент управления. Значение этого свойства используется groupNames в policyDefinitions.

  • category (строка): иерархия, к которой принадлежит группа. В соответствии с нормативными требованиями домен соответствия элемента управления.

  • displayName (строка): понятное имя группы или элемента управления. Используется порталом.

  • description (строка): описание того, что охватывает группа или элемент управления .

  • additionalMetadataId(строка): расположение объекта policyMetadata с дополнительными сведениями о доменеуправления и соответствия требованиям.

    Note

    Клиенты могут указывать на существующий объект policyMetadata . Однако эти объекты читаны только и создаются только Microsoft.

Пример policyDefinitionGroups свойства из определения встроенной инициативы NIST выглядит следующим образом:

"policyDefinitionGroups": [
    {
        "name": "NIST_SP_800-53_R4_AC-1",
        "additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
    }
]

Объекты метаданных

Встроенные компоненты соответствия нормативным требованиям, созданные Microsoft содержат дополнительные сведения о каждом элементе управления. Эти сведения:

  • Отображается на портале Azure на обзоре control инициативы соответствия нормативным требованиям.
  • Доступно через REST API. См. поставщик ресурсов Microsoft.PolicyInsights и группу операций policyMetadata.
  • Доступно через Azure CLI. См. команду az policy metadata .

Important

Объекты метаданных для соответствия нормативным требованиям доступны только для чтения и не могут быть созданы клиентами.

Метаданные для группировки политик содержат следующие сведения на properties узле:

  • metadataId: идентификатор элемента управления , к к который относится группирование.
  • category (обязательно): домен соответствия , к которому принадлежит элемент управления .
  • title (обязательно): понятное имя идентификатора элемента управления.
  • owner (обязательно): определяет, кто несет ответственность за контроль в Azure: Customer, Microsoft, Shared.
  • description: дополнительные сведения об элементе управления.
  • requirements: сведения об ответственности за реализацию элемента управления.
  • additionalContentUrl: ссылка на дополнительные сведения об элементе управления. Обычно это свойство является ссылкой на раздел документации, охватывающий этот элемент управления в стандарте соответствия требованиям.

Ниже приведен пример объекта policyMetadata . В этом примере метаданные принадлежат элементу управления NIST SP 800-53 R4 AC-1 .

{
  "properties": {
    "metadataId": "NIST SP 800-53 R4 AC-1",
    "category": "Access Control",
    "title": "Access Control Policy and Procedures",
    "owner": "Shared",
    "description": "**The organization:**    \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]:  \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and  \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and  \n
\nb. Reviews and updates the current:  \n1. Access control policy [Assignment: organization-defined frequency]; and  \n2. Access control procedures [Assignment: organization-defined frequency].",
    "requirements": "**a.**  The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications).  \n**b.**  The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
    "additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
  },
  "id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
  "name": "NIST_SP_800-53_R4_AC-1",
  "type": "Microsoft.PolicyInsights/policyMetadata"
}

Дальнейшие шаги