azurerm_security_center_policy ресурс
Используйте ресурс аудита InSpec, чтобы проверить свойства политики Центра безопасности. Azure в настоящее время поддерживает поиск политики только через свой API REST. Если вы попытаетесь найти другую политику безопасности, вы получите ошибку.
Политика Центра безопасности Azure определяет набор рекомендуемых правил для ресурсов в данной подписке. Эти параметры будут генерировать оповещения, если будет обнаружено нарушение рекомендаций. Этот ресурс позволяет проверить настроенные оповещения для вашей учетной записи.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2015-06-01-Preview API Azure Management. Дополнительную информацию см. в официальной документации Azure.
В настоящее время, кажется, нет способа выбрать версию документации API Azure. Если вы обнаружите новую версию, упомянутую в официальной документации, откройте вопрос или отправьте запрос на добавление, используя обновленную версию.
Доступность
Установка
Этот ресурс доступен в inspec-azure пакете ресурсов. Чтобы использовать его, добавьте следующее в свой inspec.yml в профиле верхнего уровня:
depends:
- name: inspec-azure
git: https://github.com/inspec/inspec-azure.git
Вам также необходимо настроить свои учетные данные Azure; см. README пакета ресурсов.
Версия
Этот ресурс стал доступен в версии 1.0.0 пакета ресурсов inspec-azure.
Синтаксис
Блок ресурса azurerm_security_center_policy идентифицирует политику Центра безопасности по имени. В текущем API REST вы можете искать только default политику. Если политика не указана, будет использоваться значение по умолчанию.
describe azurerm_security_center_policy(name: 'default') do
...
end
Примеры
Проверить существование политики Центра безопасности по умолчанию
describe azurerm_security_center_policy(name: 'default') do
it { should exist }
end
Проверить, что в политике Центра безопасности по умолчанию включена сборка логов
describe azurerm_security_center_policy(name: 'default') do
its('log_collection') { should eq('On') }
end
Политика, отличная от политики по умолчанию, не может быть найдена
describe azurerm_security_center_policy(name: 'NonDefaultPolicy') do
it { should_not exist }
end
Параметры
name
Примеры параметров
Имя политики Центра безопасности. Оно должно быть default. Если имя не указано, будет происходить поиск default политики Центра безопасности (необязательно).
describe azurerm_security_center_policy(name: 'default') do
its('log_collection') { should eq('On') }
end
Атрибуты
idnamelog_collectionpatchbaselineanti_malwaredisk_encryptionnetwork_security_groupsweb_application_firewallnext_generation_firewallvulnerability_assessmentstorage_encryptionjust_in_time_network_accessapp_whitelistingsql_auditingsql_transparent_data_encryption-
notifications_enabled, send_security_email_to_admincontact_emailscontact_phonepricing_tier
id
Идентификатор политики Центра безопасности.
its('id') { should eq('/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Security/policies/default') }
name
Имя политики Центра безопасности.
its('name') { should eq('default') }
log_collection
Сбор логов указывает, будет ли агент мониторинга собирать данные о безопасности (On|Off).
its('log_collection') { should eq('On') }
pricing_tier
Модель стоимости/функциональности, в рамках которой работает подписка (Standard|Free).
its('pricing_tier') { should eq('Standard') }
patch
Указатель, следует ли включить обновления системы для виртуальных машин (On|Off).
its('patch') { should eq('On') }
baseline
Указатель, следует ли включить рекомендации по уязвимости ОС для виртуальных машин (On|Off).
its('baseline') { should eq('On') }
anti_malware
Антивирус указывает, следует ли включать рекомендации по защите конечных точек для виртуальных машин (On|Off).
its('anti_malware') { should eq('On') }
disk_encryption
Шифрование дисков указывает, следует ли включать рекомендации для виртуальных машин (On|Off).
its('disk_encryption') { should eq('On') }
network_security_groups
Группы безопасности сети указывают, следует ли включать рекомендации для виртуальных машин (On|Off).
its('network_security_groups') { should eq('On') }
web_application_firewall
Брандмауэр веб-приложений указывает, следует ли включать рекомендации для виртуальных машин (On|Off).
its('web_application_firewall') { should eq('On') }
next_generation_firewall
Брандмауэр следующего поколения указывает, следует ли включать рекомендации для виртуальных машин (On|Off).
its('next_generation_firewall') { should eq('On') }
оценка уязвимостей
Оценка уязвимостей указывает, следует ли включать рекомендации для виртуальных машин (On|Off).
its('vulnerability_assessment') { should eq('On') }
storage_encryption
Шифрование хранилища указывает, следует ли по умолчанию шифровать новые данные в Azure Blobs и Files (On|Off).
its('storage_encryption') { should eq('On') }
доступ в реальном времени к сети
Доступ в реальном времени к сети указывает, следует ли включать рекомендации для виртуальных машин (On|Off).
its('just_in_time_network_access') { should eq('On') }
авторизация приложений
Авторизация приложений указывает, включены ли адаптивные средства управления приложениями (On|Off).
its('app_whitelisting') { should eq('On') }
SQL-аудит
SQL-аудит указывает, включены ли рекомендации по аудиту и обнаружению угроз (On|Off).
its('sql_auditing') { should eq('On') }
прозрачное шифрование данных SQL
Прозрачное шифрование данных SQL указывает, включены ли рекомендации (On|Off).
its('sql_transparent_data_encryption') { should eq('On') }
включены уведомления
Включенные уведомления указывают, отправляются ли оповещения о безопасности по электронной почте контактному лицу (true|false).
its('notifications_enabled') { should eq(true) }
отправить оповещение о безопасности администратору
Отправка оповещений о безопасности администратору указывает, будет ли администратор подписки получать оповещения о безопасности (true|false).
its('send_security_email_to_admin') { should eq(true) }
адреса электронной почты контактов
Адреса электронной почты контактов содержат список адресов электронной почты контактов по безопасности.
its('contact_emails') { should include('security@example.com') }
телефон контакта
Телефон контакта содержит номер телефона контакта по безопасности.
its('contact_phone') { should eq('1-111-111-1111') }
Другие атрибуты
Существуют дополнительные атрибуты, к которым можно получить доступ, которые мы не задокументировали. Обратитесь к документации Azure. К любому атрибуту в ответе можно получить доступ, используя имена ключей, разделенные точками (.).
API не всегда возвращает ключи, не имеющие связанных данных. Возможны случаи, когда глубоко вложенный элемент не содержит требуемого атрибута в цепочке вызова. Если вы обнаружите необходимость проверки свойств, которые могут быть nil, создайте вилку этого пакета ресурсов и добавьте функцию доступа к ресурсу. В этой функции вы сможете защититься от ключей nil. Запросы на добавление всегда приветствуются.
Обработчики
В этом ресурсе аудита InSpec есть следующие специальные обработчики. Полный список доступных обработчиков можно найти на странице Универсальные обработчики.
существует
Контроль пройдет, если ресурс вернет результат. Используйте should_not если ожидается ноль совпадений.
# default should always exist
describe azurerm_security_center_policy(name: 'default') do
it { should exist }
end
# this security center policy should not exist
describe azurerm_security_center_policy(name: 'DoesNotExist') do
it { should_not exist }
end
Разрешения Azure
Ваш сервис-принцип должен быть настроен с ролью contributor в подписке, которую вы хотите протестировать.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/azurerm_security_center_policy/