django - 访问从 S3 下载到弹性 beantalk 的私钥时出现“权限被拒绝”
问题描述
根据官方 AWS 文档,我将 Firebase Admin SDK 凭证存储到来自亚马逊 S3 的弹性 beantalk env 中,用于应用程序的部署。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-storingprivatekeys.html
当 Firebase Admin SDK 尝试访问密钥时,它会引发错误。
PermissionError: [Errno 13] Permission denied: '/etc/pki/tls/certs/my_cert.json'
如何设置使其工作?
解决方案
您需要执行 2 个步骤:
.ebextensions/privatekey.config 如您的文档 url中所述。您可以检查 beanstalk 日志(如果可以 SSH,则为 cfn-init 日志)以验证 .ebextensions 脚本是否正确执行
beanstalk 应该能够访问存储密钥的 S3 存储桶。
第2点更详细:
分配给您环境的 EC2 实例的实例配置文件必须具有从指定存储桶读取密钥对象的权限。验证实例配置文件是否有权读取 IAM 中的对象,并且存储桶和对象的权限不会禁止实例配置文件。您可以通过 SSH'n 在属于 Beanstalk 环境的 EC2 内对此进行测试并执行:aws s3 ls s3://your-bucket/with-key
。之后,您可以尝试下载密钥。这与您的 ebextensions 脚本尝试执行的操作完全相同。如果不允许,ebextensions 脚本将失败。
推荐阅读
- r - R 错误:期望单个字符串值:[type=character; 范围=5]
- mongodb - 如何在springBatch的jobparamater中编写mongoquery?
- sql - select入临时表效率比直接查询快
- sorting - 请求添加新属性以排序对象
- vue.js - 更新 vuex 中的 getter
- elixir - Phoenix LiveView 嵌套关联表单
- fastapi - 如何重定向到 Google Play 应用程序 [FastAPI]
- mysql - 如何使用 1 - 10 范围内的随机数更新 SQL 列
- wxpython - 在 KDE linux 上安装 wxPython 时出错
- google-sheets - 使用独立插件向 Google 表格添加自定义功能