配置阶段安全增强
安全地设置环境变量
- 设置临时环境变量:使用密态数据库时,通过export命令设置环境变量;使用完,即通过unset命令清理环境变量。该方法中操作系统日志可能会记录敏感信息,建议使用进程级环境变量或使用JDBC接口对connection连接参数进行设置。
- 设置进程级环境变量:在应用程序代码中,通过编程接口设置环境变量,不同编程语言设置示例如下:
- C/C++:setenv(name, value)。
- Go:os.Setenv(name, value)。
- java暂不支持设置进程级环境变量,仅支持通过JDBC接口设置connection连接参数。
外部密钥服务的身份验证
当数据库驱动访问华为云密钥管理服务时,为避免攻击者伪装为密钥服务,在数据库驱动与密钥服务建立https连接的过程中,可通过CA证书验证密钥服务器的合法性。为此,需提前配置CA证书,如果未配置,将不会验证密钥服务的身份。配置方法如下:
export HUAWEI_KMS_INFO='其他参数, iamCaCert=路径/IAM的CA证书文件, kmsCaCert=路径/KMS的CA证书文件'
大部分浏览器均会自动下载网站对应的CA证书,并提供证书导出功能。虽然,诸如https://www.ssleye.com/ssltool/certs_down.html等很多网站也提供自动下载CA证书的功能,但可能因本地环境中存在代理或网关,导致CA证书无法正常使用。所以,建议借助浏览器下载CA证书。下载方式如下:
![](https://support.huaweicloud.com/fg-gaussdb-dist/public_sys-resources/caution_3.0-zh-cn.png)
由于我们使用restful接口访问密钥服务,当我们在浏览器输入接口对应的url时,可忽略下述2中的失败页面,因为即使在失败的情况下,浏览器早已提前自动下载CA证书。