首页 > 解决方案 > 雪花加密场景

问题描述

我有一个用例来加密数据,同时从 S3 存储桶加载到雪花表。S3 存储桶通过 SSE-S3 启用。S3 中的文件在被推送到 S3 之前使用 KMS 密钥额外加密(我喜欢称之为双重加密)。我想了解 Snowflake 如何解密这些数据文件。具体来说,传输中的数据(在进行自动摄取时)是否也加密了。

其次,如果 Snowflake 中的外部阶段配置了相同的 KMS 密钥 ID, encryption = (type = 'AWS_SSE_KMS' kms_key_id = 'xxxx-yyyy' Snowflake 是否会在查询加载文件的表时解密数据文件并使其可读?

提前致谢

标签: encryptionsnowflake-cloud-data-platform

解决方案


Snowflake 支持客户端加密或服务器端加密。两者都可以配置为解密 S3 存储桶中暂存的文件。

客户端加密:

AWS_CSE:需要 MASTER_KEY 值。主密钥必须是 Base64 编码形式的 128 位或 256 位密钥。

有关更多信息,请参阅客户端加密的 AWS 文档。请注意,对于客户端加密,Snowflake 支持使用存储在 Snowflake 中的主密钥;不支持使用存储在 AWS Key Management Service (AWS KMS) 中的主密钥。

服务器端加密:

AWS_SSE_S3:不需要额外的加密设置。AWS_SSE_KMS:接受可选的 KMS_KEY_ID 值。

有关更多信息,请参阅有关服务器端加密的 AWS 文档。

使用 AWS Key Management Service (KMS) 管理密钥需要配置 IAM 策略。有关信息,请参阅 KMS 文档。

详细信息:https ://docs.snowflake.com/en/user-guide/data-load-s3-encrypt.html#aws-data-file-encryption


推荐阅读