← 返回首页
🚀

制品管理:Nexus Harbor安全扫描架构

📂 architecture ⏱ 1 min 199 words

制品管理:Nexus Harbor安全扫描架构

制品管理架构概览

制品管理是DevOps基础设施的核心组件,负责存储、版本化和分发构建产出物。完善的制品管理确保可追溯性、安全性和合规性。

┌─────────────────────────────────────────────────┐
│                制品管理平台                       │
├─────────────┬─────────────┬─────────────────────┤
│   Nexus     │   Harbor    │   Artifactory       │
│ 通用制品库  │  Docker仓库  │   企业级制品库       │
│ Maven/npm   │  Helm Chart │   多格式支持         │
│ PyPI/NuGet  │  镜像签名    │   镜像联邦           │
└──────┬──────┴──────┬──────┴──────────┬──────────┘
       │             │                 │
       ▼             ▼                 ▼
   安全扫描      访问控制           审计日志
  Trivy/CVE     RBAC/LDAP        审计追踪

Nexus Repository配置

Maven仓库配置

# docker-compose.yml
version: '3'
services:
  nexus:
    image: sonatype/nexus3:latest
    ports:
      - "8081:8081"
    volumes:
      - nexus-data:/nexus-data
    environment:
      INSTALL4J_ADD_VM_PARAMS: "-Xmx2g -XX:MaxDirectMemorySize=2g"
    restart: unless-stopped

volumes:
  nexus-data:

Nexus API操作

# 上传制品到Maven仓库
mvn deploy \
  -Dnexus.url=http://nexus:8081/repository/maven-releases/

# 查询组件信息
curl -u admin:admin123 \
  "http://nexus:8081/service/rest/v1/search?repository=maven-releases&name=myapp"

# 清理过期组件
curl -X POST -u admin:admin123 \
  -d '{"repository":"maven-releases","keepMinimum":5}' \
  "http://nexus:8081/service/rest/v1/tasks/cleanup"

Harbor镜像仓库

Harbor架构

Harbor架构:
├── Portal(Web UI)
├── Core Service(核心服务)
│   ├── Registry(镜像存储)
│   ├── Token Service(认证)
│   └── Job Service(异步任务)
├── Database(PostgreSQL)
├── Redis(缓存)
└── Storage(S3/OSS/本地)

Harbor配置

# harbor.yml
hostname: harbor.example.com
http:
  port: 80
https:
  port: 443
  certificate: /data/cert/server.crt
  private_key: /data/cert/server.key

database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900

storage:
  s3:
    accesskey: AKIAIOSFODNN7EXAMPLE
    secretkey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    region: us-east-1
    bucket: harbor-registry

安全扫描集成

# GitLab CI集成Trivy扫描
trivy-scan:
  stage: security-scan
  image:
    name: aquasec/trivy:latest
    entrypoint: [""]
  script:
    - trivy image --exit-code 1 --severity HIGH,CRITICAL
        --format json --output trivy-report.json
        harbor.example.com/project/myapp:${CI_COMMIT_SHA}
  artifacts:
    paths:
      - trivy-report.json
    reports:
      container_scanning: trivy-report.json

最佳实践

  1. 不可变制品:构建一次,分发到各环境,避免重复构建
  2. 版本标签策略:语义化版本 + Git SHA,确保可追溯
  3. 漏洞阻断:将安全扫描作为发布门禁,阻止高危漏洞制品
  4. 垃圾回收:定期清理未引用的层和过期镜像