菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 设置breadcrumb arrow 配置安全性breadcrumb arrow 配置数据库加密breadcrumb arrow 使用 Google Cloud KMS 加密数据库机密信息
Enterprise Open source

使用 Google Cloud KMS 加密数据库机密信息

您可以使用 Google Cloud Key Management Service 的加密密钥来加密 Grafana 数据库中的机密信息。

前提条件

  • 拥有列出和创建 KMS 密钥以及访问这些密钥的服务帐户权限的 Google Cloud 帐户
  • 访问 Grafana配置文件
  1. 在 Google Cloud KMS 中创建一个密钥环

  2. 在密钥环中创建一个对称加密密钥

  3. 创建一个服务帐户并为其分配角色:可以是预定义角色或具有使用 Key Management Service 加密和解密机密信息权限的自定义角色。

  4. 创建服务帐户密钥并将其 JSON 文件保存到您的计算机,例如保存为 ~/.config/gcloud/sample-project-credentials.json

  5. 在 Grafana 中,开启信封加密。

  6. 将您的 Google Cloud KMS 详细信息添加到 Grafana 配置文件中;根据您的操作系统,此文件通常命名为 grafana.ini

    a. 向配置文件添加新部分,名称格式为 [security.encryption.azurekv.<KEY-NAME>],其中 <KEY-NAME> 是在此密钥提供程序中唯一标识此密钥的任意名称。

    b. 使用以下值填充该部分

    • key_id: 加密密钥 ID,请参阅获取密钥 ID
    • credentials_file: 服务帐户密钥 JSON 文件在您计算机上的完整路径。

    grafana.ini 文件中 Google Cloud KMS 提供程序部分的示例如下所示

    # Example of Google Cloud KMS provider setup
    ;[security.encryption.googlekms.example-encryption-key]
    # Google Cloud KMS key ID
    key_id = 1234abcd-12ab-34cd-56ef-1234567890ab
    # Full path to a JSON file with a service account key
    credentials_file = ~/.config/gcloud/sample-project-credentials.json
  7. 使用您创建的新加密提供程序密钥更新 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 = googlekms.example-encryption-key
    # list of configured key providers, space separated
    available_encryption_providers = googlekms.example-encryption-key
  8. 重启 Grafana.

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

    grafana cli admin secrets-migration re-encrypt

    如果您不重新加密现有机密信息,它们将继续由之前的加密密钥加密。用户仍然能够访问它们。

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

    > 注意:如果您在 Grafana 初次设置期间(在创建任何数据源或面板之前)更新此加密密钥,则无需此步骤,因为 Grafana 中没有需要迁移的机密信息。