Vertica 备份到 Azure Storage(无 Managed Identity)¶
原文:Backing Up Vertica to an Azure Storage Account Without Using Managed Identities
概述¶
Vertica 完全支持使用 vbr.py 将数据库备份到 Azure Storage Account。最简单的方式是使用分配给集群节点的 Managed Identity 提供 RBAC 访问控制——VM 可直接读写目标存储账户,无需额外认证。
但在某些场景下 Managed Identity 不可用,这时需要通过 Access Key 或 Shared Access Signature (SAS) 来认证。本文介绍这两种方式。
方式一:使用 Access Key¶
使用 vbr.py 备份到 Azure Storage Account 需要三个主要步骤。
1. 导出凭证到系统变量¶
注意:定义变量时只能使用
accountKey或sharedAccessSignature,不能同时使用。
VbrCredentialConfig 有 4 个 JSON 对象,但只需 3 个。以下是从 Azure Portal 获取这些值的方法。
选择 Storage Account → 左侧 Access Keys:

从该页面获取 3 个所需值:
| 变量 | Azure Portal 对应字段 |
|---|---|
accountName |
Storage account name |
blobEndpoint |
完全限定域名(通常为 <accountName>.blob.core.windows.net) |
accountKey |
key1 或 key2 的值 |
注意:这些密钥会定期轮换,务必确保使用当前有效的密钥。
export VbrCredentialConfig='[{"accountName": "vbrkb","blobEndpoint": "vbrkb.blob.core.windows.net","accountKey": "xVm6OjxStmgyKQhHmDn9cZTjGmLE0vHKJrsUAXIzPHywsezExKebnG/ruVLeBl8wIKT/6N+S/5v1+ASt67iAUA==","sharedAccessSignature": ""}]'
有了 accountName 和 blobEndpoint,再定义 VbrEndpointConfig:
export VbrEndpointConfig='[{"accountName": "vbrkb", "blobEndpoint": "vbrkb.blob.core.windows.net", "protocol": "https"}]'
2. 设置备份目标¶
Vertica 节点上 /opt/vertica/share/vbr/example_configs/ 目录中有示例配置文件。
- 复制
backup_restore_cloud_storage.ini到本地 home 目录 - 在
[CloudStorage]段中,注释掉除azb://路径外的所有cloud_storage_backup_path行 - 修改为
azb://<account_name>/<container_name>/<path>格式:
3. 初始化备份位置¶
运行初始化命令,同时验证前述步骤是否正确配置:
正确输出:
方式二:使用 Shared Access Signature (SAS)¶
vbr 也支持更细粒度的 Shared Access Signature,可在 Storage Account 内创建,并设置更多限制条件,包括有效时间窗口。
生成 SAS Token¶
- 左侧选择 Shared access signature
- 选择所需权限,设置起始和结束日期

- 点击 Generate SAS and connection string

SAS Token 即输入到 sharedAccessSignature 字段的值:
export VbrCredentialConfig='[{"accountName": "vbrkb","blobEndpoint": "vbrkb.blob.core.windows.net","accountKey": "","sharedAccessSignature": "?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2022-10-26T00:06:57Z&st=2022-10-25T16:06:57Z&spr=https&sig=qpJcp9FE7tVncxI1XR%2Bf1qt20zT%2F4okqBX9uOje%2Bn44%3D"}]'
注意:
accountKey留空。SAS Token 有过期时间限制,需定期刷新。
两种方式对比¶
| 维度 | Access Key | Shared Access Signature |
|---|---|---|
| 粒度 | 账户级完整权限 | 可精确控制权限范围 |
| 安全性 | 密钥泄露影响整个账户 | 可设时间窗口,泄漏影响有限 |
| 管理 | 需关注密钥轮换 | 需关注过期时间续期 |
| 适用场景 | 内部自动化备份 | 临时/第三方访问 |