Я использую .Net Core 2.0 / консольное приложение и довольно успешно использую AWS SDK для большинства возможностей AWS, кроме AWS KMS API.
Ни один вызов метода AWS KMS API не выполнен успешно. К сожалению, я не могу захватить исключение.
Консольное приложение завершает работу после вызова API AWS KMS: UpdateKeyDescriptionResponse updateKeyDescriptionResponse = await kmsClient.UpdateKeyDescriptionAsync( updateKeyDescriptionRequest);
Я попытался использовать учетные данные пользователя root и пользователя IAM. Оба не сработали. Я использовал похожий подход к API DynamoDB, IoT API, и все они были успешными. Кто-нибудь может указать, что мне не хватает?
См. Код ниже:
public async Task<bool> ImportKeyIntoKMS(){
try{
var builder = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.Development.json");
Configuration = builder.Build();
var options = Configuration.GetAWSOptions();
var chain = new CredentialProfileStoreChain(options.ProfilesLocation);
Amazon.Runtime.AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials(options.Profile, out awsCredentials)){
// Use awsCredentials
}
AmazonKeyManagementServiceConfig clientConfig = new AmazonKeyManagementServiceConfig();
clientConfig.RegionEndpoint = options.Region;
var kmsClient = new AmazonKeyManagementServiceClient(awsCredentials, clientConfig);
String keyId = "arn:aws:kms:us-east-2:1502100XXXXX:key/a10ef235-0d07-47ab-9e8a-c0c7e092b5cc";
UpdateKeyDescriptionRequest updateKeyDescriptionRequest = new UpdateKeyDescriptionRequest();
updateKeyDescriptionRequest.Description = "Test Description";
updateKeyDescriptionRequest.KeyId = keyId;
UpdateKeyDescriptionResponse updateKeyDescriptionResponse = await kmsClient.UpdateKeyDescriptionAsync( updateKeyDescriptionRequest);
}
catch(AmazonClientException ex){
string test = ex.StackTrace + ex.InnerException;
}
return isValueSaved;
}