Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用AWS CLI在生产环境中部署AWS Secret Manager检索代码?_Amazon Web Services_Aws Cli_Aws Secrets Manager - Fatal编程技术网

Amazon web services 如何使用AWS CLI在生产环境中部署AWS Secret Manager检索代码?

Amazon web services 如何使用AWS CLI在生产环境中部署AWS Secret Manager检索代码?,amazon-web-services,aws-cli,aws-secrets-manager,Amazon Web Services,Aws Cli,Aws Secrets Manager,我已经编写了一些代码从AWS机密管理器中检索我的机密,以用于其他组件的进一步处理。在我的开发环境中,我使用AWS CLI配置了凭据。一旦代码被编译,我就能够从VS和生成的exe运行它 下面是连接到机密管理器并检索机密的代码 public static string Get(string secretName) { var config = new AmazonSecretsManagerConfig { RegionEndpoin

我已经编写了一些代码从AWS机密管理器中检索我的机密,以用于其他组件的进一步处理。在我的开发环境中,我使用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安全错误,因为它无法确定连接到secret manager的凭据是什么


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

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

如果您所在的公司环境中有现有的身份验证基础设施,您可能想看看与AWS一起使用的解决方案。

这里有完整的描述-我将实际在非AWS服务器上部署它。有什么线索吗?@SourabhSriom这是什么类型的服务器?它是Windows服务器2016@SourabhSriom在这种情况下,您需要在“黄金映像”中设置和配置AWS CLI,并从此映像启动服务器。或者创建一个自定义脚本,用于安装和配置在服务器启动时运行的AWS CLI。那么服务器是部署在本地某处还是部署在不同的云中?