azurekeyvault
配置节
Azure Key Vault 封印配置了 Vault 如何使用 Azure Key Vault 封装封印密钥。Azure Key Vault 封印可以由以下任一方式激活:
- Vault 配置文件中设置了
seal "azurekeyvault"
块 - 环境变量
VAULT_SEAL_TYPE
的值被设置为azurekeyvault
。如果通过环境变量启用该功能,必须通过环境变量提供所有 Azure Key Vault 所需要的其他值和所有有助进行身份验证的环境变量(例如VAULT_AZUREKEYVAULT_VAULT_NAME
以及AZURE_TENANT_ID
等)。
azurekeyvault
例子
下面的例子显示了通过 Vault 配置文件提供所有必要的值来配置 Azure Key Vault 封印:
seal "azurekeyvault" {
tenant_id = "46646709-b63e-4747-be42-516edeaf1e14"
client_id = "03dc33fc-16d9-4b77-8152-3ec568f8af6e"
client_secret = "DUJDS3..."
vault_name = "hc-vault"
key_name = "vault_key"
}
azurekeyvault
参数
以下参数可以在 Vault 配置文件的 seal
配置节当中使用:
tenant_id
(string: <required>)
: 使用的 Azure Active Directory 组织的 tenant id。可以通过设置环境变量AZURE_TENANT_ID
来配置。client_id
(string: <required or MSI>)
: 用来调用 Azure API 的凭据的 client id。可以通过设置环境变量AZURE_CLIENT_ID
来配置。client_secret
(string: <required or MSI>)
: 用来调用 Azure API 的凭据的 client secret。可以通过设置环境变量AZURE_CLIENT_SECRET
来配置。environment
(string: "AZUREPUBLICCLOUD")
: 使用的 Azure 云环境的 API 端点。可以通过设置环境变量AZURE_ENVIRONMENT
来配置。vault_name
(string: <required>)
: 加解密密钥所在的 Key Vault 名称。可以通过设置环境变量VAULT_AZUREKEYVAULT_VAULT_NAME
来配置。key_name
(string: <required>)
: 加解密密钥的名称。可以通过设置环境变量VAULT_AZUREKEYVAULT_KEY_NAME
来配置。resource
(string: "vault.azure.net")
: 要连接的 Azure KeyVault 资源的 DNS 后缀。可以通过设置环境变量AZURE_AD_RESOURCE
来配置。如果要使用 Azure 托管 HSM KeyVault 实例时需要修改该参数。
身份验证
必须设置身份验证参数,可以通过环境变量或是配置文件中的参数。
Azure 身份验证参数有:
AZURE_TENANT_ID
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_ENVIRONMENT
AZURE_AD_RESOURCE
注意:如果 Vault 服务运行于 Azure 上,Vault 可以使用 Managed Service Identities (MSI) 来访问 Azure 服务,而不使用环境变量或是共享的的 client id 和 client secret。必须在运行 Vault 服务的虚拟机上启用 MSI。我们推荐使用 MSI 来避免通过明文保存 Azure 凭证。
另外需要注意的是,如果使用 Managed HSM KeyVault,必须设置 resource
配置参数或是 AZURE_AD_RESOURCE
环境变量。一般来说设置为 managedhsm.azure.net
,但也可以工具使用的 Azure 环境指向其他后缀。
azurekeyvault
环境变量
Azure Key Vault 封印也可以通过设置以下环境变量来启用:
VAULT_AZUREKEYVAULT_VAULT_NAME
VAULT_AZUREKEYVAULT_KEY_NAME
密钥轮换
Azure Key Vault 封印支持轮换密钥。密钥元数据与加密数据一起存储,以确保在解密操作期间使用正确的密钥。只需使用 Azure Automation Account 设置 Azure Key Vault,Vault 的密钥轮换,Vault 就能识别出新轮换的密钥。