Snowflake 中的自助服务 Tri-Secret Secure

将双密钥加密模型与 Snowflake 的内置用户身份验证结合使用,可实现三个级别的数据保护,即所谓的 Tri-Secret Secure。Tri-Secret Secure 为您提供比 Snowflake 标准加密更高的安全和控制级别。

我们的双密钥加密模型结合了 Snowflake 维护的密钥和客户管理的密钥 (CMK)(您在托管 Snowflake 账户的云提供商平台上创建),从而创建保护 Snowflake 数据的复合主密钥。通过将所有密钥封装在账户层次结构中,该复合主密钥可充当账户主密钥。复合主密钥永远不会用于加密原始数据。例如,复合主密钥封装了表主密钥,表主密钥用于派生加密原始数据的文件密钥。

注意

按照本主题中的步骤,您将使用 Snowflake 系统函数启用 Tri-Secret Secure。在为账户启用 Tri-Secret Secure 之前,请您仔细考虑 客户管理的密钥 中提到的密钥保护责任。如果撤销复合主密钥层次结构中的 CMK,Snowflake 将无法再解密您的数据。如有任何问题或疑虑,请联系 Snowflake 支持部门

请注意,Snowflake 也对我们维护的密钥承担相同的责任。与我们服务中所有与安全相关的方面一样,我们以极其谨慎和警惕的态度对待这一责任。

我们按照严格的政策对所有密钥进行维护,这使我们能够获得最高安全认证,包括 SOC 2 Type II、PCI-DSS、HIPAA 以及 HITRUST CSF

功能兼容性

混合表 与 Tri-Secret Secure 不兼容。

如果您的 Snowflake 账户已启用使用 Tri-Secret Secure,则不能使用混合表。在使用混合表之前,请联系 Snowflake 支持部门,验证您的 Snowflake 账户是否已启用 Tri-Secret Secure。

自助服务概述

您可以使用 Tri-Secret Secure 自助服务过程先注册 CMK,然后激活 Tri-Secret Secure。如果您决定更换 CMK,以便与 Tri-Secret Secure 一起使用,自助服务过程会告知您,新的 CMK 是否已注册和激活。在密钥更新过程中,您可以继续使用您的账户。

自助服务为您提供了以下好处:

  • 便于与托管 Snowflake 账户的云平台中的密钥管理服务 (KMS) 服务协同工作。

  • 简化注册和授权 CMK 的步骤。

  • 提供 CMK 注册和 Tri-Secret Secure 激活状态的透明度。

  • 使您能够在 Snowflake 账户不停机的情况下管理 Tri-Secret Secure。

自助服务过程

此过程适用于 Snowflake 支持的所有云提供商平台。有关在云提供商平台上采取的任何步骤,请参阅您的特定云提供商文档。

