本文介绍如何在您的服务器上部署可信代理服务。
可信代理是一个部署在用户侧的开源代理软件,能够处理并转发多云CDN的请求到云服务商。该软件允许您在使用多云CDN时,无需向多云CDN提供云服务商的真实 API 访问凭证。您将可信代理软件安装到受信任的服务器上,使该服务器充当代理服务器。代理服务器用于托管云服务商的真实 API 访问凭证(以下简称“真实凭证”),及配置与之对应的代理 API 访问凭证(以下简称“代理凭证”)。
可信代理服务启动后,您可使用代理凭证在多云CDN中添加云服务商账号。多云CDN使用代理凭证调用云服务商的 API,相关请求由代理服务器转发到云服务商。
可信代理服务启动后,多云CDN和云服务商之间的请求过程如下:
您已经订阅了多云CDN旗舰版套餐。相关操作,请参见开通多云CDN。
目前只有旗舰版套餐支持可信代理功能。
您已经通过可信代理使用申请。
可信代理目前仅向通过使用申请的火山引擎账号开放。您可以向多云CDN商务代表或通过工单提交使用申请。
您已经准备好一台服务器用于部署可信代理服务。该服务器需满足以下要求:
您可以通过多云CDN控制台下载可信代理软件的安装包。可信代理软件要运行在互联网可访问的服务器上。您可以直接将安装包下载到服务器进行部署,或者先将安装包下载到本地计算机再上传到服务器进行部署。
可信代理安装包的下载步骤如下:
登录多云CDN控制台。
在左侧导航栏,单击 厂商管理。
在 厂商管理 页面,单击 可信代理。
说明
只有当前提条件已满足时,可信代理 按钮才会出现。
在 可信代理 面板,单击 去下载安装包。
根据您的服务器环境,选择要下载的安装包版本。
支持的版本有:
key-proxy_linux_386
:适用于基于 i386 架构的 32 位计算机,Linux 操作系统。key-proxy_linux_amd64
:适用于基于 AMD64 架构的 64 位计算机,Linux 操作系统。key-proxy_linux_arm64
:适用于基于 ARM64 架构的 64 位计算机,Linux 操作系统。key-proxy_darwin_amd64
:适用于基于 AMD64 架构的 64 位计算机,Darwin 操作系统。key-proxy_darwin_arm64
:适用于基于 ARM64 架构的 64 位计算机,Darwin 操作系统。假设您已经在服务器上下载了适用于 linux_386 环境的安装包。
在启动可信代理服务前,您需要修改代理配置。代理配置中定义了云服务商的 API 访问凭证(真实凭证、代理凭证)等信息。
代理配置的修改步骤如下:
解压缩可信代理安装包。
解压缩安装包后,您将获得key-proxy_linux_386
文件夹。该文件夹是可信代理的主文件夹。
打开key-proxy_linux_386
文件夹下的config.yml
配置文件,按照以下说明修改其中的Endpoints
部分。
# 代理配置 Endpoints: - CloudAccountName: "<Cloud Account Name>" # 云服务商账号名称,不可重复 Vendor: "<Vendor Name>" # 云服务商的代码 Credentials: Proxy: # 代理凭证 AccessKey: "<Proxy Access Key>" # 您自定义的代理 Access Key,用于多云CDN访问可信代理 SecretKey: "<Proxy Secret Key>" # 您自定义的代理 Secret Key,用于多云CDN访问可信代理 Real: # 真实凭证 AccessKey: "<Real Access Key>" # 云服务商账号的真实 Access Key,用于可信代理访问云服务商 SecretKey: "<Real Secret Key>" # 云服务商账号的真实 Secret Key,用于可信代理访问云服务商
配置文件中的Endpoints
部分表示代理配置,用于配置云服务商账号的相关信息。关于配置文件中其他部分的含义,请参见配置文件详情。
Endpoints
结构包含以下参数:
参数名称 | 参数说明 | 示例值 |
---|---|---|
CloudAccountName | 为要添加的账号设置一个名称。该名称只在多云CDN中使用。设置要求如下:
注意 后续在多云CDN中添加账号时,您需要使用此处设置的账号名称。 |
|
Vendor | 选择账号所属的云服务商。该参数有以下取值:
|
|
Credentials.Real | 配置云服务商账号的真实凭证。
| 参考配置示例 |
Credentials.Proxy | 自定义代理凭证。代理凭证中包含的凭证参数与Credentials.Real 中一致。 | 参考配置示例 |
volc-realAK
和volc-realSK
。您为账号设置的账号名称是volcengine_account
,自定义的代理凭证是volc-proxyAK
和volc-proxySK
。Endpoints
配置如下:# 代理配置 Endpoints: - CloudAccountName: "volcengine_proxy" Vendor: "volcengine" Credentials: Real: AccessKey: "volc-realAK" SecretKey: "volc-realSK" Proxy: AccessKey: "volc-proxyAK" SecretKey: "volc-proxySK"
在此基础上,您可以继续添加账号名称为baishan_account
的白山云账号。对应的Endpoints
配置如下:
# 代理配置 Endpoints: - CloudAccountName: "baishan_proxy" Vendor: "baishan" Credentials: Real: AccessToken: "baishan-realAccessToken" Proxy: AccessToken: "baishan-proxyAccessToken" - CloudAccountName: "volcengine_proxy" Vendor: "volcengine" Credentials: Real: AccessKey: "volc-realAK" SecretKey: "volc-realSK" Proxy: AccessKey: "volc-proxyAK" SecretKey: "volc-proxySK"
修改完配置文件后,您就可以在服务器上启动可信代理服务。
注意
可信代理服务默认运行在 HTTP 3888 端口。如需修改可信代理服务的运行端口,请参见配置文件详情。
可信代理服务支持两种启动方式:
进入key-proxy_linux_386
文件夹,运行其中的可执行文件(key-proxy
)。
./key-proxy
前提条件
服务器上必须已经搭建好 Golang 开发环境。
编译并运行
进入key-proxy
目录,执行编译命令。
make build
编译命令执行完成后,当前文件夹下会自动生成一个可执行文件。
运行自动生成的可执行文件。
./main
启动可信代理服务后,您就可以在多云CDN中使用代理凭证来添加云服务商账号。您需要向多云CDN提供代理服务的访问地址,以及您在代理配置(Endpoints
)中定义的账号名称(CloudAccountName
)和代理凭证(Credentials.Proxy
)。具体操作,请参见添加可信代理账号。
可信代理的配置文件config.yml
内容如下。本章节主要介绍其中的Http
和Log
部分。
关于Endpoints
部分的介绍,请参见步骤2:修改代理配置。
# Http Server配置 Http: Address: ":3888" # 代理服务运行端口 Tls: Enabled: false # 是否开启 HTTPS Address: ":443" # 开启 HTTPS 时,可信代理服务的运行端口 CertFile: "./ssl.crt" # 证书文件的路径 KeyFile: "./ssl.key" # 私钥文件的路径 # 默认Logger配置,使用自定义 Logger 时无效 Log: Output: ./output/log # 日志存放位置 Level: debug # 日志等级。debug, info, warn, error MaxAge: 14 # 日志时效,单位: 天。超过有效期的日志将被清除。0 表示永久保留。 MaxSize: 100 # 最大单个日志文件体积,单位: Mb。 # 拦截行为配置 Forbidden: ForbiddenAccountNotFound: false # 禁止配置中不存在的云服务商账号 ForbiddenProxyCredentialErr: false # 禁止错误的代理凭证 # 代理配置 Endpoints: - CloudAccountName: "<Cloud Account Name>" # 云服务商账号名称,不可重复 Vendor: "<Vendor Name>" # 云服务商的代码 Credentials: Proxy: # 代理凭证 AccessKey: "<Proxy Access Key>" # 您自定义的代理 Access Key,用于多云CDN访问可信代理 SecretKey: "<Proxy Secret Key>" # 您自定义的代理 Secret Key,用于多云CDN访问可信代理 Real: # 真实凭证 AccessKey: "<Real Access Key>" # 云服务商账号的真实 Access Key,用于可信代理访问云服务商 SecretKey: "<Real Secret Key>" # 云服务商账号的真实 Secret Key,用于可信代理访问云服务商
可信代理服务默认运行在 3888 端口。您可以为可信代理服务启用 HTTPS。
启用 HTTPS 的配置步骤如下:
将代理服务器的 TLS 证书上传到可信代理服务的主目录(key-proxy_linux_386
)。
如以下文件树,ssl.crt
表示证书文件、ssl.key
表示证书私钥,它们与config.yml
位于同一个目录。
. ├── ./ ├── ../ ├── config.yml ├── key-proxy ├── output/ ├── ssl.crt └── ssl.key
修改config.yml
配置文件中的Http
部分。
您需要将Enabled
的值设置为true
并将CertFile
和KeyFile
的值分别设置为证书文件和私钥文件的路径。
# 配置文件 Http: Address: ":" # 代理服务运行地址(HTTPS 启用后,该设置会被忽略) Tls: Enabled: true # 是否开启 HTTPS Address: ":443" # 开启 HTTPS 时,可信代理服务的运行端口 CertFile: "./ssl.crt" # 证书文件的路径 KeyFile: "./ssl.key" # 私钥文件的路径 # ....
可信代理服务在运行过程中会产生运行日志。
key-proxy
为前缀(如key-proxy.log
)。output/log
文件夹中。您可以在配置文件中修改日志存放文件夹的位置。日志配置位于config.yml
配置文件中的Log
部分,具体包含以下参数。
参数名称 | 参数说明 |
---|---|
Output | 日志的存放位置。默认为./output/log 。 |
Level | 要记录的日志的等级。低于该等级的日志不会被记录。 |
MaxAge | 日志的最长存储天数。超过期限的日志将被自动清除。 |
MaxSize | 单个日志文件的最大大小。单位:MB。默认值:100。 |
可信代理服务启动后,多云CDN向云服务商发送的所有请求都由可信代理转发。除了可以转发通过正确代理凭证发送的请求,可信代理默认也可以转发其他请求。主要包括以下两种情况:
多云CDN向某个未配置代理的云服务商发送了请求。
可信代理无法验证该请求,但会直接将请求转发给云服务商。这表示您可以只为部分云服务商启用可信代理。对于没有启用可信代理的云服务商,您仍可以使用真实的访问凭证来调用它们的服务。
多云CDN用于发送请求的凭证与可信代理中配置的代理凭证不匹配。
可信代理无法验证该请求,但会直接将请求转发到云服务商。
您可以通过以下参数修改上述默认配置。
参数名称 | 参数说明 |
---|---|
ForbiddenAccountNotFound | 该参数的值默认为 false 。如果您需要拦截多云CDN向未配置代理的云服务商发送请求,可将该参数值修改为 true 。 |
ForbiddenProxyCredentialErr | 该参数的值默认为 false 。如果您需要拦截通过不匹配的代理凭证发送的请求,可将该参数值修改为 true 。 |