Tri-Secret Secure 与 Snowflake 中的安全共享区域账户¶
Tri-Secret Secure 概述¶
使用双密钥加密模型结合 Snowflake 内置的身份验证,可以实现三层数据保护,称为 Tri-Secret Secure。Tri-Secret Secure 为您提供比 Snowflake 标准加密更高级别的安全性和控制能力。
我们的双密钥加密模型结合了 Snowflake 维护的密钥和客户管理的密钥 (CMK),该密钥由您在托管 Snowflake 账户的云提供商平台上创建。该模型生成一个复合主密钥,用于保护您的 Snowflake 数据。通过将所有密钥封装在账户层次结构中,该复合主密钥可充当账户主密钥。复合主密钥永远不会用于加密原始数据。例如,复合主密钥封装了表主密钥,表主密钥用于派生加密原始数据的文件密钥。
注意
在为您的安全共享区域账户启用 Tri-Secret Secure 之前,请仔细考虑您对保护密钥的责任,如 客户管理的密钥 中所述。如果撤销复合主密钥层次结构中的客户管理的密钥 (CMK),Snowflake 将无法再解密您的数据。
如有任何问题或疑虑,请联系 Snowflake 支持部门。
Snowflake 也对我们维护的密钥承担相同的责任。与我们服务中所有与安全相关的方面一样,我们以极其谨慎和警惕的态度对待这一责任。
我们按照严格的政策对所有密钥进行维护,这使我们能够获得最高安全认证,包括 SOC 2 Type II、PCI-DSS、HIPAA 以及 HITRUST CSF。
Tri-Secret Secure 与混合表的兼容性¶
如果您打算在账户中创建混合表,并且已启用或将要启用 TSS,则必须启用专用存储模式。有关信息,请参阅 TSS 的混合表专用存储模式。
了解安全共享区账户¶
当您发布列表并启用 Cross-Cloud Auto-Fulfillment 时,Snowflake 可以在使用者区域中自动创建一个或多个安全共享区 (SSA) 账户。这些 SSA 账户具有以下特征:
归您(提供商)所有并计费。
由 Snowflake 管理;您无法直接访问它们。
存储数据产品的复制副本,以供其他区域的使用者使用。
因为 SSA 账户包含您的数据,您可以使用 Tri-Secret Secure 保护它们,就像您的主账户一样。但是:
TSS 必须分别启用每个 SSA 账户。
您不能直接在 SSA 账户运行 Snowflake 命令。
您可能仍希望这些账户的 KMS API 事件(例如 GenerateDataKeyWithoutPlaintext 和 Decrypt)持续出现在云提供商日志中,以便进行告警和审计。
确定您的 SSA 账户¶
用于自动履行的 SSA 账户遵循标准命名模式,并在您的组织中显示为全局账户。
要列出您的 SSA 账户,请运行以下命令:
USE ROLE ORGADMIN; SHOW GLOBAL ACCOUNTS LIKE '%AUTO_FULFILLMENT_AREA%' IN ORGANIZATION <org_name>;
输出返回名称包含 AUTO_FULFILLMENT_AREA 的所有账户;例如:
AUTO_FULFILLMENT_AREA$PUBLIC_AWS_US_EAST_1AUTO_FULFILLMENT_AREA$PUBLIC_AZURE_EASTUS2
这些账户名是您在操作 SSA 账户时,需要传入 Tri-Secret Secure 系统函数的值。
备注
较旧的部署可能仍包含账户名以 SNOWFLAKE_MANAGED$PUBLIC_<CLOUD>_<REGION> 开头的 SSA 账户。如果需要,您可以在筛选器中包含这两种模式。
了解安全共享区域账户的 Tri-Secret Secure¶
您可以将 Tri-Secret Secure 用于 SSA 账户,以增强通过 SSAs 共享的数据的安全性。SSA 账户享有与标准账户相同的三层加密保护,而客户托管密钥 (CMK) 则为加密密钥提供了额外的控制层。
安全共享区域账户的 Tri-Secret Secure 具备以下优势:
通过安全共享区增强共享数据的安全性
控制安全共享区数据的加密密钥
遵守数据保护法规要求
能够通过撤销 CMK 来撤销对加密数据的访问权限
为安全共享区域账户激活 Tri-Secret Secure¶
要为 SSA 账户激活 Tri-Secret Secure,请完成以下步骤。这些步骤假设您已经 注册您的 CMK。
在 Snowflake 中,调用 SYSTEM$GET_CMK_INFO 系统函数可查看您注册的 CMK 详细信息,包括 SSA 账户名称。
在 Snowflake 中调用 SYSTEM$GET_CMK_CONFIG 系统函数,为云提供商生成所需信息。
此策略允许 Snowflake 访问您的 CMK。
备注
如果 Microsoft Azure 托管您的 Snowflake 账户,则必须将
tenant_id值传递给该函数。在您的云提供商平台上,使用 SYSTEM$GET_CMK_CONFIG 函数来授权您的 CMK。
在 Snowflake 中,调用 SYSTEM$VERIFY_CMK_INFO 系统函数,并包含 SSA 账户名称,以确认您的 Snowflake 账户与 CMK 之间的连接性。
在 Snowflake 中,调用 SYSTEM$ACTIVATE_CMK_INFO 系统函数,为您的安全共享区域账户激活 Tri-Secret Secure。
此系统函数会使用您注册的 CMK 来激活 Tri-Secret Secure。此系统函数会启动密钥更新过程,并生成一封电子邮件消息,在该过程完成时通知系统管理员。密钥更新过程可以不到一小时就完成,但最多可能需要 24 小时。
警告
在密钥更新过程完成之前,Snowflake 会使用旧的 CMK。在收到指示密钥重新加密过程已完成的电子邮件通知之前,请勿移除对旧 CMK 的访问权限。
查看 CMK 的状态¶
您可以随时调用 SYSTEM$GET_CMK_INFO,检查 CMK 的注册和激活状态。
例如,根据您调用 SYSTEM$GET_CMK_INFO 的时间,函数返回以下输出:
在激活 Tri-Secret Secure 后立即返回
...is being activated...。这表示密钥更新尚未完成。当 Tri-Secret Secure 激活过程完成后,返回的输出包含
...is activated...。这意味着 Snowflake 账户正在使用 Tri-Secret Secure 及您注册的 CMK。
更改 Tri-Secret Secure 的 CMK¶
Snowflake 系统函数支持根据安全需求更改您的客户管理密钥 (CMK)。采用与注册初始 CMK 相同的步骤来注册新的 CMK。当使用新密钥重新完成这些步骤时,系统函数的输出会有所不同。请在自助注册过程中阅读每个系统函数的输出,以确认您已更改密钥。例如,更改 CMK 后,调用 SYSTEM$GET_CMK_INFO 函数会返回包含 ...is being rekeyed... 的消息。
停用 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 系统函数。