Spec-Zone.ru › Chef 18

azurerm_storage_account_blob_container ресурс

[править на GitHub]

Используйте azurerm_storage_account_blob_container ресурс аудита InSpec для проверки свойств, относящихся к контейнеру Blob в учетной записи Azure Storage.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2018-07-01 API Azure Management. Дополнительную информацию см. в официальной документации Azure.

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

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Для его использования добавьте следующее в свой inspec.yml в вашем профиле верхнего уровня:

depends:
  - name: inspec-azure
    git: https://github.com/inspec/inspec-azure.git

Вам также необходимо настроить свои учетные данные Azure; см. README пакета ресурсов README.

Версия

Этот ресурс впервые стал доступен в версии 1.3.0 пакета ресурсов inspec-azure.

Синтаксис

Блок azurerm_storage_account_blob_container возвращает запрашиваемый контейнер Blob в рамках учетной записи Azure Storage.

resource_group, storage_account_name и blob_container_name должны быть указаны в качестве параметров.

describe azurerm_storage_account_blob_container(resource_group: 'rg', storage_account_name: 'production',
                                                blob_container_name: 'logs') do
    ...
    ...
end

Примеры

Убедитесь, что контейнер Blob существует

  describe azurerm_storage_account_blob_container(resource_group: 'rg', storage_account_name: 'default',
                                                  blob_container_name: 'logs') do
    it          { should exist }
    its('name') { should eq('logs') }
  end

Убедитесь, что контейнер Blob имеет тип "private"

describe azurerm_storage_account_blob_container(resource_group: 'rg', storage_account_name: 'production',
                                                blob_container_name: 'logs') do
  its('properties') { should have_attributes(publicAccess: 'None') }
end

Параметры

  • resource_group
  • storage_account_name
  • blob_container_name

Атрибуты

  • id
  • name
  • etag
  • properties
  • type

id

Полный квалифицированный идентификатор ресурса для ресурса, например:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

name

Имя ресурса

etag

Etag ресурса, например:

\"0x8D592D74CC20EBA\"

properties

Дополнительные свойства, относящиеся к контейнеру Blob, например:

  its('properties') { should have_attributes(publicAccess: 'None') }

type

Тип ресурса, например:

Microsoft.Storage/storageAccounts/blobServices/containers

Другие атрибуты

Есть дополнительные атрибуты, к которым можно получить доступ, но они не задокументированы. Пожалуйста, ознакомьтесь с документацией Azure. К любому атрибуту в ответе можно получить доступ, используя имена ключей, разделенные точками (.).

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

Матчеры

Этот ресурс аудита InSpec имеет следующие специальные матчеры. Полный список доступных матчеров можно найти на нашей странице Универсальные Матчеры.

exists

  describe azurerm_storage_account_blob_container(resource_group: 'rg', storage_account_name: 'production',
                                                  blob_container_name: 'logs') do
    it { should 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_storage_account_blob_container/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API