有没有办法从 AWS SDK 检索 AWS 凭证信息?
Is there a way to retrieve AWS Credentials information from AWS SDK?
我正在尝试为我的 dotnet 核心 3.1 API 设置一些必需服务的健康检查,但我正在努力进行 Amazon DynamoDB 检查。
我们正在使用 Xabaril healthcheck packages 和 DynamoDb 请求一个需要 AccessKey
、SecretKey
和 RegionEndpoint
.
的 DynamoDBOptions
我知道 AWS SDK 从环境凭据配置文件配置中获取此信息:
using Amazon.DynamoDBv2;
//... other usings
public void ConfigureServices(IServiceCollection services)
{
// ... other stufs
services.AddAWSService<IAmazonDynamoDB>();
// ...
}
...但我也需要得到它才能像这样设置我的依赖性健康检查:
services.AddHealthChecks()
.AddDynamoDb(dynamoDbOptions =>
{
dynamoDbOptions .AccessKey = "<???>";
dynamoDbOptions .RegionEndpoint = Amazon.RegionEndpoint.EUWest2; // <???>
dynamoDbOptions .SecretKey = "<???>";
}, "DynamoDB");
如何从 AWS SDK 包中获取此 <???>
信息?
是的,AWS SDK 提供对存储在本地 shared AWS credentials file.
中的 IAM AccessKey
和 SecretKey
凭据的编程访问
我不是 c# 开发人员,但也许看到了 .net sdk AWSCredentialsFactory.GetAWSCredentials
method or this blogpost。
在官方文档中花了更多时间后,我找到了恰好涵盖此需求的主题:Accessing credentials and profiles in an application。
To actively retrieve profiles and credentials, use classes from the Amazon.Runtime.CredentialManagement namespace
.
其实我们可以使用SharedCredentialsFile
class在使用AWS凭证文件格式的文件中查找配置文件,NetSDKCredentialsFile
class查找SDK 商店中的个人资料,甚至 CredentialProfileStoreChain
都可以搜索。
您可以在上面的 link 中查看示例。我的情况是这样的:
private static AWSCredentials GetAccountCredentials(string profileName = "default")
{
var chain = new CredentialProfileStoreChain();
if (chain.TryGetAWSCredentials(profileName, out AWSCredentials awsCredentials))
return awsCredentials;
// ToDo: Error Handler
return null;
}
我正在尝试为我的 dotnet 核心 3.1 API 设置一些必需服务的健康检查,但我正在努力进行 Amazon DynamoDB 检查。
我们正在使用 Xabaril healthcheck packages 和 DynamoDb 请求一个需要 AccessKey
、SecretKey
和 RegionEndpoint
.
我知道 AWS SDK 从环境凭据配置文件配置中获取此信息:
using Amazon.DynamoDBv2;
//... other usings
public void ConfigureServices(IServiceCollection services)
{
// ... other stufs
services.AddAWSService<IAmazonDynamoDB>();
// ...
}
...但我也需要得到它才能像这样设置我的依赖性健康检查:
services.AddHealthChecks()
.AddDynamoDb(dynamoDbOptions =>
{
dynamoDbOptions .AccessKey = "<???>";
dynamoDbOptions .RegionEndpoint = Amazon.RegionEndpoint.EUWest2; // <???>
dynamoDbOptions .SecretKey = "<???>";
}, "DynamoDB");
如何从 AWS SDK 包中获取此 <???>
信息?
是的,AWS SDK 提供对存储在本地 shared AWS credentials file.
中的 IAMAccessKey
和 SecretKey
凭据的编程访问
我不是 c# 开发人员,但也许看到了 .net sdk AWSCredentialsFactory.GetAWSCredentials
method or this blogpost。
在官方文档中花了更多时间后,我找到了恰好涵盖此需求的主题:Accessing credentials and profiles in an application。
To actively retrieve profiles and credentials, use classes from the
Amazon.Runtime.CredentialManagement namespace
.
其实我们可以使用SharedCredentialsFile
class在使用AWS凭证文件格式的文件中查找配置文件,NetSDKCredentialsFile
class查找SDK 商店中的个人资料,甚至 CredentialProfileStoreChain
都可以搜索。
您可以在上面的 link 中查看示例。我的情况是这样的:
private static AWSCredentials GetAccountCredentials(string profileName = "default")
{
var chain = new CredentialProfileStoreChain();
if (chain.TryGetAWSCredentials(profileName, out AWSCredentials awsCredentials))
return awsCredentials;
// ToDo: Error Handler
return null;
}