Вызовы API AWS KMS из .NetCore не работают - PullRequest
0 голосов
/ 19 ноября 2018

Я использую .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;
}
...