2015-08-03 4 views
0

Je souhaite crypter une chaîne à l'aide des services Amazon KMS. Mes informations d'identification fonctionnent, je peux utiliser le client pour obtenir une liste de clés, mais je reçois un 400 quand j'essaie de chiffrer ma chaîne. C'est mon code (je parie qu'il me manque quelque chose de simple):AccessDenied lors de l'envoi d'une requête Encrypt à Amazon KMS

public static string Encrypt(string str, string awsRegion, string theKey) 
{ 
    var keyId = "arn:aws:kms:" + awsRegion + ":0987654321:key/" + thekey; 

    using (var client = new AmazonKeyManagementServiceClient(AWSId, AWSSK, RegionEndpoint.USEast1))    
    { 
      var req = new EncryptRequest 
      { 
       KeyId = keyId, 
       Plaintext = new MemoryStream(Encoding.UTF8.GetBytes(str)) 
      }; 

      var blob = client.Encrypt(req).CiphertextBlob; 
      return new StreamReader(blob).ReadToEnd(); 
    } 
} 

Quelle pourrait être la cause de ceci? J'ai également mon profil mis en place dans Visual Studio.

Edit 1: Le message d'erreur est:

Erreur faire la demande avec le code d'erreur et AccessDeniedException Http Code de statut BadRequest. Aucune autre information d'erreur n'a été renvoyée par le service .

+0

quel est le message d'erreur associée à la 400? – Mircea

+0

Je vais mettre à jour la question, le message d'erreur associé est: Erreur lors de la demande avec le code d'erreur AccessDeniedException et le code d'état Http BadRequest. Aucune autre information d'erreur n'a été renvoyée par le service. –

Répondre

0

Il s'avère que l'entier compris entre la région et la clé de la chaîne keyId n'est pas arbitraire.

je l'ai eu de travail en obtenant la liste des clés qui sont disponibles pour moi, trouver la clé correspondante et la copie qui entier dans ma chaîne de keyId en place de la 0987654321.

+0

ce numéro est l'identifiant de votre compte :) – Mircea

+0

* facepalm * haha, merci :) –