Использование роли Assume в EC2C#

Место общения программистов C#
Anonymous
Использование роли Assume в EC2

Сообщение Anonymous »

У меня есть простой тестовый WebAPI, который читает/записывает таблицу DynamoDB.
При работе на локальном компьютере я загружаю учетные данные единого входа, беру на себя роль и выполняю чтение. /запись запросов в БД. Все работает нормально.
Теперь мне нужно переместить это для запуска на экземпляре EC2, где, конечно, у меня нет локального профиля AWS. Я уже настроил свой экземпляр EC2 с указанной ниже ролью.

Код: Выделить всё

var roleArnToAssume = "arn:aws:iam:::role/myRole_AppDynamoDbAccess";
var stsClient = new AmazonSecurityTokenServiceClient(LoadSsoCredentials(), RegionEndpoint.EUWest1);

var assumeRoleReq = new AssumeRoleRequest()
{
DurationSeconds = 3600,
RoleSessionName = "Session1",
RoleArn = roleArnToAssume
};

var assumeRoleRes = await stsClient.AssumeRoleAsync(assumeRoleReq);

var config = new AmazonDynamoDBConfig()
{
RegionEndpoint = RegionEndpoint.USEast1,
AllowAutoRedirect = true
};

var client = new AmazonDynamoDBClient(assumeRoleRes.Credentials, config);

services.AddSingleton(client);
services.AddScoped();

static AWSCredentials LoadSsoCredentials()
{
var chain = new CredentialProfileStoreChain();
if (chain.TryGetAWSCredentials("my-profile-name", out var credentials))
return credentials;
else
{
//I tried adding this to support running on EC2
var defaultCreds = FallbackCredentialsFactory.GetCredentials();
return defaultCreds == null ? throw new Exception("Failed to find the profile") : defaultCreds;
}
}
Я пытался изменить код, но теперь получаю исключение

AmazonServiceException: невозможно получить учетные данные безопасности IAM от
Служба метаданных экземпляра EC2.

Кроме того, я подумал, что мне не нужно запускать «aws configure» на моем экземпляре EC2, но Я не уверен.
Я не могу найти нужную информацию о том, как мне нужно адаптировать свой код для работы на EC2 и заставить его работать.
В идеале мне нужна код для обработки обоих сценариев.
Будем благодарны за любую помощь и рекомендации.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ole-on-ec2

Вернуться в «C#»