boto elastic beanstalk CreateApplicationVersion 403 Forbidden
Posted
技术标签:
【中文标题】boto elastic beanstalk CreateApplicationVersion 403 Forbidden【英文标题】: 【发布时间】:2014-06-27 05:22:25 【问题描述】:我已经完成了一个自动部署到 Elastic beanstalk 的 python 脚本。
它适用于测试环境。
但是当我刚刚更改用户密钥时,Boto 使用正确的策略说“403 Forbidden”。
https://policysim.aws.amazon.com 表示用户允许 CreateApplicationVersion。
但是 boto 不允许 CreateApplicationVersion 操作。
boto==2.28
python==2.7.5
以前有人遇到过这个问题吗?
Traceback (most recent call last):
File "upload_to_aws.py", line 135, in <module>
description=None, s3_bucket=AWS_ELASTIC_BEANSTALK_S3_BUCKET_NAME, s3_key=zip_file)
File "/usr/lib/python2.7/site-packages/boto/beanstalk/layer1.py", line 156, in create_application_version
return self._get_response('CreateApplicationVersion', params)
File "/usr/lib/python2.7/site-packages/boto/beanstalk/layer1.py", line 71, in _get_response
raise self.ResponseError(response.status, response.reason, body)
boto.exception.BotoServerError: BotoServerError: 403 Forbidden
"Error":"Code":"AccessDenied","Message":"User: arn:aws:iam::<account-id>:user/<username> is not authorized to perform: elasticbeanstalk:CreateApplicationVersion on resource: arn:aws:elasticbeanstalk:ap-northeast-1:<account-id>:applicationversion/<application-name>/<application-version>","Type":"Sender","RequestId":"<request-id>"
IAM 政策:
"Version": "2012-10-17",
"Statement": [
"Sid": "Stmt1000000000000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket",
]
,
"Sid": "Stmt1000000000001",
"Effect": "Allow",
"Action": [
"elasticbeanstalk:*"
],
"Resource": [
"arn:aws:elasticbeanstalk:ap-northeast-1:<account-id>:environment/<application name>/<environment-name>"
]
]
【问题讨论】:
【参考方案1】:我真的不认为这是一个博托问题。它只是使用您提供的凭据进行 API 调用。如果服务显示403
,则您使用的凭据未获得该操作的授权。
在CreateApplicationVersion
操作的情况下,您还必须传入版本数据所在的 S3 存储桶。您使用的帐户是否有权访问该存储桶?
【讨论】:
非常感谢您的回复。在 CreateApplicationVersion 操作之前,我将 zip 文件上传到 S3 存储桶。它上传得很好。但是当我尝试 CreateApplicationVersion 操作时,它显示 403。其他一些操作,如 describe_applications()、describe_environments(application_name=AWS_ELASTIC_BEANSTALK_APP_NAME) 可以正常工作。以上是关于boto elastic beanstalk CreateApplicationVersion 403 Forbidden的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS Python SDK Boto 3 等待 Elastic Beanstalk 事件
AWS 的 Elastic Beanstalk 没有使用我的 virtualenv:“没有名为 boto 的模块”
AWS 的 Elastic Beanstalk 未使用我的 virtualenv:“没有名为 boto 的模块”
如何以编程方式更改 Elastic Beanstalk 环境中的 EC2 实例类型?