---
schema_version: "1"
id: 7ed81937a1e4958d7c3e184dc2e9edb80a70361e6f22f3973b9a1bdb7ca92f66
title: AWS 密钥管理系统
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/server-linux/security_kms_aws.md
canonical_url: https://help.tableau.com/v0.0/server-linux/zh-cn/security_kms_aws.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f5b19cd2abd5774c75f4a55b4a4fd3eed4e5c26791f2972097d5c301c7a0f962
description: Configure AWS Key Management System for Tableau Server encrypted extracts.
---
[跳转到主要内容](#main-content)

# AWS 密钥管理系统

Tableau Server 有三个密钥管理系统 (KMS) 选项，允许您启用静态加密。其中两个选项需要 Advanced Management 能力，而本地选项可与所有本地安装的 Tableau Server 一起使用。

**重要信息：**自 2024 年 9 月 16 日起，Advanced Management 不再作为独立的附加选项提供。仅当您先前购买了 Advanced Management，或者购买了某些许可证版本：Tableau Enterprise、Tableau Cloud+ 或 Tableau+ Bundle（适用于 Tableau Cloud），或者 Tableau Enterprise 或 Tableau Server+（适用于 Tableau Server）时，Advanced Management 功能才可用。

从版本 2019.3 开始，Tableau Server 添加了这些 KMS 选项： 

- 适用于所有安装的本地 KMS。有关详细信息，请参见[Tableau Server 密钥管理系统](https://help.tableau.com/v0.0/server-linux/zh-cn/security_kms.htm)。
- 作为 Advanced Management 一部分提供的基于 AWS 的 KMS。下面介绍了这一点。

从版本 2021.1 开始，Tableau Server 添加了另一个 KMS 选项： 

- 作为 Advanced Management 一部分提供的基于 Azure 的 KMS。有关详细信息，请参见[Azure Key Vault](https://help.tableau.com/v0.0/server-linux/zh-cn/security_kms_azure.htm)。

随着版本 2019.3 的发布，Tableau Server 支持将 AWS 密钥管理系统 (KMS) 作为 Advanced Management 的一部分。

## 用于静态加密的 AWS KMS

AWS KMS 作为 Tableau Server 中 Advanced Management 的一部分提供。有关详细信息，请参见[关于 Tableau Server 上的 Tableau Advanced Management](https://help.tableau.com/v0.0/server-linux/zh-cn/itm_intro.htm)。

如果您的组织要部署静态数据提取加密，则可以选择将 Tableau Server 配置为使用 AWS 作为 KMS 进行数据提取加密。若要启用 AWS KMS，您必须将 Tableau Server 部署在 AWS EC2 中。在 AWS 方案中，Tableau Server 使用 AWS KMS 客户主密钥 (CMK) 来生成 [AWS 数据密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)。Tableau Server 使用 AWS 数据密钥作为所有已加密数据提取的根主密钥。但是，即使针对 AWS KMS 进行了配置，将仍然会为 Tableau Server 上密文的安全存储使用本机 Java 密钥存储和本地 KMS。AWS KMS 仅用于对加密数据提取的根主密钥进行加密。

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

![说明数据加密的各种密钥的图表。](/tableau/next/zh-cn/server-linux/zh-cn/Img/security_kms_AWS_key_hierarchy.png)

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

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

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

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

- Tableau Server 必须部署在 AWS EC2 中。
- Tableau Server 必须配置为具有 Advanced Management。请参见[关于 Tableau Server 上的 Tableau Advanced Management](https://help.tableau.com/v0.0/server-linux/zh-cn/itm_intro.htm)。
- 您必须对在 AWS 密钥管理服务中创建的客户主密钥 (CMK) 具有管理控制权限。
- 配置 AWS KMS 的人员的用户 Id（通常是电子邮件地址）不能超过 26 个字符。

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

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

1. 创建将用于 Tableau Server 的 CMK。请参见 AWS 主题[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)。
2. 更新服务器实例的 IAM 角色。
    
    Tableau Server 需要能够使用实例的 IAM 角色向 AWS KMS 进行身份验证。角色需要附带有策略。策略应赋予对 CMK 调用“GenerateDataKey”和“Decrypt”操作的实例权限。请参见 [Amazon EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)。
    
    在 Tableau Server 的多节点节点部署中，服务器的所有节点都必须在附带有此策略（或等效策略）的角色下运行。您可以为群集中的所有节点分配相同的角色。
3. CMK 至少必须具有 `Effect` 设置为 `Allow` `Prinicpal`（附加到服务器实例的IAM 角色）和 `Action` 的密钥策略： `GenerateDataKey` 和 `Decrypt`。请参见[在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

### 步骤 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 网关表](https://docs.aws.amazon.com/general/latest/gr/rande.html)的“区域”列中所示的方式指定区域。

### 步骤 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：启用静态加密

请参见[静态数据提取加密](https://help.tableau.com/v0.0/server-linux/zh-cn/security_ear.htm)。

### 步骤 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. 在对数据提取进行加密和解密之后查看日志：
    
    - 将数据提取发布到站点，然后对其进加密。请参见[静态数据提取加密](https://help.tableau.com/v0.0/server-linux/zh-cn/security_ear.htm)。
    - 使用 Tableau Desktop 或使用 Web 创作制作在浏览器上访问数据提取（这将对数据提取进行解密以供使用）。
    - 在 vizqlserver\_node log 文件中搜索 `AwsKmsEncryptionEnvelopeAccessor` 和 `AwsKmsEncryptionEnvelope` 字符串。该日志的默认位置为 `/var/opt/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 相关的发布和数据提取刷新，请搜索后台程序日志。有关日志的详细信息，请参见[Tableau Server 日志和日志文件位置](https://help.tableau.com/v0.0/server-linux/zh-cn/logs_loc.htm)。

## 故障排除配置

### 多节点配置不正确

在 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 主题[自动密钥轮换的工作方式](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works)。由于 ARN 和区域不会更改，因此您无需在 Tableau Server 上为正常 CMK 刷新方案更新 KMS 配置。

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

1. 运行 `[tsm security regenerate-internal-tokens](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_security_tsm.htm#regenerate-tokens)` 命令以在 Tableau Server 上重新生成所有内部密钥，包括用于数据提取加密的 RMK 和 MEK。
2. 运行 `tabcmd reencryptextracts <site-name>` 以对给定站点上的数据提取进行重新加密。在您存储加密数据提取的每个站点上运行此命令。根据站点上加密数据提取的数量，此操作可能会占用大量的服务器处理负载。考虑在工作时间以外运行此操作。请参见[静态数据提取加密](https://help.tableau.com/v0.0/server-linux/zh-cn/security_ear.htm)。

## 在 Tableau Server 上重新生成 RMK 和 MEK

若要在 Tableau Server 上重新生成根主密钥和主加密密钥，请运行 `[tsm security regenerate-internal-tokens](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_security_tsm.htm#regenerate-tokens)` 命令。

## 使用 AWS KMS 备份和还原

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

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

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