【发布时间】:2022-01-22 13:21:13
【问题描述】:
我想了解雪花的加密方法。我具体有两个问题:
- 雪花是否在写入 S3 存储桶之前加密数据?或者它只是依赖于 AWS 对 S3 存储桶的加密。
- Snowflake 加密中使用的密钥层次结构,如何帮助防止无权访问客户 KMS 的恶意 AWS 人员,
【问题讨论】:
标签: amazon-web-services encryption snowflake-cloud-data-platform
我想了解雪花的加密方法。我具体有两个问题:
【问题讨论】:
标签: amazon-web-services encryption snowflake-cloud-data-platform
请看下面我的回复
回答:是的,如果您使用的是内部阶段,Snowflake 会在客户端加密数据,然后发送到云存储。内部阶段由 Snowflake 管理。如果您使用的是外部阶段,则您有责任在加载到外部阶段之前对文件进行加密。但是一旦雪花将数据从外部阶段加载到雪花表中,它就会被雪花自动加密
Ans: 我没看懂这个问题。但我认为您可能需要阅读有关 Tri-Secret 安全密钥和客户管理密钥的信息
【讨论】:
对于客户管理的密钥,AMK 由两个密钥组成:AMK-S 和 AMK-C。 AMK-S 是一个随机的 256 位密钥,它与存储在 HSM 中的根密钥一起包装。 AMK-C 是第二个随机 256 位密钥,它与存储在 KMS 中的客户密钥一起包装。 AMK-S 和 AMK-C 完全随机且不相关。两个包装的密钥都存储在 Snowflake 的加密密钥层次结构中。如果其中一个密钥不匹配或不可用,这可以防止恶意访问客户数据。 我建议查看以下链接以更深入地了解此概念:
https://www.snowflake.com/blog/customer-managed-keys/
https://docs.snowflake.com/en/user-guide/security-encryption.html
【讨论】:
Snowflake 支持客户端加密或服务器端加密。两者都可以配置为解密 S3 存储桶中暂存的文件
client-side encryption, Snowflake supports using a master key stored in Snowflake; using a master key stored in AWS Key Management Service (AWS KMS) is not supported.
Server-side encryption:
AWS_SSE_S3: Requires no additional encryption settings.
AWS_SSE_KMS: Accepts an optional KMS_KEY_ID value.
更多详情:https://docs.snowflake.com/en/user-guide/data-load-s3-encrypt.html#aws-data-file-encryption
关于三秘密安全问题:更详细的答案:Tri-Secret benefits
【讨论】:
为了正确理解,当我们在雪花中加载数据时,首先在舞台环境中对其进行加密 - 这是在文件级别吗?
然后,当这个阶段的数据被推送到 S3(Snowflake 的 VPC)时,它会使用 AWS 提供的数据密钥在对象级别进行加密。
问题:
【讨论】: