encryption - 雪花加密场景
问题描述
我有一个用例来加密数据,同时从 S3 存储桶加载到雪花表。S3 存储桶通过 SSE-S3 启用。S3 中的文件在被推送到 S3 之前使用 KMS 密钥额外加密(我喜欢称之为双重加密)。我想了解 Snowflake 如何解密这些数据文件。具体来说,传输中的数据(在进行自动摄取时)是否也加密了。
其次,如果 Snowflake 中的外部阶段配置了相同的 KMS 密钥 ID,
encryption = (type = 'AWS_SSE_KMS' kms_key_id = 'xxxx-yyyy'
Snowflake 是否会在查询加载文件的表时解密数据文件并使其可读?
提前致谢
解决方案
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
推荐阅读
- snowflake-cloud-data-platform - 数据加载到雪花表中 - 几何数据
- python - 最大值的 Sympy 简化
- regex - 如何在整个范围内的每一行中创建最后一个/最右边的非空值的列
- sql - 如何在 SQL 中编写 Retain
- c# - 如果选择了退出选项,如何退出程序?
- sql - postgres中的求和列
- c - C中的Postgres自定义并行聚合扩展,共享状态?
- python - 如何使用python从文件中的当前行写入前几行
- java - 如何在 int 数组(java)中附加 int?
- photoshop-script - 在哪里可以找到有关如何使用 PhotoShop UI Toolkit 的文档?