使用AWS CodeBuild和EB CLI部署到AWS Elastic Beanstalk

问题描述 投票:0回答:1

我正在尝试设置AWS Codebuild以将应用程序部署到AWS Elastic Beanstalk。

问题是似乎AWS CodeBuild无法使用EB CLI(看起来应该这样,阅读本文... https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli-codebuild.html

所以当我在CodeBuild上指定一个eb cli命令时:

version: 0.2

phases:
  install:
    commands:
      - echo Logging into Amazon ECR...
      - eb init --platform "multi-container-docker-18.03.1-ce-(generic)" --region us-west-1 application

我明白了:

/codebuild/output/tmp/script.sh: eb: not found

我还尝试使用以下命令安装CLI:

- pip install --upgrade awsebcli awscli
- eb init --platform "multi-container-docker-18.03.1-ce-(generic)" --region us-west-1 application

并扩展了生成的AWS CodeBuild角色,并具有对Elastic Beanstalk的完全访问权限

但我得到这个错误:

ERROR: NotAuthorizedError - Operation Denied. Access Denied

我在命令中添加了一个--debug标志,这是确切的错误:

2018-09-10 13:33:55,151 (DEBUG) ebcli.lib.aws : Making api call: (elasticbeanstalk, describe_configuration_settings) to region: us-west-1 with args:{'ApplicationName': 'application', 'EnvironmentName': 'staging'}
2018-09-10 13:33:55,495 (DEBUG) ebcli.lib.aws : Response: {'Error': {'Type': 'Sender', 'Code': 'InsufficientPrivilegesException', 'Message': 'Access Denied'}, 'ResponseMetadata': {'RequestId': '32f4e739-1694-4aa2-9e2e-076ec4861ae7', 'HTTPStatusCode': 403, 'date': 'Mon, 10 Sep 2018 13:33:55 GMT', 'RetryAttempts': 0}}
2018-09-10 13:33:55,495 (DEBUG) ebcli.lib.aws : API call finished, status = 403

我错过了什么吗?如何正确使用CodeBuild的EB CLI?

amazon-web-services elastic-beanstalk aws-codebuild
1个回答
2
投票

事实证明,EBCLI需要的不仅仅是Elastic Beanstalk策略。这就是为什么即使我附加了Elastic Beanstalk的完全访问策略,我仍然会收到身份验证错误。

我所做的是了解所需的策略是创建一个具有对所有服务的完全访问权限的IAM角色,并将其附加到AWS CodeBuild项目。

然后,转到IAM Roles - > Role name - > Access advisor,您可以确切地检查项目使用的策略是什么,这样您就可以为服务创建适当的角色。

笔记:

  • 最近的活动通常在4小时内出现。 (很可能您不会立即看到Access Advisor中使用的所有服务)
  • 您可以首先使用AWSElasticBeanstalkFullAccess内置策略而不是AdministratorAccess策略来查明eb客户端正在使用的服务
© www.soinside.com 2019 - 2024. All rights reserved.