私有空间 #

Private Spaces 概述 #

Heroku Private Spaces 提供网络隔离的运行环境,适合对安全性和合规性有严格要求的应用。

特点 #

特点 说明
网络隔离 应用运行在私有网络中
自定义 IP 可以配置静态出站 IP
VPN 连接 支持 VPN 连接到企业网络
合规性 满足 HIPAA、PCI 等合规要求
区域选择 可选择特定 AWS 区域

Private Spaces 类型 #

类型 说明 适用场景
Private Spaces 基础私有空间 企业应用
Shield Spaces 增强安全 合规要求高的应用

创建私有空间 #

使用 CLI 创建 #

bash
# 创建私有空间
heroku spaces:create my-space --region virginia

# 创建 Shield 空间
heroku spaces:create my-shield-space --region virginia --shield

# 查看空间
heroku spaces

# 查看空间详情
heroku spaces:info my-space

在空间中创建应用 #

bash
# 在空间中创建应用
heroku create myapp --space my-space

# 将现有应用移动到空间
heroku apps:move --space my-space --app myapp

网络配置 #

出站 IP #

bash
# 查看空间的出站 IP
heroku spaces:outbound-ips my-space

# 输出示例
# === my-space Outbound IPs
# 52.0.0.1
# 52.0.0.2
# 52.0.0.3
# 52.0.0.4

配置静态 IP #

bash
# 创建 Private Link
heroku spaces:peering:create my-space --aws-account-id 123456789012

# 配置 VPN
heroku spaces:vpn:connect my-space --name office-vpn

VPN 配置 #

text
┌─────────────────────────────────────────────────────┐
│              VPN 连接架构                            │
├─────────────────────────────────────────────────────┤
│                                                     │
│  企业网络                                           │
│  ┌─────────────────────────────────────────────┐   │
│  │  VPN Gateway                                 │   │
│  │  ├── IP: 203.0.113.1                        │   │
│  │  └── CIDR: 10.0.0.0/8                       │   │
│  └─────────────────────────────────────────────┘   │
│       │                                             │
│       │ IPsec VPN Tunnel                            │
│       │                                             │
│       ▼                                             │
│  Heroku Private Space                              │
│  ┌─────────────────────────────────────────────┐   │
│  │  VPN Connection                              │   │
│  │  ├── IP: 52.0.0.1                           │   │
│  │  └── CIDR: 10.10.0.0/16                     │   │
│  │                                              │   │
│  │  ┌─────────┐ ┌─────────┐                    │   │
│  │  │ App 1   │ │ App 2   │                    │   │
│  │  └─────────┘ └─────────┘                    │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
bash
# 创建 VPN 连接
heroku spaces:vpn:connect my-space \
  --name office-vpn \
  --public-ip 203.0.113.1 \
  --routers 10.0.0.1,10.0.0.2

# 查看 VPN 状态
heroku spaces:vpn:info my-space --name office-vpn

# 查看 VPN 配置信息
heroku spaces:vpn:config my-space --name office-vpn

内部路由 #

内部通信 #

bash
# 应用之间可以通过内部域名通信
# 格式: app-name.app-space-name.heroku.space

# 例如
curl http://api.my-app.heroku.space

配置内部路由 #

bash
# 启用内部路由
heroku spaces:internal-routing:enable my-space

# 查看内部路由状态
heroku spaces:info my-space

Shield Spaces #

Shield 特性 #

特性 说明
加密休息 数据静态加密
增强审计 详细审计日志
合规认证 HIPAA、PCI、SOC
严格访问 更严格的访问控制

创建 Shield 空间 #

bash
# 创建 Shield 空间
heroku spaces:create my-shield-space --region virginia --shield

# Shield 空间中的应用
heroku create myapp --space my-shield-space

Shield 合规要求 #

markdown
## Shield 合规检查清单
- [ ] 启用 MFA
- [ ] 配置审计日志
- [ ] 设置访问控制
- [ ] 加密敏感数据
- [ ] 定期安全审查

