Harbor: The Reference Architecture for Secure and Sovereign Container Registries
TL;DR The Container Registry is the heart of your software supply chain. Trusting cloud services …

Container registries may seem like a technical detail at first glance. Images are built, stored, pulled—done. In practice, however, registries are a central component of modern platform architectures. They determine how images can be distributed, secured, versioned, and moved between environments.
AWS Elastic Container Registry (ECR) and Harbor solve the same fundamental problem: storing and providing container images. Architecturally, however, they represent two fundamentally different models. One subordinates the registry to the cloud. The other makes it a controllable part of your own platform.
AWS Elastic Container Registry is the managed Container Registry service from AWS. Docker and OCI images can be easily stored and retrieved. The integration into IAM, ECS, EKS, and CodePipeline is deep, lifecycle policies and basic image scans are available. AWS fully manages operations, scaling, and availability.
For workloads that consistently run in AWS, ECR is quickly set up and functionally sufficient. Developers do not have to deal with storage, replication, or high availability. The registry is there, it works, and largely disappears into the background.
However, this convenience is not a neutral advantage.
ECR is fully tied to AWS—infrastructurally, organizationally, and cost-wise. Access control follows the IAM model, replication is oriented towards AWS regions, billing scales with storage and data traffic inside and outside of AWS.
In Kubernetes environments outside of AWS or in hybrid scenarios, ECR becomes an external dependency point. The registry is accessible but not part of the actual platform architecture. It is a connected cloud service whose logic is not identical to the cluster or platform logic.
Container images are implicitly bound to an ecosystem here, not consciously treated as a cross-platform artifact.
Harbor takes a fundamentally different approach. As an open-source container registry, Harbor is explicitly designed for Kubernetes and platform environments. It supports OCI images, Helm charts, and other artifacts, and brings features that go beyond mere image storage.
Role-based access control, multi-tenancy, replication between locations, image signing, vulnerability scans, and policy-driven approvals are integral parts of the system. Harbor can be self-hosted—on-premises, in European clouds, or in distributed setups—and integrates directly into Kubernetes clusters.
Here, the registry is not an external service but part of the platform.
The central difference is not in feature comparison but in the role of the registry. AWS ECR is a cloud function. Harbor is a platform component.
With Harbor, projects, repositories, and policies are consciously structured. Multi-tenancy is planned, not retrofitted. Image promotion—from development to production, for example—can be explicitly controlled. Replication between locations occurs independently of the cloud provider. Approvals and signatures become part of governance, not an optional add-on.
The registry thus becomes part of the security and governance layer—not just a technical storage.
This openness has immediate architectural impacts. Container images remain portable. Build, scan, and deployment processes work identically across multiple clusters and environments. Kubernetes accesses a registry that is under its own control and not tied to a single ecosystem.
Especially in platforms with a GitOps approach, multiple clusters, or hybrid environments, the registry becomes a stable core component. It follows the platform architecture—not the other way around.
ECR cannot achieve this because it is not designed for it.
The operational effort is consciously part of the model with Harbor. Operations, updates, monitoring, and backups must be planned and implemented. This increases responsibility but creates transparency.
Costs are predictable, data retention is traceable, replication paths are visible. Integrations occur via open standards, not cloud-specific APIs. Optimization means better platform architecture—not higher service costs.
ECR takes this effort away but buys it with dependency and limited design freedom.
| Aspect | AWS ECR | Harbor |
|---|---|---|
| Operating Model | Fully managed | Self-hosted |
| Architectural Role | Cloud Service | Platform Component |
| Access Control | IAM-based | RBAC & Projects |
| Portability | Low | High |
| Kubernetes Integration | External | Native |
| Governance & Policies | Limited | Comprehensive |
AWS ECR is suitable for:
Harbor is suitable for:
Container registries are not an interchangeable detail. They determine how images are distributed, secured, and controlled.
AWS ECR subordinates the registry to the cloud. Harbor makes it an independent, open platform component.
The difference is not functional but strategic. Those who bind container artifacts to a provider bind a central part of the supply chain. Those who understand the registry as a platform component retain control—even when infrastructure, cloud, or organizational structure changes.
TL;DR The Container Registry is the heart of your software supply chain. Trusting cloud services …
Service or Architectural Decision? CI/CD is often treated as a tool question: Which service, which …
Pipeline Orchestration or GitOps as an Operational Model CI/CD is often treated as a tool question: …