Ресурс 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/