访问控制 #

配置 IP 白名单 #

bash
# 设置 IP 白名单
heroku spaces:access:add my-space --ip 203.0.113.0/24

# 查看访问控制
heroku spaces:access my-space

# 删除 IP 白名单
heroku spaces:access:remove my-space --ip 203.0.113.0/24

团队访问 #

bash
# 添加团队成员
heroku access:add user@example.com --app myapp --permissions deploy

# 查看团队成员
heroku access --app myapp

数据库配置 #

Private 数据库 #

bash
# 在私有空间中创建数据库
heroku addons:create heroku-postgresql:private-0 --app myapp

# 创建 Shield 数据库
heroku addons:create heroku-postgresql:shield-0 --app myapp

数据库连接 #

javascript
// 应用内部连接数据库
const { Pool } = require('pg');

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: {
    rejectUnauthorized: false
  }
});

监控与日志 #

私有空间日志 #

bash
# 查看空间日志
heroku logs --tail --app myapp

# 配置日志转发
heroku drains:add syslog://logs.example.com:514 --app myapp

监控配置 #

bash
# 添加监控 Add-ons
heroku addons:create newrelic:wayne --app myapp
heroku addons:create papertrail:choklad --app myapp

最佳实践 #

1. 网络架构 #

text
┌─────────────────────────────────────────────────────┐
│              私有空间网络架构                        │
├─────────────────────────────────────────────────────┤
│                                                     │
│  公网                                               │
│     │                                               │
│     ▼                                               │
│  ┌─────────────────────────────────────────────┐   │
│  │  Heroku Router                               │   │
│  │  (HTTPS, WAF)                               │   │
│  └─────────────────────────────────────────────┘   │
│     │                                               │
│     ▼                                               │
│  ┌─────────────────────────────────────────────┐   │
│  │  Private Space                               │   │
│  │                                              │   │
│  │  ┌─────────┐   ┌─────────┐                  │   │
│  │  │ Web App │   │ API App │                  │   │
│  │  └────┬────┘   └────┬────┘                  │   │
│  │       │              │                       │   │
│  │       └──────┬───────┘                       │   │
│  │              │                               │   │
│  │              ▼                               │   │
│  │  ┌─────────────────────────────────────┐    │   │
│  │  │  Private PostgreSQL                 │    │   │
│  │  │  Private Redis                      │    │   │
│  │  └─────────────────────────────────────┘    │   │
│  │                                              │   │
│  │              │                               │   │
│  │              │ VPN                          │   │
│  │              ▼                               │   │
│  │  ┌─────────────────────────────────────┐    │   │
│  │  │  企业网络                            │    │   │
│  │  └─────────────────────────────────────┘    │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘

2. 安全配置 #

markdown
## 安全配置检查清单
- [ ] 启用 MFA
- [ ] 配置 IP 白名单
- [ ] 设置 VPN 连接
- [ ] 启用内部路由
- [ ] 配置审计日志
- [ ] 定期安全审查

3. 成本优化 #

markdown
## 成本优化建议
- 使用合适的 Dyno 大小
- 合理配置数据库计划
- 定期审查资源使用
- 使用自动扩展

故障排查 #

VPN 连接问题 #

bash
# 检查 VPN 状态
heroku spaces:vpn:info my-space --name office-vpn

# 查看 VPN 配置
heroku spaces:vpn:config my-space --name office-vpn

# 常见问题
# 1. IP 配置错误
# 2. 路由配置错误
# 3. 防火墙阻止

应用无法访问 #

bash
# 检查空间状态
heroku spaces:info my-space

# 检查应用状态
heroku ps --app myapp

# 检查访问控制
heroku spaces:access my-space

下一步 #

私有空间掌握后,接下来学习 API 与自动化 了解自动化管理!

最后更新:2026-03-28