2015-09-16 5 views
4

Je viens de commencer à utiliser les services AWS, en particulier AWS Lambda. Est-il possible d'utiliser le service AWS KMS à partir du code Lambda (Java). Je voudrais utiliser KMS pour déchiffrer un secret externalisé chiffré (lire à partir d'une propriété). Mon code Lambda est en Java. Merci d'avance.Comment utiliser AWS KMS dans AWS lambda

+1

Cela a-t-il été bon pour vous? J'essaie de faire la même chose, mais je continue à rester coincé sur deux choses: 1. Impossible d'inclure un mot de passe crypté au moment de l'exécution. La seule solution que j'ai trouvée est de créer des répertoires sources supplémentaires et de les inclure dans Leiningen en fonction du profil. 2. Lorsque j'appelle KMS à partir de lambda, ma fonction se bloque et expire (peu importe combien de temps je définis le délai d'expiration) – VincentDM

Répondre

3

Oui, cela devrait fonctionner correctement.

J'ai récemment porté une API RESTful Node.js sur Lambda et je n'ai pas eu à modifier de code KMS.

Vous devrez juste vous assurer que le rôle de votre fonction Lambda s'exécute sous la clé que vous avez configurée via AWS pour l'utiliser avec les appels encrypt/decrypt.

+0

pouvez-vous poster un exemple de fragment de code? – ZZzzZZzz

3

En Python:

with open('encrypted_pem.txt', 'r') as encrypted_pem: 
    pem_file = encrypted_pem.read() 

kms = boto3.client('kms', region_name=REGION) 
return kms.decrypt(CiphertextBlob=b64decode(pem_file))['Plaintext'] 

Taken de AWS Labs Chef cleanup source.

Le README of that repo explique comment crypter le fichier PEM en premier lieu à l'aide de l'AWS KMS CLI.