Skip to main content

Harbor Application Guide

Harbor is an open-source container registry that secures artifacts with policies and role-based access control, scans images for vulnerabilities, and signs images as trusted.

Status: Available (Not Yet Tested)


Quick Reference

PropertyValue
Application IDharbor
CategoryArtifact Registry
Default Imagegoharbor/harbor-core:v2.9.0
Application Port80
Default CPU2048 (Fargate)
Default Memory4096 MB (Fargate)
Default Instancet3.medium (EC2)
Health Check Path/
Health Check Grace300 seconds
Supports FargateYes
Supports EC2Yes
OIDC SupportNo (use ALB-OIDC)
Database RequiredYes (PostgreSQL)

Capabilities

  • Container image registry
  • Image vulnerability scanning (Trivy)
  • Content trust with image signing (Notary)
  • Role-based access control
  • Image replication across registries
  • Garbage collection
  • Audit logging
  • Multi-tenancy with projects
  • Helm chart repository
  • OCI artifact support

Optional Ports

PortProtocolDirectionFeature FlagDescription
4443TCPInboundenableNotaryContent Trust (Notary)
8080TCPInboundenableTrivyTrivy Scanner

Example enabling security features:

{
"enableNotary": true,
"enableTrivy": true
}

Database Requirements

PropertyValue
EnginePostgreSQL 13+
Instance Classdb.t3.medium (default)
Storage50 GB (default)
Database Nameregistry
Backup Retention30 days

Database Parameters:

  • max_connections: 250
  • shared_buffers: Optimized

Authentication

Supported Auth Modes

ModeStatusDescription
alb-oidcAvailableALB-level authentication
noneAvailableLocal accounts only

Note: Harbor has built-in OIDC support, but CloudForge integration is pending. Use ALB-OIDC for SSO.


Environment Variables

VariableDescription
HARBOR_HOSTNAMEExternal hostname
HARBOR_EXTERNAL_URLFull external URL
POSTGRESQL_*Database connection

Storage Configuration

Container (Fargate)

PropertyValue
Data Path/data
EFS Path/harbor
Volume NameharborData
Container User10000:10000
EFS Permissions755

EC2

PropertyValue
EBS Device/dev/xvdh
Data Path/data/harbor

Deployment Context Examples

Development

{
"stackName": "Harbor-Dev",
"applicationId": "harbor",
"applicationName": "Harbor Dev",
"description": "Harbor development registry",
"environment": "development",

"runtime": "fargate",
"securityProfile": "dev",
"topology": "application-service",

"networkMode": "private-with-nat",
"region": "us-east-1",

"authMode": "none",

"cpu": 2048,
"memory": 4096,

"provisionDatabase": true,
"databaseEngine": "postgres",
"databaseVersion": "15",
"databaseInstanceClass": "db.t3.small",
"databaseAllocatedStorageGB": 50,
"databaseName": "registry",

"enableMonitoring": true,
"logRetentionDays": "7"
}

Production - With Security Scanning

{
"stackName": "Harbor-Production",
"applicationId": "harbor",
"applicationName": "Harbor Registry",
"description": "Production container registry",
"environment": "production",

"runtime": "ec2",
"securityProfile": "production",
"topology": "application-service",

"domain": "example.com",
"subdomain": "registry",
"enableSsl": true,

"networkMode": "private-with-nat",
"region": "us-east-1",

"authMode": "alb-oidc",
"cognitoAutoProvision": true,
"cognitoDomainPrefix": "harbor-prod-yourcompany",
"cognitoMfaEnabled": true,

"instanceType": "t3.large",
"minInstanceCapacity": 2,
"maxInstanceCapacity": 4,

"provisionDatabase": true,
"databaseEngine": "postgres",
"databaseVersion": "15",
"databaseInstanceClass": "db.t3.medium",
"databaseAllocatedStorageGB": 100,
"databaseMultiAz": true,
"databaseName": "registry",
"databaseBackupRetentionDays": 30,

"enableNotary": true,
"enableTrivy": true,

"complianceFrameworks": "SOC2",
"awsConfigEnabled": true,
"guardDutyEnabled": true,
"wafEnabled": true,

"enableMonitoring": true,
"enableEncryption": true,
"logRetentionDays": "730",
"retainStorage": true
}

Cost estimate: ~$500/month


Compliance Use Cases

  • SOC2: Container image provenance and audit trails
  • PCI-DSS: Secure storage of payment processing containers
  • HIPAA: Vulnerability scanning for healthcare containers

Post-Deployment Tasks

  1. Initial Login: Navigate to Harbor URL, default: admin / Harbor12345
  2. Change Admin Password: Immediately change default password
  3. Create Projects: Organize images by team/application
  4. Configure Scanning: Enable Trivy scanning policies
  5. Set Up Replication: Configure replication to/from other registries