Github 中 GOLang rest api 的 aws 凭证问题

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

我有用 Golang 编写的 rest api,它使用 AWS SES 发送电子邮件。当我使用 docker 在本地部署 api 时,电子邮件将通过本地主机环境中的 SES 发送。现在我已经为 api 编写了集成测试,它在本地系统中完美运行,并且所需的 aws 凭证也放置在默认位置

".aws/credential"
。我在 github repo 中放置了源代码。我希望这个集成测试能够针对每个提出的 PR 执行,为此我也设置了 github 操作。所有 api 都在 github 中工作,除了使用 AWS SES 的那个,因为它没有可用的 aws 凭证。我已经尝试了几种方法来在 github 中提供 aws creds 而不公开它们,但到目前为止没有任何效果。因此需要一些关于如何做到这一点的帮助。

amazon-web-services go github-actions amazon-ses
1个回答
0
投票

您的应用程序找不到凭据,因为 它存储在主机的

.aws/credential
路径中,而不是在您的容器中.

有几种解决方案可用于解决此特定问题,其中之一是简单地将

.aws/credential
从您的主机安装到您的 docker 容器。

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

或者如果您使用的是 docker-compose:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.