私有 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 数据库和密钥。
最佳实践
- 使用 TLS - 启用 HTTPS
- 访问控制 - 限制访问权限
- 定期备份 - 备份数据库和密钥
- 监控告警 - 设置监控和告警
- 高可用 - 部署高可用架构
BSFC Tech Pro Tip
企业环境应该部署私有 Notary 服务,确保密钥安全和合规要求。