密钥管理系统

随着版本 2019.3 的发布,Tableau Server 纳入了更新的密钥管理系统 (KMS)。

Tableau Server 本地 KMS

Tableau Server 本地 KMS 使用管理服务器密文中介绍的密文存储过程来加密和存储主数据提取密钥。在此方案中,Java 密钥存储充当密钥分层结构的根目录。Java 密钥存储随 Tableau Server 一起安装。对主密钥的访问通过操作系统的本机文件系统授权机制进行管理。在默认配置中,Tableau Server 本地 KMS 用于加密数据提取。下面阐述了本地 KMS 和加密数据提取的密钥分层结构:

用于静态加密的 AWS KMS

AWS KMS 作为 Tableau Server 的服务器管理加载项的一部分提供。有关详细信息,请参见关于 Tableau 服务器管理加载项

如果您的组织正在部署静态数据提取加密,您可以根据需要将 Tableau Server 配置为使用 AWS 作为数据提取加密的 KMS。若要启用 AWS KMS,您必须将 Tableau Server 部署在 AWS EC2 中。在 AWS 方案中,Tableau Server 使用 AWS KMS 客户主密钥 (CMK) 来生成 AWS 数据密钥(Link opens in a new window)。Tableau Server 使用 AWS 数据密钥作为所有加密数据提取的根主密钥。但是,即使针对 AWS KMS 进行了配置,将仍然会为 Tableau Server 上密文的安全存储使用本机 Java 密钥存储和本地 KMS。AWS KMS 仅用于对加密数据提取的根主密钥进行加密。

使用 AWS 对主根密钥进行加密不会采用与数据提取相同的权限存储主密钥,因此提供了更好的安全属性。

使用 AWS KMS 配置 Tableau Server 时的密钥分层结构

为 Tableau Server 加密数据提取配置 AWS KMS

若要使用 AWS 客户主密钥 (CMK) 对 Tableau Server KMS 分层结构中的根密钥进行加密,您必须按照此部分中所述的方式配置 Tableau Server。

在开始之前,请验证您是否满足以下要求:

  • Tableau Server 必须部署在 AWS EC2 中
  • Tableau Server 必须配置为具有 服务器管理加载项 许可证。请参见关于 Tableau 服务器管理加载项
  • 您必须对在 AWS 密钥管理服务中创建的客户主密钥(CMK) 具管理控制权限

步骤 1:为 AWS 中的 Tableau Server 创建 CMK 和设置密钥策略

以下过程在 AWS KMS 服务中执行。包括了 AWS 文档的参考。

  1. 创建将用于 Tableau Server 的 CMK。请参见 AWS 主题创建密钥(Link opens in a new window)
  2. 更新服务器实例的 IAM 角色。

    Tableau Server 需要能够使用实例的 IAM 角色向 AWS KMS 进行身份验证。角色需要附带有策略。策略应赋予对 CMK 调用“GenerateDataKey”和“Decrypt”操作的实例权限。请参见 Amazon EC2 的 IAM 角色(Link opens in a new window)

    在 Tableau Server 的多节点部署中,服务器的所有节点都必须在附带有此策略(或等效策略)的角色下运行。您可以为群集中的所有节点分配相同的角色。

  3. CMK 至少必须具有 Effect 设置为 AllowPrinicpal(附加到服务器实例的IAM 角色)和 Action 的密钥策略: GenerateDataKeyDecrypt。请参见在 AWS KMS 中使用密钥策略(Link opens in a new window)

步骤 2:收集 AWS 配置参数

您将需要 AWS KMS 中的完整 ARN 字符串。此字符串位于 AWS KMS 管理页面的“常规配置”部分中。ARN 以此格式显示: arn:aws:kms:<region>:<account>:key/<CMK_ID>,例如,arn:aws:kms:us-west-2:867530990073:key/1abc23de-fg45-6hij-7k89-1l0mn1234567

您还需要指定 AWS 区域,它也包括在 ARN 字符串中。在上面的示例中,区域为 us-west-2。您的 KMS 实例位于该区域中。在下一步中,您将需要按 Amazon API 网关表(Link opens in a new window)的“区域”列中所示的方式指定区域。

步骤 3:为 AWS KMS 配置 Tableau Server

在 Tableau Server 上运行以下命令:此命令将重新启动服务器。

  • tsm security kms set-mode aws --aws-region "<region>" --key-arn "arn:aws:kms:<region>:<account_number>:key/<CMK_ID>"

    --key-arn 选项从 AMS KMS 管理页面的“常规配置”中的 ARN 中直接复制字符串。

    举例来说,如果 AWS KMS 实例正在 us-west-2 区域中运行,您的帐号为 867530990073,CMK 密钥为 1abc23de-fg45-6hij-7k89-1l0mn1234567,则命令将如下所示:

    tsm security kms set-mode aws --aws-region "us-west-2" --key-arn "arn:aws:kms:us-west-2:867530990073:key/1abc23de-fg45-6hij-7k89-1l0mn1234567"

