菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 设置breadcrumb arrow 配置安全性breadcrumb arrow 配置数据库加密breadcrumb arrow 使用 Hashicorp Vault 加密数据库秘密
Grafana Cloud Enterprise

使用 Hashicorp Vault 加密数据库秘密

您可以使用 Hashicorp Vault 的加密密钥来加密 Grafana 数据库中的秘密。

前提条件

  • 拥有管理 Hashicorp Vault 的权限,以便启用秘密引擎和颁发令牌。
  • 访问 Grafana 配置文件
  1. 在 Hashicorp Vault 中启用 transit secrets engine

  2. 创建一个命名加密密钥.

  3. 创建一个周期性服务令牌.

  4. 在 Grafana 内部,开启信封加密。

  5. 将您的 Hashicorp Vault 详细信息添加到 Grafana 配置文件中;根据您的操作系统,该文件通常命名为 grafana.ini

    a. 向配置文件添加一个新部分,名称格式为 [security.encryption.hashicorpvault.<KEY-NAME>],其中 <KEY-NAME> 是一个名称,用于在其他提供商密钥中唯一标识此密钥。

    b. 在该部分填写以下值

    • token: 用于在 Hashicorp Vault 中进行身份验证的周期性服务令牌。
    • url: Hashicorp Vault 服务器的 URL。
    • transit_engine_path: transit engine 的挂载点。
    • key_ring: 加密密钥的名称。
    • token_renewal_interval: 指定续订令牌的频率;应小于周期性服务令牌的 period 值。

    grafana.ini 文件中 Hashicorp Vault 提供者部分的示例如下:

    # Example of Hashicorp Vault provider setup
    ;[security.encryption.hashicorpvault.example-encryption-key]
    # Token used to authenticate within Vault. We suggest to use periodic tokens: more on token types https://www.vaultproject.io/docs/concepts/tokens#service-tokens
    ;token =
    # Location of the Hashicorp Vault server
    ;url = https://:8200
    # Mount point of the transit secret engine
    ;transit_engine_path = transit
    # Key ring name
    ;key_ring = grafana-encryption-key
    # Specifies how often to check if a token needs to be renewed, should be less than a token's period value
    token_renewal_interval = 5m
  6. 使用您创建的新加密提供者密钥更新 grafana.ini 配置文件的 [security] 部分

    [security]
    # previous encryption key, used for legacy alerts, decrypting existing secrets or used as default provider when external providers are not configured
    secret_key = AaaaAaaa
    # encryption provider key in the format <PROVIDER>.<KEY-NAME>
    encryption_provider = hashicorpvault.example-encryption-key
    # list of configured key providers, space separated
    available_encryption_providers = hashicorpvault.example-encryption-key
  7. 重启 Grafana.

  8. (可选)从命令行并在 Grafana Enterprise 的根目录下,使用以下命令使用新密钥重新加密 Grafana 数据库中的所有秘密:

    grafana cli admin secrets-migration re-encrypt

    如果您不重新加密现有秘密,它们将保留由之前的加密密钥加密。用户仍然能够访问它们。

    > 注意:此过程可能需要几分钟才能完成,具体取决于您数据库中的秘密(例如数据源)数量。在此过程运行时,用户可能会遇到错误,并且可能不会发送告警通知。

    > 注意:如果您在创建任何数据源或仪表盘之前,在 Grafana 的初始设置期间更新此加密密钥,则无需执行此步骤,因为 Grafana 中没有要迁移的秘密。