Ресурс aws_ebs_volume
Используйте ресурс аудита InSpec aws_ebs_volume, чтобы проверить свойства отдельного тома 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 не предоставлен)
ID тома EBS, который однозначно идентифицирует том. Его можно передать как строку или volume_id: 'value' пару ключ-значение в хеше.
name (обязательно, если volume_id не предоставлен)
Имя тома EBS, которое однозначно идентифицирует том. Его необходимо передать как name: 'value' пару ключ-значение в хеше.
См. также документацию AWS по EBS.
Свойства
| Свойство | Описание |
|---|---|
| availability_zone | Зона доступности тома. |
| encrypted | Указывает, будет ли том зашифрован. |
| iops | Количество операций ввода-вывода в секунду (IOPS), поддерживаемых томом. |
| kms_key_id | Полный ARN ключа шифрования AWS Key Management Service (AWS KMS) (CMK), который использовался для защиты ключа шифрования тома. |
| 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
Контроль пройдет, если describe вернет как минимум один результат.
Используйте 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/