要创建和注册 CMK,然后激活 Tri-Secret Secure,请完成以下步骤:

  1. 在云提供商平台上: 创建 CMK。

    在托管 Snowflake 账户的云平台上的密钥管理服务 (KMS) 中执行此步骤。

  2. 在 Snowflake 中: 调用 SYSTEM$REGISTER_CMK_INFO 系统函数。

    • 此系统函数会将 CMK 注册到 Snowflake 账户中。

    • 仔细检查系统函数参数,确保这些参数对于托管 Snowflake 账户的云平台是正确的。

    • 当您调用 SYSTEM$REGISTER_CMK_INFO 函数时,Snowflake 会向拥有经过验证的电子邮件地址的账户管理员发送一封电子邮件消息。该消息会通知账户管理员何时调用 SYSTEM$ACTIVATE_CMK_INFO 函数来激活 Tri-Secret Secure。

    重要

    您必须等待 72 小时后才能激活 |tri-secret-secure|(第 6 步)。如果您在此等待期内尝试激活 |tri-secret-secure|,则会看到一条错误消息,建议您等待。

  3. 在 Snowflake 中: 调用 SYSTEM$GET_CMK_INFO 系统函数。

    此系统函数会返回您注册的 CMK 的注册状态和详细信息。

  4. 在 Snowflake 中: 调用 SYSTEM$GET_CMK_CONFIG 系统函数。

    此系统函数为您的云提供商生成所需的信息,以允许 Snowflake 访问您的 CMK。

    备注

    如果 Microsoft Azure 托管您的 Snowflake 账户,则必须将 tenant_id 值传递给该函数。

  5. 在 Snowflake 中: 调用 SYSTEM$VERIFY_CMK_INFO 系统函数。

    此系统函数会确认 Snowflake 账户与 CMK 之间的连接。

  6. 在 Snowflake 中: 调用 SYSTEM$ACTIVATE_CMK_INFO 系统函数。

    此系统函数会使用您注册的 CMK 来激活 Tri-Secret Secure。此系统函数会启动密钥更新过程,并生成一封电子邮件消息,在该过程完成时通知系统管理员。密钥更新过程可以不到一小时就完成,但最多可能需要 24 小时。

    警告

    在密钥更新过程完成之前,Snowflake 会使用旧的 CMK。在收到有关密钥更新过程完成的电子邮件通知之前,请不要移除对旧的 CMK 的访问权限。

查看 CMK 的状态

或者,您可以在完成自助服务过程之前或之后调用 SYSTEM$GET_CMK_INFO 系统函数,以检查 CMK 的注册和激活状态。例如,在禁用 Tri-Secret Secure 时调用 SYSTEM$ACTIVATE_CMK_INFO 之后,立即调用 SYSTEM$GET_CMK_INFO 会返回 is being activated,这表示密钥更新尚未完成。该过程完成后,SYSTEM$GET_CMK_INFO 函数输出会包含 is activated。这意味着 Snowflake 账户正在使用 Tri-Secret Secure 及您注册的 CMK。

为 Tri-Secret Secure 更改 CMK

自助服务过程支持根据安全需求更改 CMK。采用与注册初始 CMK 相同的步骤来注册新的 CMK。当您使用新密钥再次执行这些步骤时,系统函数的输出会有所不同。查阅您在自助服务过程中调用的每个系统函数的输出,以确认您已更改密钥。例如,当更改 CMK 时,调用 SYSTEM$GET_CMK_INFO 函数会返回 ...is being rekeyed...

使用具有自动密钥轮换功能的 Tri-Secret Secure 自助服务

如果您使用云提供商的自动密钥轮换功能来维护 客户管理的密钥 的生命周期,则可以通过调用 SYSTEM$ACTIVATE_CMK_INFO 系统函数并提供 'REKEY_SAME_CMK' 实参,使用最新版本的 CMK 进行密钥更新。

停用 Tri-Secret Secure

要在您的账户中停用 Tri-Secret Secure,请调用 SYSTEM$DEACTIVATE_CMK_INFO 系统函数。

取消注册您的当前 CMK

通过 Tri-Secret Secure 一次只能注册一个 CMK。注册 CMK 时,如果 SYSTEM$REGISTER_CMK_INFO 函数由于存在其他 CMK 而失败,请按照提示调用 SYSTEM$DEREGISTER_CMK_INFO 系统函数。

将 Tri-Secret Secure 与 AWS 外部密钥存储集成

Snowflake 还支持将 Tri-Secret Secure 与 AWS 外部密钥存储集成,以便在 AWS 之外安全地存储和管理客户管理的密钥。Snowflake 正式测试和仅支持 Thales HSM 和 Thales CCKM 数据加密产品。有关使用 Thales 解决方案设置和配置 Tri-Secret Secure 的更多信息,请参阅 如何在 AWS Snowflake 账户中将 Thales 外部密钥存储用于 Tri-Secret Secure (https://community.snowflake.com/s/article/thales-xks-for-tss-aws#e3)。

语言: 中文