如何使用 Active Storage Rails 上传到具有 AES256 加密(服务器端加密)的 AWS S3 存储桶?
Posted
技术标签:
【中文标题】如何使用 Active Storage Rails 上传到具有 AES256 加密(服务器端加密)的 AWS S3 存储桶?【英文标题】:How to upload to a AWS S3 bucket with AES256 encryption(Server side encryption) using Active Storage Rails? 【发布时间】:2020-04-19 17:35:19 【问题描述】:我们正在尝试使用 Rails Active-Storage 将文件上传到 AES 加密的 S3 存储桶。我们需要在 Rails 中设置服务器端加密。
但它会引发访问被拒绝错误(Aws::S3::Errors::AccessDenied (Access Denied))。
使用 Paperclip 时上传成功。现在我们正在从 Paperclip 迁移到 Active Storage。我们能够使用 Rails 控制台中的 AWS 开发工具包命令上传文件。但是我们需要设置活动存储。我们遵循了 rails 文档中指定的配置。但是没有关于如何设置“s3_server_side_encryption”和“s3_permissions”的文档。
我们已经完成了 rails 文档中指定的基本配置。 参考:https://edgeguides.rubyonrails.org/active_storage_overview.html
【问题讨论】:
【参考方案1】:将此添加到 storage.yml:
upload:
server_side_encryption: 'AES256'
只要您的 S3/KMS 权限设置正确,您就可以开始了。
存储桶用户将需要以下 KMS 策略。
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:ReEncryptTo",
"kms:DescribeKey",
"kms:ReEncryptFrom"
【讨论】:
我也为 Rails Guides 开了一个 PR。 github.com/rails/rails/pull/38801【参考方案2】:我想你正在寻找这个。 Here
【讨论】:
抱歉,不。我们需要 Rails Active-Storage S3 server_side_encryption 配置。您分享的链接是回形针的。【参考方案3】:您似乎没有正确配置服务器对 S3 存储桶的访问点。请参阅以下instructions。
【讨论】:
@hair-amoor 使用回形针时上传工作成功。现在我们正在从 Paperclip 迁移到 Active Storage。我们能够使用 Rails 控制台中的 AWS 开发工具包命令上传文件。但是我们需要设置活动存储。我们遵循了 rails 文档中指定的配置。但是没有关于如何设置“server_side_encryption”和“s3_permissions”的文档。以上是关于如何使用 Active Storage Rails 上传到具有 AES256 加密(服务器端加密)的 AWS S3 存储桶?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Active Storage Rails 上传到具有 AES256 加密(服务器端加密)的 AWS S3 存储桶?
Ruby on Rails - Active Storage - 如何只接受 pdf 和 doc?
无法使用 sequel-rails gem 安装 rails active_storage
无法加载 Rails.config.active_storage.service