簡體   English   中英

如何解密AWS Lambda環境變量

[英]How to decrypt AWS Lambda Environment Variables

當我'加密'環境變量時,我正在使用Lambda控制台上提供的示例代碼。

我創建了一個密鑰,並賦予了角色“kms:Decrypt”權限。

嘗試“解密”變量時,我的函數超時,但在未加密時運行正常。 日志不會提供任何錯誤。

以下是用於解密的代碼:

private String decryptKey(String keyName) {
    byte[] encryptedKey = Base64.decode(keyName);
    AWSKMS client = AWSKMSClientBuilder.defaultClient();
    DecryptRequest request = new DecryptRequest()
     .withCiphertextBlob(ByteBuffer.wrap(encryptedKey));
    ByteBuffer plainTextKey = client.decrypt(request).getPlaintext();
    return new String(plainTextKey.array(), Charset.forName("UTF-8"));
}

它被稱為這樣......

return decryptKey(System.getenv(variableName));

我按原樣使用了這段代碼,假設它從Lambda中運行,'defaultClient'知道區域,帳戶等。

編輯:

這些是日志行:

START RequestId:92419f62-fa84-11e6-876d-99aa85e9b481版本:$ LATEST END RequestId:92419f62-fa84-11e6-876d-99aa85e9b481 REPORT RequestId:92419f62-fa84-11e6-876d-99aa85e9b481 Duration:15001.41 ms> Billed Duration:15000 ms內存大小:512 MB最大內存:64 MB
2017-02-24T11:30:13.908Z 92419f62-fa84-11e6-876d-99aa85e9b481任務在15.00秒后超時

如果我在沒有EncryptionHelpers的情況下運行,但仍嘗試並解密變量,我得到了這個,這是預期的:

{“errorMessage”:“輸入應該以4個字節的多個編碼但是找到:13”,“errorType”:“java.lang.IllegalArgumentException”,“stackTrace”:[“com.amazonaws.util.Base64Codec.decode (Base64Codec.java:198)“,”com.amazonaws.util.Base64.decode(Base64.java:89)“,”scripts.Environment.decryptKey(Environment.java:56)“,”scripts.Environment.getEnvVariable( Environment.java:38)“,”scripts.Environment。(Environment.java:30)“,”scripts.CreateNewDatabase.createNewConfigDatabase(CreateNewDatabase.java:33)“,”sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)“ “sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)”, “sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)”,“java.lang.reflect.Method.invoke(Method.java: 498)“]}

kms.decrypt()是api調用,需要互聯網,你的問題似乎是連接到你的lambda的互聯網的問題。

當然,你應該查看日志。 在這種情況下,你會發現類似的東西

啟動新的HTTPS連接(1):kms.eu-west-1.amazonaws.com

要解決此問題,您應該將lambda關聯到可以訪問Internet的子網 -
具有NAT網關的私有子網。

您可以在本文檔的 “Internet訪問Lambda函數”部分中找到更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM