Ресурс aws_ecr_images
Используйте ресурс аудита aws_ecr_images InSpec для проверки свойств всех изображений в репозитории AWS Elastic Container Registry (ECR). Этот ресурс доступен в пакете ресурсов InSpec AWS версии 1.11.0 и выше.
Синтаксис
Блок ресурса aws_ecr_images объявляет тесты для всех изображений в репозитории AWS ECR по имени репозитория.
describe aws_ecr_images(repository_name: 'my-repo') do
it { should exist }
end
Параметры
Имя репозитория должно быть предоставлено. Идентификатор реестра является необязательным.
repository_name (обязательно)
Имя репозитория ECR должно соответствовать следующим ограничениям:
- Шаблон регулярных выражений
(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*. - Длина от 2 до 256 символов.
registry_id (необязательно)
12-значный идентификатор AWS Elastic Container Registry. Если не указано, предполагается использование по умолчанию реестра.
Свойства
| Свойство | Описание |
|---|---|
| digests | Хеш-код sha256 манифеста изображения. Имя поля digest. |
| size_in_bytes | Размер изображения в байтах в репозитории. |
| tags | Список тегов, связанных с изображением. Имя поля tags. |
| vulnerability_severity_counts | Количество уязвимостей изображения, отсортированных по степени критического характера. |
| vulnerability_scan_status | Текущее состояние сканирования. Возвращает объект состояния сканирования изображения. |
| pushed_at_dates | Дата и время, когда изображение было загружено в репозиторий. Имя поля pushed_at_date. |
Примеры
Убедитесь, что существует ровно 3 изображения
describe aws_ecr_images(repository_name: 'my-repo') do
its('count') { should cmp 3 }
end
Используйте этот ресурс InSpec для запроса хэшей всех изображений, а затем проведите глубокое тестирование с использованием aws_ecr_image.
aws_ecr_images(repository_name: 'my-repo').digests.each do |image_digest|
describe aws_ecr_image(repository_name: 'my-repo', image_digest: image_digest) do
its('tags') { should include('latest') }
end
end
Сопоставители
Этот ресурс аудита InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице сопоставителей.
exist
Контроль будет пройден, если describe вернёт по крайней мере один результат.
Используйте should_not для проверки, что сущность не должна существовать.
describe aws_ecr_images(repository_name: 'my-repo').where( <property>: <value>) do
it { should exist }
end
describe aws_ecr_images(repository_name: 'my-repo').where( <property>: <value>) do
it { should_not exist }
end
Разрешения AWS
У вашего Принципала должно быть разрешено действие ecr:DescribeImages.
Подробную документацию можно найти по адресам Действия, ресурсы и ключи условий для Amazon ECR и Действия, ресурсы и ключи условий для управления идентичностью и доступом.
© 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_ecr_images/