Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detailed Container Registry Features #595

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,29 @@ common_controls:
- CCC.C10 # Prevent data replication to destinations outside of defined trust perimeter

controls:
- id: CCC.ContReg.C01 # Implement Vulnerability Scanning for Artifacts
- id: CCC.CtrReg.C01 # Implement Vulnerability Scanning for Artifacts
title: Implement Vulnerability Scanning for Artifacts
objective: |
Ensure that container images and artifacts stored in the container registry are scanned for
vulnerabilities to identify and remediate security issues before deployment.
control_family: Risk Management
threats:
- CCC.ContReg.TH01 # Vulnerabilities in Artifacts are Exploited
- CCC.CtrReg.TH01 # Vulnerabilities in Artifacts are Exploited
nist_csf: ID.RA-1 # Asset vulnerabilities are identified and documented
control_mappings:
NIST_800_53:
- RA-5 # Vulnerability Monitoring and Scanning
- SI-5 # Security Alerts, Advisories, and Directives
test_requirements:
- id: CCC.ContReg.C01.TR01
- id: CCC.CtrReg.C01.TR01
text: |
Attempt to push an artifact with known vulnerabilities to the registry
and observe if it is flagged or rejected by the vulnerability scanning process.
tlp_levels:
- tlp_red
- tlp_amber

- id: CCC.ContReg.C02 # Implement Cleanup Policies for Artifacts
- id: CCC.CtrReg.C02 # Implement Cleanup Policies for Artifacts
title: Implement Cleanup Policies for Artifacts
objective: |
Ensure that unused or outdated artifacts are cleaned up according to defined policies to
Expand All @@ -43,7 +43,7 @@ controls:
NIST_800_53:
- SI-12 # Information Handling and Retention
test_requirements:
- id: CCC.ContReg.C02.TR01
- id: CCC.CtrReg.C02.TR01
text: |
Confirm that artifacts older than the specified retention period are automatically deleted from the registry.
tlp_levels:
Expand Down
113 changes: 113 additions & 0 deletions services/devtools/container-registry/features.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
common_features:
- CCC.F01 # Encryption in Transit Enabled by Default
- CCC.F02 # Encryption at Rest Enabled by Default
- CCC.F03 # Access/Activity Logs
- CCC.F04 # Transaction Rate Limits
- CCC.F05 # Signed URLs
- CCC.F06 # Identity-Based Access Control
- CCC.F07 # Event Notifications
- CCC.F09 # Monitoring
- CCC.F13 # Infrastructure as Code
- CCC.F14 # API Access
- CCC.F18 # Versioning
- CCC.F21 # Replication
- CCC.F22 # Location Lock-In

features:
- id: CCC.CtrReg.F01
title: Image Storage
description: |
Provides secure storage for container images and image metadata.

- id: CCC.CtrReg.F02
title: Private Repositories
description: |
Ability to create and manage container image repositories that
are restricted and only accessible by authorized users or services.

- id: CCC.CtrReg.F03
title: Public Repositories
description: |
Ability to create and manage container image repositories that
are open to the public. These repositories are used mainly for
sharing container images.

- id: CCC.CtrReg.F04
title: Lifecycle Policies
description: |
Supports defining of policies for automatic expiry of
unused or outdated images to manage storage effectively.

- id: CCC.CtrReg.F05
title: Image Scanning
description: |
Provides vulnerability scanning for container images (built-in
or through integration to scanning services) to detect security
issues and generate reports for known CVEs (Common Vulnerabilities
and Exposures).

- id: CCC.CtrReg.F06
title: Integration with CI/CD Tooling
description: |
Seamlessly integrates with CI/CD pipelines to automate pushing and pulling of
container images.

- id: CCC.CtrReg.F07
title: Caching of Images
description: |
Provides caching for faster access to frequently used images.

- id: CCC.CtrReg.F08
title: Multi-platform Support
description: |
Ability to store images built for different CPU architectures such as
x86_64 (AMD/Intel), ARM64, and others within the same container image
repository.

- id: CCC.CtrReg.F09
title: Immutable Tags
description: |
Prevent tags from being overwritten or deleted once they have been
assigned to an image. This ensures that once a container image is tagged
with a specific version or identifier, that tag remains associated with
the same image throughout its lifetime.

- id: CCC.CtrReg.F10
title: List Repositories
description: |
Ability to list all repositories in the container image registry.

- id: CCC.CtrReg.F11
title: Edit Repository
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to add "Create Repository", "Create Image" and "Create Lifecycle Policy" or is that too far?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm bit confused myself with this. I have . I added the "Create Private Repository", "Create Public Repository", "Create Image" and "Create Lifecycle Policy" and then removed them thinking then there is no value in having "Private Repository", "Public Repository", "Image Storage", "Lifecycle Rules". Not sure whether to have them all, or creates or just functionality.

description: |
Ability to edit a container image repository properties after being created.

- id: CCC.CtrReg.F12
title: Delete Repository
description: |
Ability to delete a container image repository properties after being created.
smendis-scottlogic marked this conversation as resolved.
Show resolved Hide resolved

- id: CCC.CtrReg.F13
title: List Images
description: |
Ability to list container images in a repository.

- id: CCC.CtrReg.F14
title: Delete Image
description: |
Ability to delete a container image after being created.

- id: CCC.CtrReg.F15
title: List Lifecycle Policies
description: |
Ability to list lifecycle policies for container images in a repository.

- id: CCC.CtrReg.F16
title: Edit Lifecycle Policy
description: |
Ability to edit a lifecycle policy after being created.

- id: CCC.CtrReg.F14
title: Delete Lifecycle Policy
description: |
Ability to delete a lifecycle policy after being created.
20 changes: 20 additions & 0 deletions services/devtools/container-registry/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
title: CCC Container Registry
id: CCC.CtrReg
description: |
This documents the minimal set of features that should be present
for a container registry service to be considered for use in financial
services ecosystems.
release_details:
- version: "2025.06"
assurance_level: None
threat_model_url: None
threat_model_author: None
red_team: None
red_team_exercise_url: None
release_manager:
name: Damien Burks
github_id: damienjburks
company: Citi
summary: Test
change_log:
- Test
32 changes: 0 additions & 32 deletions services/devtools/containerReg/features.yaml

This file was deleted.

23 changes: 23 additions & 0 deletions services/devtools/service-categories.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
title: CCC Dev Tools
id: CCC.DevTools
description: |
Dev Tools in the context of cloud computing refer to a suite of tools
and services provided by cloud service providers to help developers
build, test, deploy, and maintain applications efficiently. These tools
are designed to support the DevOps lifecycle by enabling collaboration,
automation, and scalability for development workflows in the cloud.
service_categories:
- id: CCC.CtrReg
title: Container Registry
description: |
Container Registry is a repository for storing, managing and distributing
container images. It acts as a hub in the container ecosystem, enabling
developers to push, pull, version, and share container images efficiently
and securely.
examples:
- AWS:
- AWS Elastic Container Registry (ECR)
- Azure:
- Azure Container Registry (ACR)
- Google Cloud:
- Google Container Registry (GCR)
Loading