Skip to main content

AWS ECR

CCF compliance plugin for AWS Elastic Container Registry (ECR). Evaluates private ECR repositories and container image scan results against SOC2 TSC 2017 controls.

This page is for operators who run the plugin-aws-ecr plugin with the CCF Agent, and for developers who write policies for it. It documents v0.1.1 and is generated from the plugin's README at v0.1.1.

Requirements​

Required IAM actions​

{
"Effect": "Allow",
"Action": [
"ecr:DescribeRepositories",
"ecr:GetLifecyclePolicy",
"ecr:GetRepositoryPolicy",
"ecr:ListTagsForResource",
"ecr:GetRegistryScanningConfiguration",
"ecr:DescribeImages",
"ecr:DescribeImageScanFindings"
],
"Resource": "*"
}

Configuration​

KeyTypeRequiredDescription
regionsstringYesComma-separated AWS regions to scan (e.g. "us-east-1,eu-west-1")
accountsstringNoComma-separated account IDs to filter on. If omitted, all repositories in the region are evaluated.
policy_labelsstring (JSON)NoExtra labels added to every Evidence record (e.g. {"env":"prod"})

Evidence collected​

What it checks​

CONFIG checks (per repository)​

CheckDescriptionControls
ecr_require_scan_on_pushimageScanningConfiguration.scanOnPush must be trueCC5.3, CC6.8, CC7.1
ecr_require_tag_immutabilityimageTagImmutability must be IMMUTABLECC6.8, CC8.1
ecr_require_encryptionEncryption type must be in approved_encryption_typesCC5.2
ecr_require_lifecycle_policyRepository must have a lifecycle policy configuredCC6.5
ecr_deny_public_accessResource policy must not grant Principal: "*" with Effect: AllowCC6.8, CC8.1
ecr_require_tagsRepository must carry all required_repository_tagsCC6.1

CONFIG checks (per registry / account+region)​

CheckDescriptionControls
ecr_require_registry_scanningRegistry-level scan type must be in approved_registry_scan_typesCC5.2, CC5.3, CC7.1

DYNAMIC checks (per image digest, 90-day lookback)​

CheckDescriptionControls
ecr_require_image_scan_completeImage scan status must be COMPLETECC3.2, CC5.2, CC7.1, CC8.1
ecr_require_no_critical_image_findingsCRITICAL finding count must be 0CC6.8, CC7.1, CC8.1
ecr_require_no_high_image_findingsHIGH finding count must be ≤ max_high_finding_countCC6.8, CC7.1, CC8.1
ecr_require_scan_findings_retrievableScan findings with severity data must be accessibleCC6.8, CC7.1

Policies​

The policy bundles that work with this plugin, at their newest releases. The controls are the ones the bundle's policies list in their metadata.

BundleLatest versionControls coveredCompatible plugin lines
plugin-aws-ecr-image-policiesv0.1.0ctrl-cc3-2-011, ctrl-cc5-2-007, ctrl-cc6-8-004, ctrl-cc6-8-006, ctrl-cc6-8-008, ctrl-cc6-8-010, ctrl-cc7-1-004, ctrl-cc7-1-005, ctrl-cc7-1-010, ctrl-cc7-1-011, ctrl-cc8-1-016, ctrl-cc8-1-017latest
plugin-aws-ecr-registry-policiesv0.1.0ctrl-cc5-2-006, ctrl-cc5-3-025, ctrl-cc7-1-001, ctrl-cc7-1-002, ctrl-cc7-1-006, ctrl-cc7-1-011latest
plugin-aws-ecr-repository-policiesv0.1.0CC6.1, ctrl-cc5-2-006, ctrl-cc5-3-025, ctrl-cc6-5-001, ctrl-cc6-8-001, ctrl-cc6-8-002, ctrl-cc6-8-003, ctrl-cc6-8-005, ctrl-cc6-8-007, ctrl-cc6-8-009, ctrl-cc6-8-011, ctrl-cc6-8-012, ctrl-cc6-8-013, ctrl-cc7-1-001, ctrl-cc7-1-006, ctrl-cc8-1-001, ctrl-cc8-1-008, ctrl-cc8-1-014, ctrl-cc8-1-015latest

Policy data (overrides data.json defaults)​

KeyTypeDefaultDescription
approved_encryption_types[]string["KMS"]Allowed ECR encryption types
approved_registry_scan_types[]string["ENHANCED"]Allowed registry-level scan modes
required_repository_tags[]string["Environment","Owner"]Tag keys every repository must carry
required_tag_valuesobject{}Enforce specific values for certain tags
image_lookback_daysnumber90Days back to evaluate image digests
max_high_finding_countnumber0Maximum HIGH severity findings allowed per image