AWS Secrets Manager 从何处获取 AWS 凭证?

coa*_*rob 3 amazon-web-services aws-secrets-manager

我开始使用 Secrets Manager。

所以,我在 AWS 中创建了我的第一个秘密。在这个过程中,它给了我一些示例代码。我把它放在一个小应用程序中并运行它。

这是代码:

String region = "us-east-1";
        string secret = "";

        MemoryStream memoryStream = new MemoryStream();

        IAmazonSecretsManager client = new AmazonSecretsManagerClient(RegionEndpoint.GetBySystemName(region));

        GetSecretValueRequest request = new GetSecretValueRequest();
        request.SecretId = "MySecretNameExample";

        GetSecretValueResponse response = null;
        response = client.GetSecretValue(request);
Run Code Online (Sandbox Code Playgroud)

问题是 1) 我能够成功检索到我创建的密钥,2) 我没有在任何地方创建一个带有任何有效 AWS 凭证数据的 Credentials 对象。这段代码从哪里获取凭证信息??

Joh*_*ley 5

如果您参考这行代码的 API 文档:

IAmazonSecretsManager client = new AmazonSecretsManagerClient(
    RegionEndpoint.GetBySystemName(region));
Run Code Online (Sandbox Code Playgroud)

AmazonSecretsManagerClient

您将找到以下说明:

使用从应用程序的默认配置加载的凭证构造 AmazonSecretsManagerClient,如果从 EC2 实例上的 Instance Profile Service 加载不成功。

这意味着您要么在 EC2 或 ECS 服务(或相关服务,如 Beanstalk,...)上运行,并为实例分配了角色,要么您已在凭证文件中以标准方法配置了凭证。AWS 开发工具包可帮助您找到凭证。

此文档链接将更详细地解释如何管理和选择 AWS 凭证。

使用 AWS 凭证

我已经看到很多开发人员在凭据如何工作以及它们在 SDK 中的使用方式方面弄错了一些小细节。鉴于 AWS 凭证持有 AWS 王国的钥匙,管理和保护它们至关重要。