创建Elastic Beanstalk应用版本加--process参数时出现虚假访问拒绝报错
问题产生原因
当你携带--process参数执行create-application-version命令时,Elastic Beanstalk 除了基础的创建应用版本操作外,还会额外执行应用包预处理逻辑:包括校验包格式、验证配置文件合法性、解压检查资源完整性等,这些后续操作需要你的IAM身份具备额外的权限,你当前配置的策略没有覆盖这些操作,所以会抛出权限不足异常。
而基础的应用版本创建逻辑所需的elasticbeanstalk:CreateApplicationVersion、s3:GetObject权限你已经配置,所以控制台可以看到对应的应用版本和zip包已经生成成功。移除--process参数后不需要执行后续预处理步骤,自然不会报错。
需要补充的权限
你需要在现有IAM策略的Action列表中增加以下权限:
elasticbeanstalk:UpdateApplicationVersion:预处理完成后需要更新应用版本的状态、校验结果等元数据s3:PutObject:预处理后的应用包文件需要回写到对应的Elastic Beanstalk S3存储桶中s3:GetObjectAcl:读取源包的访问控制配置,确保预处理后的文件权限符合要求
修改后的参考策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:UpdateApplicationVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:PutObject" ], "Resource": [ "arn:aws:elasticbeanstalk:us-west-2:<id>:applicationversion/<name>/*", "arn:aws:elasticbeanstalk:us-west-2:<id>:application/<name>", "arn:aws:s3:::elasticbeanstalk-us-west-2-<id>/*" ] } ] }
内容的提问来源于stack exchange,提问作者Rob Johansen
相关产品推荐
相关产品推荐

