Ресурс aws_ecr_image
Используйте ресурс аудита InSpec aws_ecr_image для проверки свойств отдельного изображения в репозитории AWS Elastic Container Registry (ECR). Данный ресурс доступен в пакете ресурсов InSpec AWS версии 1.11.0 и выше.
Синтаксис
Блок ресурса aws_ecr_image описывает тесты для отдельного изображения в репозитории AWS ECR по имени репозитория и идентификатору изображения.
describe aws_ecr_image(repository_name: 'my-repo', image_tag: 'latest') do
it { should exist }
end
Параметры
Необходимо указать имя репозитория и идентификатор изображения (либо image_tag , либо image_digest). Идентификатор реестра — необязателен.
repository_name (обязательно)
Имя репозитория ECR должно соответствовать следующим ограничениям:
- Шаблон регулярных выражений
(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*. - Длина от 2 до 256 символов.
image_tag (обязательно, если не указан image_digest)
Тег, используемый для изображения. Его длина не должна превышать 300 символов.
image_digest (обязательно, если не указан image_tag)
Хеш-код дайджеста изображения. Он должен соответствовать шаблону регулярных выражений: [a-zA-Z0-9-_+.]+:[a-fA-F0-9]+.
registry_id (необязательно)
12-значный идентификатор AWS Elastic Container Registry. Если не указан, предполагается использование по умолчанию реестра.
Свойства
| Свойство | Описание |
|---|---|
| repository_name | Имя репозитория. |
| registry_id | Идентификатор учётной записи AWS, связанной с реестром, содержащим репозиторий. |
| tags | Список тегов, связанных с этим изображением. |
| vulnerability_severity_counts | Количество уязвимостей изображения, отсортированных по степени критичности, например, {:high=>1}. |
| vulnerabilities | Список хешей, где каждая пара ключ-значение соответствует результатам сканирования изображения сканирования. Например, {:name=>"CVE-2019-14697", :uri=>"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697", :severity=>"HIGH", :package_version=>"1.1.18-r3", :package_name=>"musl", :CVSS2_VECTOR=>"AV:N/AC:L/Au:N/C:P/I:P/A:P", :CVSS2_SCORE=>"7.5"}
|
| cve_ids | Список CVE-идентификаторов уязвимостей в изображении. |
| highest_vulnerability_severity | Оценка CVSS v2 наиболее серьёзной уязвимости в изображении. |
Доступно также несколько дополнительных свойств. Полный список см. в документации API.
Примеры
Проверить статус сканирования изображения
describe aws_ecr_image(repository_name: 'my-repo', image_tag: 'latest') do
its('image_scan_status.status') { should eq 'COMPLETE' }
end
Проверить, что изображение имеет определённый тег
describe aws_ecr_image(repository_name: 'my-repo', image_digest: 'sha256:687fba9b76554c8dea4c40fed4144011f29b8e1d5db5f2fc976c64ed31894967') do
its('tags') { should include('latest') }
end
Проверить, что изображение не содержит уязвимость Heartbleed
describe aws_ecr_image(repository_name: 'my-repo', image_tag: 'latest') do
its('cve_ids') { should_not include('CVE-2014-0160') }
end
Проверить, что изображение не содержит уязвимость с критичностью выше CVSS v2 8
describe aws_ecr_image(repository_name: 'my-repo', image_tag: 'latest') do
its('highest_vulnerability_severity') { should be <= 8 }
end
Обработчики
Этот ресурс аудита InSpec содержит следующие специальные обработчики. Полный список доступных обработчиков см. на нашей странице обработчиков.
exist
describe aws_ecr_image(repository_name: 'my-repo', image_tag: 'latest') do
it { should exist }
end
Разрешения AWS
У вашего принципала должны быть разрешены действия ecr:DescribeImages и ecr:DescribeImageScanFindings.
Более подробная информация представлена в документации по действиям, ресурсам и условиям для Amazon ECR, а также документации по действиям, ресурсам и условиям для 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_ecr_image/