将 CircleCi 环境变量用于 aws access/secret 键

Using CircleCi environment variables for aws access/secret keys

我为 post 文档创建了一个简单的 API 测试。端点需要使用 AWS 访问和密钥进行身份验证。这是我的 API 测试代码。

public static async Task<HttpResponseMessage> PostRequest(string requestUrl, dynamic json = null, byte[] file = null)
        {
            var credentials = new ImmutableCredentials(accessKey, secretKey, null);

            var url= url.SetQueryParams(json);
            var httpContent = new ByteArrayContent(file );

            var response = await client.PostAsync(
                postUrl,
                httpContent,
                regionName: regionName,
                serviceName: serviceName,
                credentials: credentials);

            return response;
        }

目前这些凭据是硬编码的(我知道这不是很好)。在我的 CI 管道中,我使用的是 CircleCi,并将我的 AWS 密钥存储在环境变量部分中。我现在的问题是如何访问这些变量并将其实现到我的测试代码中?

关于我正在尝试做的事情的想法是,我不想在源代码管理中对我的 AWS 密钥进行硬编码。

我使用circleci,但我不使用dot.net。

我已将 AWS 凭证添加为 circleci 项目的环境变量。在那之后,我不包括我的 nodejs 代码的凭据部分。 aws-sdk for nodejs 将使用环境变量来获取凭据。我相信基于 dot.net 的应用程序的行为也应该相同。

希望对您有所帮助。

参考:

您可以使用 CircleCI context 存储 AWS 密钥,然后在 CircleCI 配置中指定上下文。它将阻止将它们保留在代码中。