配置租户加密
使用您组织的 AWS 密钥管理服务 (KMS) 密钥在 Qlik Cloud 中设置租户加密。
租户管理员可以配置租户加密设置。默认情况下,新租户使用Qlik内部KMS加密租户中的内容。如果您的组织希望使用自己的客户管理密钥 (CMK) 来加密租户数据,您可以将租户加密配置为使用来自受支持的密钥提供者的 CMK。
Qlik Cloud 支持使用来自 Amazon Web Services (AWS) 密钥管理服务 (KMS) 的 CMK。客户可以通过 AWS KMS 密钥策略定义为多个租户选择使用同一密钥,尽管这不是最佳做法。CMK 和 AWS KMS 集成将使用 AWS KMS API 的加密上下文维护每个租户的加密,但您必须分别为每个租户配置加密。允许租户供多个最终用户组织使用的客户或合作伙伴需要为每个最终用户组织实施单独的密钥。
CMK 先决条件
您必须有 AWS 帐户和 AWS KMS 密钥才能将 CMK 结合 Qlik Cloud 使用。有关设置 AWS KMS 帐户和创建 AWS KMS 密钥的详细信息,请参阅AWS 密钥管理服务 (KMS)。
在 AWS 中完成设置后,可以更改租户中的密钥提供者以使用您的 AWS KMS 密钥。
在租户中创建新的密钥提供者
在更改密钥提供者之前,请验证您的 AWS KMS 密钥和策略是否已在 AWS KMS 中正确配置。请参阅AWS 密钥管理服务 (KMS)。Qlik Cloud 支持以下密钥提供者:
-
Qlik 内部 KMS(这是使用 Qlik 托管密钥的默认 KMS)
-
AWS KMS
执行以下操作:
-
在 管理 活动中心中,转到设置。
-
在租户加密下,单击管理密钥提供者。
-
单击新建卡。
-
输入密钥提供者要求的参数。
- 主密钥提供者:AWS KMS 主密钥提供者是唯一可用的选项。
- KMS 密钥 ARN:KMS 密钥 ARN 或别名 ARN。密钥 ARN 是 KMS 密钥的 Amazon Resource Name (ARN)。别名 ARN 是 AWS KMS 别名的 Amazon 资源名称 (ARN)(创建密钥时为 AWS KMS 密钥提供的友好名称)。有关更多信息,请参阅密钥提供者事件有关如何查找 KMS 密钥的密钥 ARN 或别名 ARN 的信息,请参阅查找密钥 ID 和密钥 ARN 或者查找别名和别名 ARN。
- 标题:用于标识新密钥提供者的标题。
- 描述:可选
-
选择是要添加密钥提供者配置并保存以供以后使用,还是现在开始密钥迁移。
更改租户中的密钥提供者
您可以将密钥提供者从 Qlik KMS 更改为 AWS KMS,将 AWS KMS 更改成另一个 AWS KMS 或从 AWS KMS 恢复为 Qlik KMS。在密钥迁移过程中,租户将继续正常工作,不会对用户产生影响。
执行以下操作:
- 在 管理 活动中心中,转到设置。
- 在租户加密下,单击管理密钥提供者。
- 单击要迁移到的密钥提供者卡上的省略号。
- 选择迁移。
- 在更改密钥提供者对话框中,选中复选框以确认替换当前密钥,然后单击更改密钥提供者。成功迁移后,迁移的密钥提供者将变为活动的。
验证密钥提供者
您可以随时验证 AWS 密钥提供者。验证是否完成了所有健全性检查,并验证是否遵守密钥提供者迁移所需的已定义规则。在开始任何密钥提供者迁移之前,也会自动执行验证。
执行以下操作:
- 在 管理 活动中心中,转到设置。
- 在租户加密下,单击管理密钥提供者。
- 单击密钥提供者卡上的省略号。
- 选择验证。
删除密钥提供者
除默认的 Qlik 密钥提供者外,任何密钥提供者如果处于非活动状态,都可以删除。
执行以下操作:
- 在 管理 活动中心中,转到设置。
- 在租户加密下,单击管理密钥提供者。
- 单击密钥提供者卡上的省略号。
- 选择删除。
密钥提供者事件
您可以在 管理 活动中心中的“事件”页面上验证对加密密钥提供者的更改。事件日志捕获以下加密事件类型:
- com.qlik.v1.encryption.keyprovider.created
- com.qlik.v1.encryption.keyprovider.updated
- com.qlik.v1.encryption.keyprovider.deleted
- com.qlik.v1.encryption.keyprovider-migration.triggered
- com.qlik.v1.encryption.keyprovider-migration.finished
- com.qlik.v1.encryption.keyprovider-migration.progressed
AWS KMS 中的事件记录在事件历史记录下的 AWS CloudTrail 中。搜索事件名称:Encrypt、GenerateDatakey 或 Decrypt。
Qlik 加密 API 和连接器
除了通过 管理 活动中心配置租户加密外,Qlik 还提供了多种管理密钥提供者生命周期的方法。
- 以编程方式管理密钥提供者的加密 API。请参阅 qlik.dev 上的 API 参考文档。
- AWS KMS Qlik 应用程序自动化 连接器,使您能够在 AWS 中配置关键提供者。请参阅如何开始使用 Amazon KMS 连接器
- Qlik 平台操作连接器和 QCS 连接器,作为无代码的 Qlik 本地选项提供,通过在逻辑流中操作连接器块来轻松管理密钥提供者。请参阅 Qlik 平台操作连接器概述和应用程序自动化连接器。
AWS 密钥管理服务 (KMS)
Qlik Cloud 支持使用客户管理的密钥 (CMK) -Amazon将其称为用于加密和解密租户数据的来自 AWS KMS 的 AWS KMS 密钥或 KMS 密钥。
以下是设置 AWS 以用于 CMK 所需的一般步骤。您必须创建 AWS KMS 帐户、创建 AWS KMS 密钥并配置密钥策略以与 Qlik Cloud CMK 一起使用。在 AWS KMS 中完成设置后,可以更改 Qlik Cloud 租户中的密钥提供者以使用 AWS KMS 密钥。请参阅在租户中创建新的密钥提供者。
创建 AWS 帐户
转到 Amazon Web Services 并创建帐户。
创建对称 AWS KMS 密钥
在 AWS 中,使用 AWS KMS Management Console 或通过 AWS KMS API 使用 CreateKey 命令创建密钥。配置多区域密钥时,请记住,根据主键的区域,可以选择哪些区域作为备份区域是有限制的。
-
AWS 地区—选择 Qlik Cloud 租户所在的区域。下面列出了支持的 Qlik Cloud 区域及其关联的 AWS 备份区域代码。支持多地区密钥。
主要地区名称 主要地区代码 备份地区名称 备份地区代码 美国东部(北弗吉尼亚州) us-east-1 美国东部(俄亥俄州) us-east-2 欧洲(爱尔兰) eu-west-1 欧洲(巴黎) eu-west-3 欧洲(伦敦) eu-west-2 欧洲(西班牙) eu-south-2 欧洲(法兰克福) eu-central-1 欧洲(米兰) eu-south-1 欧洲(瑞典) eu-north-1 不适用 不适用 亚太(新加坡) ap-southeast-1 亚太(首尔) ap-northeast-2 亚太(悉尼) ap-southeast-2 亚太(墨尔本) ap-southeast-4 日本(东京) ap-northeast-1 日本(大阪) ap-northeast-3 eu-north-1 瑞典区域由于其特定的数据传输政策,没有备份区域。
警告注释为了确保在 Qlik Cloud 中使用的多区域密钥的正确设置,您必须根据 AWS KMS 控制台中的上述备份区域图表创建密钥配对。Qlik Cloud Government 注释Qlik Cloud 政府 区域(us-gov-west-1 或 us-gov-east-1)不需要复制密钥配置就可以注册 CMK。 -
密钥类型 - 对称。CMK 不支持非对称密钥。
-
密钥使用—加密解密
关键点创建期间的其他设置包括:
-
输入密钥别名
-
定义可以管理密钥的身份和访问管理 (IAM) 用户和角色
-
选择可以在加密操作中使用密钥的IAM用户和角色
-
正在配置密钥策略。
有关创建 AWS KMS 密钥的更多信息,请参阅创建密钥。
配置 AWS KMS 密钥策略。
密钥策略控制对 AWS KMS 密钥的访问。每个密钥都有自己的策略。密钥策略必须包含结合 Qlik Cloud 客户管理的秘钥 使用 AWS KMS 密钥所需的最低信息和权限。使用e AWS KMS Management Console 创建密钥时,AWS KMS 会根据密钥创建过程中的选择使用语句创建一个默认密钥策略。这些语句确定您帐户中可以管理密钥并在加密操作中使用密钥的 IAM 用户和角色。
您必须编辑默认密钥策略以添加结合 Qlik Cloud CMK 使用密钥所需的权限和参数。这些可包括:
-
允许 Qlik 的 AWS 代理帐户和所需的IAM角色使用您的 AWS KMS 密钥生成数据密钥、加密和解密数据。必须将单独的 IAM 角色添加到关键策略中,以将 CMK 与 Qlik 应用程序自动化 一起使用。
-
确定您的 Qlik Cloud TenantID。租户 ID 用作加密上下文。AWS KMS 使用加密上下文作为附加认证数据 (AAD) 来支持认证加密。这意味着一个租户无法解密另一租户的密码密钥。请参阅加密上下文。如果对多个租户使用相同的 KMS 密钥,则必须在密钥策略中包含每个租户的租户 ID。
执行以下操作:
- 确保您的客户 AWS 帐户和 IAM 用户和角色正确,并包含在策略中,请参阅示例 AWS KMS 密钥策略。您的政策可能还包括其他声明。
-
复制下面所需的 Qlik Cloud 代码段并将其添加到密钥策略中。对于 Qlik Cloud 政府 订阅,请复制 Qlik Cloud 政府 代码段。
-
在 EncryptionContext 字符串中,替换 QLIK_TENANT_ID 为 Qlik Cloud TenantID。
- 保存密钥策略。
Qlik Cloud 代码段
{
"Sid": "Enable Qlik's proxy roles to use the Customer's AWS KMS key to encrypt and decrypt data for the Qlik cloud tenant",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::338144066592:role/byok-encryption-proxy-role",
"arn:aws:iam::634246602378:role/byok-encryption-proxy-role",
"arn:aws:iam::338144066592:role/byok-automations-proxy-role",
"arn:aws:iam::634246602378:role/byok-automations-proxy-role"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:TenantId": [
"QLIK_TENANT_ID"
]
}
}
}
Qlik Cloud 政府 代码段
[
{
"Sid": "Enable Qlik's proxy roles to use the Customer's AWS KMS key to encrypt and decrypt data for the Qlik cloud tenant",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws-us-gov:iam::014729015091:role/byok-encryption-proxy-role",
"arn:aws-us-gov:iam::014734359703:role/byok-encryption-proxy-role",
"arn:aws-us-gov:iam::014729015091:role/byok-automations-proxy-role",
"arn:aws-us-gov:iam::014734359703:role/byok-automations-proxy-role"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:TenantId": [
"QLIK_TENANT_ID"
]
}
}
},
{
"Sid": "Enable KMS Key policy for proxy account",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws-us-gov:iam::014729015091:role/byok-encryption-proxy-role",
"arn:aws-us-gov:iam::014734359703:role/byok-encryption-proxy-role",
"arn:aws-us-gov:iam::014729015091:role/byok-automations-proxy-role",
"arn:aws-us-gov:iam::014734359703:role/byok-automations-proxy-role"
]
},
"Action": "kms:DescribeKey",
"Resource": "*"
}
]
有关 AWS KMS 关键策略的详细信息,请参阅 KMS 中的关键策略。
示例 AWS KMS 密钥策略
以下示例关键策略包括与 Qlik Cloud 客户管理的秘钥 一起使用的基本要求。
-
可以管理和使用密钥的客户帐户和 IAM 用户和角色。
-
允许使用密钥进行加密操作的 Qlik 帐户和 IAM 角色:Encrypt、Decrypt 和 GenerateDataKey。
-
允许结合 应用程序自动化 使用密钥的 Qlik 帐户和 应用程序自动化 IAM 角色。
-
标识您的 Qlik Cloud 租户标识号 (TenantID) 的加密上下文。
策略示例中选定的部分(B、C 和 D)标识 Qlik Cloud 客户管理的秘钥 所需的参数。
KMS 密钥 ARN 和 别名 ARN
Amazon 资源名称 (ARN) 是 KMS 密钥的唯一、完全限定的标识符。它包括加密上下文 (TenantID)、AWS 帐户、区域和密钥 ID。在 AWS 密钥管理服务 中创建 AWS KMS 密钥时,将创建 ARN。在 Qlik Cloud 中,将 管理 活动中心中的主密钥提供者更改为使用您的 AWS KMS 密钥时,必须提供密钥 ARN 或别名 ARN 才能将 Qlik 加密服务连接到 AWS KMS 密钥。请参阅在租户中创建新的密钥提供者。
ARN 使用以下格式:
arn:<partition>:kms:<region>:<account-id>:key/<key-id>
以下是有效密钥 ARN 的示例:
arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
别名 ARN 使用以下格式:
arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>
以下是有效别名 ARN 的示例,其中 CMK-Example-Alias 是别名:
arn:aws:kms:us-east-1:111122223333:alias/CMK-Example-Alias
有关查找 KMS 密钥的密钥 ARN 或别名 ARN 的详细信息,请参阅查找密钥 ID 和密钥 ARN,或查找别名和别名 ARN。
用于灾难恢复 (DR) 的 AWS KMS 多区域密钥
多区域密钥允许您继续访问和处理加密数据,即使在主区域发生故障时也是如此。通过创建密钥副本,可以解密备份区域中的数据,而备份中加密的任何数据都可以在恢复后在主区域中解密。
请按照以下步骤在 AWS KMS 中创建多区域密钥:
-
在 AWS 管理控制台上,点击创建密钥。
-
在步骤 1 中,您将设置密钥配置。在高级选项部分,为关键材料来源选择 KMS,在区域性部分,选择多区域密钥。单击下一步继续。
-
第 2 步,为密钥添加别名。添加名称后,您可以选择添加描述和标签。单击下一步继续。
-
第 3 步,您可以选择能管理密钥的 IAM 用户和角色单击下一步继续。
-
第 4 步,您可以选择能使用 KMS 密钥的 IAM 用户角色。单击下一步继续。
-
第 5 步,查看配置细节。确保区域性设置为多区域密钥。
密钥策略包括通过 Qlik Cloud 客户管理的秘钥 使用多区域密钥的所有要求,包括 KMS 操作 DescribeKey。有关 DescribeKey 的更多信息,请参阅 AWS KMS DescribeKey。