【问题标题】:How do I deploy my AWS Secret Manager retrieval code in production with AWS CLI?如何使用 AWS CLI 在生产中部署我的 AWS Secret Manager 检索代码?
【发布时间】:2020-12-03 17:04:06
【问题描述】:

我编写了一些代码来从 AWS Secrets Manager 中检索我的密钥,以用于进一步处理其他组件。在我的开发环境中,我使用 AWS CLI 配置了我的凭证。编译代码后,我可以从 VS 以及生成的 exe 运行它。

这是连接到秘密管理器并检索秘密的代码

public static string Get(string secretName)
        {
            
            var config = new AmazonSecretsManagerConfig { RegionEndpoint = RegionEndpoint.USWest2 };
            
            IAmazonSecretsManager client = new AmazonSecretsManagerClient(config);
         
            var request = new GetSecretValueRequest
            {
                SecretId = secretName
            };

            GetSecretValueResponse response = null;
            try
            {
                response = Task.Run(async () => await client.GetSecretValueAsync(request)).Result;
            }
            catch (ResourceNotFoundException)
            {
                Console.WriteLine("The requested secret " + secretName + " was not found");
            }
            catch (InvalidRequestException e)
            {
                Console.WriteLine("The request was invalid due to: " + e.Message);
            }
            catch (InvalidParameterException e)
            {
                Console.WriteLine("The request had invalid params: " + e.Message);
            }

            return response?.SecretString;
        }

此代码从 AWS CLI 提取凭证,但是当我尝试在另一台 PC 上运行此代码时,它会按预期给出 IAM 安全错误,因为它无法确定连接到密钥管理器的凭证。

在生产中部署此类配置的最佳方法是什么?我是否需要在每个部署中安装和配置 AWS CLI?

【问题讨论】:

标签: amazon-web-services aws-cli aws-secrets-manager


【解决方案1】:

如果您在 AWS 中部署代码,则可以使用 IAM 角色,以及允许从 Secret Manager 获取机密的策略,并将此角色附加到 EC2 或 ECS 等中

【讨论】:

  • 我实际上会将它部署在非 AWS 服务器上。任何线索如何去做?
  • @SourabhSriom 这是什么服务器?
  • 它是 Windows Server 2016
  • @SourabhSriom 在这种情况下,您需要在“黄金映像”中设置和配置 AWS CLI,并从该映像启动服务器。或者创建一个自定义脚本来安装和配置在服务器启动时运行的 AWS CLI。
  • 那么服务器是部署在本地某个地方还是在不同的云中?
【解决方案2】:

如果您在现有身份验证基础设施到位的企业环境中,您可能希望查看与 AWS 一起使用的 identity federation 解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 2021-07-17
    • 2019-06-11
    • 2020-07-07
    • 2020-12-25
    • 2018-12-09
    • 2021-09-10
    • 2021-11-26
    相关资源
    最近更新 更多