如何授予 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权限

如何授予用户对 SQL Server 中数据库的读取权限?

如何使用 FLAG_GRANT_READ_URI_PERMISSION 授予对自定义内容提供者的临时访问权限

如何授予 PHP 对目录的写入权限?

如何授予对 DynamoDB 表的访问权限?

如何使用 powershell 授予用户对证书私钥的权限?