GitHub中REST API的aws凭证问题



我有使用AWS SES发送电子邮件的Go编写的rest api。当我使用docker在本地部署api时,电子邮件正在通过本地主机环境中的SES发送。现在我已经为api编写了集成测试,它在本地系统中完美地工作,并且所需的aws凭证被放置在默认位置".aws/credential"。我有放置在github仓库的源代码。我希望这个集成测试得到执行的每一个公关提出,为此我已经设置github行动太。除了使用AWS SES的api外,所有api都可以在github中工作,因为它没有可用的AWS凭证。我已经尝试了几种在github中提供法律信用而不暴露它们的方法,但到目前为止都没有效果。因此,需要一些帮助,如何做到这一点。

您的应用程序无法找到凭据,因为它存储在主机的.aws/credential路径中,而不是在容器中.

有几种解决方案可以解决这个特定的问题,其中之一就是简单地将.aws/credential从您的主机挂载到您的docker容器。

如果您正在使用docker run命令,请使用-v:

docker run -v ${HOME}/.aws/credentials:/root/.aws/credentials:ro  ...

或者如果您使用docker-compose,请指定volume下的路径映射:

version: '3'
services:
app:
image: your_image
volumes:
- ${HOME}/.aws/credentials:/root/.aws/credentials:ro

然而,上面的解决方案并不是最好的,从安全的角度来看,它是有风险的。

我建议将凭据作为环境变量传递。

最新更新