如何授予 ElasticBeanstalk 对 AWS CodeCommit 的访问权限
Posted
技术标签:
【中文标题】如何授予 ElasticBeanstalk 对 AWS CodeCommit 的访问权限【英文标题】:How to give ElasticBeanstalk access to AWS CodeCommit 【发布时间】:2016-02-16 20:30:51 【问题描述】:我正在将 Flask 应用程序部署到 ElasticBeanstalk。此应用程序的依赖项之一是应从 CodeCommit git 存储库安装的包。
在本地,我已成功设置 SSH 以将 CodeCommit 存储库连接到 pip install
并推送代码。我已将包添加到requirements.txt
,并且在本地使用pip
可以正常安装。
问题是,我应该如何配置 EBS 以通过 SSH 访问这个 repo?
我看到 EBS 使用的 IAM 角色是 aws-elasticbeanstalk-ec2-role
。我将AWSCodeCommitReadOnly
策略附加到此角色,但无济于事。
在eb-activity.log
中,尝试从 CodeCommit 获取包时出现 SSH 错误:
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
我应该如何配置从 EBS 对 AWS CodeCommit 的访问?
【问题讨论】:
【参考方案1】:我的建议是使用 HTTPS 而不是 SSH 来访问您的 AWS CodeCommit 存储库。您的实例已通过您设置的角色和策略以及可用的 AWS CLI 获得权限。您需要做的就是运行配置 git-credential 助手的命令:
git config --global credential.helper '!aws --profile default codecommit credential-helper $@'
git config --global credential.UseHttpPath true
希望有帮助!
【讨论】:
是的 - 实际上我已经尝试过 HTTPS。运行 git config 的问题是使用 $HOME ,当运行 .ebextensions 中的配置脚本时,它没有以某种方式设置。或许你对此有所了解。目前我通过使用私有 PyPI repo 解决了这个问题,无论如何这是一个更正确的解决方案。以上是关于如何授予 ElasticBeanstalk 对 AWS CodeCommit 的访问权限的主要内容,如果未能解决你的问题,请参考以下文章
Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限