Skip to content

私有 Notary 服务

企业环境可以部署私有的 Notary 服务,更好地控制镜像签名。

为什么使用私有 Notary?

  • 完全控制 - 自主管理签名服务
  • 安全性 - 密钥不离开企业网络
  • 合规性 - 满足合规要求
  • 定制化 - 可以根据需求定制

部署 Notary Server

使用 Docker Compose

yaml
version: '3.8'

services:
  notary-server:
    image: notaryserver/notary-server:latest
    ports:
      - "4443:4443"
    environment:
      - NOTARY_SERVER_TRUST_SERVICE_TYPE=remote
      - NOTARY_SERVER_TRUST_SERVICE_HOSTNAME=notary-signer
      - NOTARY_SERVER_TRUST_SERVICE_PORT=7899
    depends_on:
      - notary-signer
      - notary-db

  notary-signer:
    image: notaryserver/notary-signer:latest
    ports:
      - "7899:7899"
    environment:
      - NOTARY_SIGNER_TRUST_SERVICE_TYPE=remote
    depends_on:
      - notary-db

  notary-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: notaryserver
    volumes:
      - notary_db_data:/var/lib/mysql

volumes:
  notary_db_data:

配置 Docker

配置 Notary 服务器

json
{
  "trust-dir": "/etc/docker/trust",
  "notary-server-url": "https://notary.example.com:4443"
}

使用私有 Notary

sh
# 设置 Notary 服务器
export DOCKER_CONTENT_TRUST_SERVER=https://notary.example.com:4443

# 使用内容信任
export DOCKER_CONTENT_TRUST=1
docker pull myimage:latest

安全配置

TLS 配置

yaml
services:
  notary-server:
    volumes:
      - ./certs:/certs
    environment:
      - NOTARY_SERVER_TLS_CERT_FILE=/certs/notary-server.crt
      - NOTARY_SERVER_TLS_KEY_FILE=/certs/notary-server.key

访问控制

配置防火墙和访问控制列表,限制 Notary 服务访问。

监控和维护

监控

  • 监控 Notary 服务状态
  • 监控数据库性能
  • 监控签名操作

备份

定期备份 Notary 数据库和密钥。

最佳实践

  1. 使用 TLS - 启用 HTTPS
  2. 访问控制 - 限制访问权限
  3. 定期备份 - 备份数据库和密钥
  4. 监控告警 - 设置监控和告警
  5. 高可用 - 部署高可用架构

BSFC Tech Pro Tip

企业环境应该部署私有 Notary 服务,确保密钥安全和合规要求。


由 BSFC Tech 提供技术支持