步骤 4:启用静态加密

请参见静态数据提取加密

步骤 5:验证安装

  1. 运行以下命令:

    tsm security kms status

    可能返回以下信息:

    • 客户主密钥 (CMK) 的 ARN (ID)
    • CMK 所在的区域:
    • 正在使用的根主密钥 (RMK) 的 ID。RMK 是通过 CMK 加密的密钥。Tableau Server 通过调用 AWS KMS 对 CMK 进行解密。RMK 随后用于对主数据提取密钥 (MEK) 进行加密/解密。RMK 可以更改,但一次只能有一个。
    • KMS 存储主数据提取密钥 (MEK) 的集合。每个 MEK 具有:
      • 一个 ID,例如 8ddd70df-be67-4dbf-9c35-1f0aa2421521
      • “加密或解密密钥”或“仅解密密钥”状态。如果密钥为“加密或解密”,Tableau Server 将使用它对新数据进行加密。否则,密钥将仅用于解密。
      • 创建时间戳,例如“创建时间: 2019-05-29T23:46:54Z。”
      • 首次过渡到加密和解密:指示密钥何时成为加密或解密密钥的时间戳。
      • 过渡到仅解密:指示密钥何时过渡到仅解密的时间戳。
  2. 在对数据提取进行加密和解密之后查看日志:

    • 将数据提取发布到站点,然后对其进加密。请参见静态数据提取加密

    • 使用 Tableau Desktop 或使用 Web 创作制作在浏览器上访问数据提取(这将对数据提取进行解密以供使用)。

    • 在 vizqlserver_node log 文件中搜索 AwsKmsEncryptionEnvelopeAccessorAwsKmsEncryptionEnvelope 字符串。该日志的默认位置为 C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs

      指示成功配置的日志条目示例包括以下内容:

      • Decrypted the RMK with ID 1abc23de-fg45-6hij-7k89-1l0mn1234567 using the CMK with ARN arn:aws:kms:us-west-2:867530990073:key/1234567d-a6ba-451b-adf6-3179911b760f
      • Using RMK with ID 1abc23de-fg45-6hij-7k89-1l0mn1234567 to decrypt KMS store

      对于与 KMS 相关的发布和数据提取刷新,请搜索后台程序日志。有关日志的详细信息,请参见Ziplog 存档中的服务器日志文件位置

故障排除配置

多节点配置不正确

在 AWS KMS 的多节点设置中,tsm security kms status 命令可能会报告正常 (OK) 状态,即使群集中的另一个节点配置不正确。KMS 状态检查仅在运行 Tableau Server 管理控制器进程的节点上进行报告,而不在群集中的其他节点上进行报告。默认情况下,Tableau Server 管理控制器进程在群集中的初始节点上运行。

因此,如果另一个节点配置不正确,以致于 Tableau Server 无法访问 AWS CMK,这些节点可能会为将启动失败的各种服务报告错误状态。

如果在您将 KMS 设置为 AWS 模式后,某些服务启动失败,请运行以下命令以恢复为本地模式:tsm security kms set-mode local

刷新 AWS CMK

刷新 AWS CMK 是您使用 AWS 执行的任务。默认情况下,AWS CMK 将每年刷新一次。请参见 AWS 主题自动密钥轮换的工作方式(Link opens in a new window)。由于 ARN 和区域不会更改,因此您无需在 Tableau Server 上为正常 CMK 刷新方案更新 KMS 配置。

在 AWS CMK 刷新之后,您必须在 Tableau Server 上重新生成内部 RMK 和 MEK。您还应使用新的 CMK 对所有数据提取进行重新加密:

  1. 运行 tsm security regenerate-internal-tokens 命令以在 Tableau Server 上重新生成所有内部密钥,包括用于数据提取加密的 RMK 和 MEK。
  2. 运行 tabcmd reencryptextracts <site-name> 以对给定站点上的数据提取进行重新加密。在您存储加密数据提取的每个站点上运行此命令。根据站点上加密数据提取的数量,此操作可能会占用大量的服务器处理负载。考虑在工作时间以外运行此操作。请参见静态数据提取加密

在 Tableau Server 上重新生成 RMK 和 MEK

若要在 Tableau Server 上重新生成根主密钥和主加密密钥,请运行 tsm security regenerate-internal-tokens 命令。

使用 AWS KMS 备份和还原

可以在 AWS 模式下进行服务器备份,而无需额外的配置或过程。备份包含 RMK 和 MEK 的加密副本。对密钥进行解密需要访问和控制 AWS CMK。

对于还原方案,要还原到其中的服务器可以处于任一 KMS 模式,包括“本地”模式。唯一的要求是,要将备份还原到其中的服务器对备份本身使用的 CMK 具有解密访问权限。

在还原时,将以仅解密密钥的形式导入备份中的 MEK。RMK 不会迁移。在安装/还原过程中将生成新的 RMK。

感谢您的反馈! 提交反馈时出错。请重试,或向我们发送消息