0

我正在使用 AWS Secret Manager Service 检索一些机密信息,例如 SMTP 详细信息或连接字符串。但是,要从 AWS Secret Manager Service 获取密钥值,我们似乎需要传递访问密钥和密钥,而不是我们想要检索的密钥。所以我在配置文件中维护这些值。

        public AwsSecretManagerService(IOptions<AwsAppSettings> settings)
        {
            awsAppSettings = settings.Value;
            amazonSecretsManagerClient = new AmazonSecretsManagerClient
                (awsAppSettings.Accesskey, awsAppSettings.SecretKey, RegionEndpoint.GetBySystemName(awsAppSettings.Region));
        }

        public async Task<SecretValueResponse> GetSecretValueAsync(SecretValueRequest secretValueRequest)
        {
            return _mapper.Map<SecretValueResponse>(await amazonSecretsManagerClient.GetSecretValueAsync(_mapper.Map<GetSecretValueRequest>(secretValueRequest)));
        }

所以我认为我通过在应用程序设置文件中维护 AWS 凭证来破坏使用秘密管理器的全部目的。我想知道这样做的正确方法是什么

4

1 回答 1

1

在代码中传递或添加 IAM 用户的 AWS 凭证(访问密钥和秘密访问密钥)不是一个好习惯。

相反,不要传递它并按如下方式更新您的代码:

amazonSecretsManagerClient = new AmazonSecretsManagerClient
                (RegionEndpoint.GetBySystemName(awsAppSettings.Region));

问题:那么它将如何访问 AWS 服务?

答:如果您要在本地系统上执行代码,安装和配置 AWS CLI,而不是通过 CLI 或终端传递 AWS 凭证,它将使用这些 AWS 配置的凭证来访问 AWS 服务。

AWS CLI 安装参考:安装 AWS CLI

AWS CLI 配置参考:配置 AWS CLI

如果您要在 AWS 服务(例如,EC2 实例)上执行您的代码,请附加一个具有足够权限的 AWS 资源(例如,EC2 实例)的 IAM 角色,它将使用该 IAM 角色来访问 AWS 服务。

于 2019-07-30T12:22:58.390 回答