Container Registry and Software Supply Chain Platform · View 32 of 33 · 6 · Assurance
The four layers
- Namespace and quota: a Harbor project per tenant with limits on artifact count and total bytes
- Identity: a robot account per repository, a SPIFFE ID per builder, pull-only identities per namespace
- Data: tenant filtering enforced server-side in the evidence API, with index partitions per tenant
- Discovery: catalog and referrers responses are filtered; digest enumeration is treated as the disclosure risk it is
The leak
- Content-addressed storage deduplicates layers across tenants, which makes a shared layer digest an existence oracle
- A tenant that can time a push can learn whether another tenant already holds that exact layer
- Mitigation: deduplication is scoped by tenant class, and the extra storage is paid deliberately
Assumption
- Tenant classes are coarse — internal, regulated, third-party — rather than per-team, to keep the storage cost bounded
- This should be confirmed against the actual tenancy model before build