部署Elastic Beanstalk Worker Tier时的权限错误

时间:2014-10-02 10:09:55

标签: amazon-web-services amazon-ec2 elastic-beanstalk

几个星期前,我关闭了我的弹性beanstalk应用程序,该应用程序已经运行了好几个月。我现在想再次添加它,因此我创建了一个新的Elastic Beanstalk应用程序,并部署了几个月前部署和工作的相同部署。

而不是像以前一样工作,我遇到了很多问题,例如:

  • 您的requirements.txt文件无效。

  • 目标WSGI脚本无法作为Python模块加载。

  • ImportError:没有模块名称pymysql

  • 错误:无法创建' /usr/lib/python2.6/site-packages/flask':权限被拒绝

我已经搜索了所有这些问题的解决方案,所有这些问题似乎与用户权限问题有关。但我不确定我的权限有什么问题。

我的Elastic Beanstalk应用程序设置为ec2-role。 ec2-role有" AdministratorAccess"策略,应该让用户做任何他们想做的事情。我还将AdministratorAccess设置为唯一的IAM用户和我唯一的IAM组。

我在ssh中玩了一些sudo命令,这似乎有效。例如,当我部署我的应用程序时,我得到"您的requirements.txt文件无效"但是如果我sudo pip install -r requirements.txt它成功,与Flask安装相同。

所以问题是:这个权限错误了吗?如果是这样,我的权限会出现什么问题?管理员是否应该打开所有权限?

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题,我不确定是否确实存在权限错误以及问题的根本究竟是什么。但它有所帮助:

  • 我用枕头替换了我的requirements.txt中的PIL。
  • 我为ec2-role添加了2个自定义策略。这些政策可以在http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.iam.roles.aeb.html找到,但我仍然离开"管理员访问"关于ec2角色。在我看来这是有道理的,因为AdministratorAccess应该已经为用户提供了与那些自定义策略相同的权限(?),但它确实有效。