【问题标题】:I am able to upload to AWS S3 from my localhost, but not from my AWS Elastic BeanStalk instance?我可以从本地主机上传到 AWS S3,但不能从我的 AWS Elastic BeanStalk 实例上传?
【发布时间】:2020-10-12 12:32:53
【问题描述】:

我是 AWS 新手。我已经开发了 Spring Boot 应用程序来上传 S3 存储桶中的文件。

我创建了 IAM 用户并分配了 AmazonS3FullAccess。我在我的 Spring Boot 应用程序中使用该用户 accessKey 和 accessSecret 来上传文件,并且它在我的本地主机中工作正常,但它在 AWS Elastic BeanStalk 实例中不起作用。我收到了权限被拒绝的异常消息。

【问题讨论】:

  • 能否检查 S3 和 BeanStalk 的服务组是否相互访问?

标签: amazon-web-services spring-boot amazon-s3 amazon-elastic-beanstalk


【解决方案1】:

在您的 Elastic Beanstalk 应用程序的 Configuration 中,在 Security 部分中,应该配置了一个 IAM 实例配置文件

一旦您确定了它正在使用的角色,您需要打开Identity and Access Management (IAM) 控制台,导航到角色列表,找到该角色,并向其中添加新策略。最简单的解决方案是添加内联策略。授予它将文件上传到存储桶的权限,它应该开始工作。应该不需要重新启动服务器。

【讨论】:

  • 谢谢。根据您的建议,我已经检查并在 Elastic Beanstalk 安全部分中发现 IAM 即时配置文件是 aws-elasticbeanstack-ec2-role,并且在 IAM 角色部分中的 elasticbeanstack-ec2-role AmazonS3FullAccess 策略已附加。我还添加了内联策略,但仍然出现 Permission Denied 错误。
  • 您的应用程序是否使用 AWS 开发工具包或其他工具来执行 S3 操作?根据 SDK,您可能必须告诉它从元数据服务器获取凭据。
  • 嘿@stefansundin 我面临同样的问题,并使用 aws-sdk 用于 javascript/nodejs。你能告诉我更多关于元数据服务器的信息吗?
  • 嗨奥马尔。看来nodejs SDK会根据docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/…自动从元数据服务器获取凭据。
猜你喜欢
  • 1970-01-01
  • 2022-01-08
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2012-07-05
  • 2015-11-07
  • 2019-03-03
相关资源
最近更新 更多