我来自这篇文章,它解释了 AWS SM SDK 如何通过实现此类方法从您的 WEB API 调用获取凭证:
IAmazonSecretsManager client = new AmazonSecretsManagerClient(
RegionEndpoint.GetBySystemName(region));
GetSecretValueRequest request = new GetSecretValueRequest();
request.SecretId = "MySecretNameExample";
GetSecretValueResponse response = null;
response = client.GetSecretValue(request);
但是有几个问题没有得到解答,这对我来说非常重要:
答案说,当涉及到 AmazonSecretManagerClient 类时,文档说:
Constructs AmazonSecretsManagerClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
application configurations
.NET 8
的情况下,他们是否意味着存储在 app settings.json
文件中的凭证?
这似乎只涉及本地开发,如何转化为
我也很难理解如何能够访问如此微妙的数据,而不必提供必须在代码中以某种方式“编写”在源代码中才能找到的凭据,以便应用程序能够进行通信与服务。
不。如果您的 .NET 代码在 EC2 实例上运行,并且在前面的 7 个步骤中没有其他凭证可用于解析凭证(请参阅上面的链接),则 AWS 开发工具包将获取您实例的配置文件凭证。
当他们说应用程序配置时,在 .NET 8 的情况下,他们是指存储在应用程序 settings.json 文件中的凭据吗?
您可以在 appsettings.json 中设置 AWS 配置文件,然后使用 AWS CLI 进行身份验证,以便您的代码自动使用环境变量中设置的凭证:
这似乎只是本地开发,如何转化为生产环境?
通常,您会在生产中采用“包含电池”的方法:让在 AWS 中运行的代码获取与实例的 IAM 角色关联的默认实例凭证(无论是 EC2 实例角色还是 AWS Lambda 执行角色) ),并让它尝试以这种方式访问 AWS 资源。您必须确保您的实例为该角色设置了正确的策略。
我问这一切是因为我对向我的代码添加此类第三方服务还很陌生,这次我希望我的 WEB API 在 GitHub Pages 上运行,因此我必须将我的存储库公开,这不会信息可以在源代码中的任何位置找到。
GitHub Pages 将无法托管您的 Web 应用程序 - 它仅托管要在您的 Web 浏览器中显示的文件。如果您想运行服务器端 REST API,则需要能够在云中运行 .NET 代码的工具。一些入门资源: