Ресурс aws_ebs_volume
Используйте ресурс проверки aws_ebs_volume InSpec для проверки свойств отдельного тома AWS EBS.
Синтаксис
Убедитесь, что том EBS существует
describe aws_ebs_volume('vol-01a2349e94458a507') do
it { should exist }
end
Также можно использовать синтаксис с хэшем для передачи имени тома EBS
describe aws_ebs_volume(name: 'data-vol') do
it { should exist }
end
Параметры
Этот ресурс принимает один параметр: имя или ID тома EBS. Необходимо указать хотя бы один из них.
volume_id (обязательно, если name не указано)
Идентификатор тома EBS, уникально определяющий том. Его можно передать как строку или volume_id: 'value' запись в формате ключ-значение в хэше.
name (обязательно, если volume_id не указано)
Имя тома EBS, уникально определяющее том. Его необходимо передать как name: 'value' запись в формате ключ-значение в хэше.
См. также документацию AWS по EBS.
Свойства
| Свойство | Описание |
|---|---|
| availability_zone | Зона доступности для тома. |
| encrypted | Указывает, будет ли том зашифрован. |
| iops | Количество операций ввода/вывода в секунду (IOPS), поддерживаемых томом. |
| kms_key_id | Полный ARN клиентского мастер-ключа (CMK) AWS Key Management Service (AWS KMS), который использовался для защиты ключа шифрования тома для данного тома. |
| size | Размер тома в GiB. |
| snapshot_id | Снимок, с которого был создан том, если применимо. |
| status | Состояние тома. |
| volume_type | Тип тома. |
Примеры
Проверка, что том EBS не существует
describe aws_ebs_volume(name: 'data_vol') do
it { should_not exist }
end
Проверка, что том EBS зашифрован
describe aws_ebs_volume(name: 'secure_data_vol') do
it { should be_encrypted }
end
Проверка, что размер тома EBS корректен
describe aws_ebs_volume(name: 'data_vol') do
its('size') { should cmp 32 }
end
Сопоставители
Этот ресурс проверки InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице сопоставителей.
exist
Контроль пройдет, если описание вернет как минимум один результат.
Используйте should_not для проверки, что сущность не должна существовать.
describe aws_ebs_volume(name: 'data_vol') do
it { should exist }
end
describe aws_ebs_volume(name: 'data_vol') do
it { should_not exist }
end
be_encrypted
Сопоставитель be_encrypted проверяет, является ли описанный том EBS зашифрованным.
it { should be_encrypted }
Разрешения AWS
Для вашего Принципала потребуются ec2:DescribeVolumes, а также iam:GetInstanceProfile действия, установленные на разрешение.
Подробную документацию можно найти на страницах Действия, ресурсы и ключи условий для Amazon EC2 и Действия, ресурсы и ключи условий для Identity And Access Management.
© 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/aws_ebs_volume/