在创建Lambda函数时,通过GUI控制台加密环境变量并不难。我只是输入密钥值对,然后打开加密帮助程序,输入我的KMS密钥的ARN。这允许我加密值,所以它在被发送到存储之前被加密,如上图所示。
我要完成的是同样的事情,但假设您不是在GUI控制台中部署Lamba函数,而是通过CloudFormation模板,该模板将部署在CLI中。
下面是我在CloudFormation模板中指定相关参数的方法:
"EnvironmentVariable" : {
"Type" : "String",
"Default" : "test",
"Description" : "Environment Variable"
},
"KmsKeyArn" : {
"Type" : "String",
"Description" : "KMS Key ARN if environment variables are encrypted"
},
"Environment" : {
"Variables" : {
"SomeVariable": {
"Ref" : "EnvironmentVariable"
}
}
},
"KmsKeyArn" : { "Ref" : "KmsKeyArn" },
在CLI中运行该函数后,我没有得到任何错误,但当我在控制台中打开Lambda函数检查结果时,我看到如下所示:
我哪里错了?谢谢你的真知灼见。
$aws kms Encrypt--key-id$key_id--plaintext secretpassword--output text--query CipherTextBlob
AQICAHJZ+JLI8KKMIVC++NHNBCO0xx3LFAACFSJH8YJIG3YR2AFPIYKCP3XVOEDLBITMWIEJAAAABDBQBGKQHKIG9W0BBWAGXTBBAGEAMFYGCSQGSIB3DQEHATAEBGLGHKGBZQMEAS4WEQQMHAI9VKA2KDU5GD+QAGEQGCNWW4F3FB7PTWMA2PPSKJHUL0DJGEXIE5ODCR3ZSH7TLN5X381JUPG0LA==
将其保存在CF模板中,如下所示
"environment_variables": {
"SECRET_DATA": "AQICAHjZ+JlI8KKmiVc++++NhnBcO0xX3LFAaCfsjH8Yjig3Yr2AFPIyKCp3XVOEDlbiTMWiejAAAAbDBqBgkqhkiG9w0BBwagXTBbAgEAMFYGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMhai9vkA2KdU5gd+qAgEQgCnWW4F3fb7pTwmA2ppskJhUl0dJGEXIE5oDCr3ZsH7TlN5X381juPg0LA=="
}
3.在Lambda函数内部解密
kms = boto3.client('kms')
response = kms.decrypt(CiphertextBlob=os.environ['SECRET_DATA'].decode('base64'))
secret_data = response['Plaintext']
secret_data
或者尝试此选项:https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-about.html#sysman-paramstore-securestring
我在本地有AWS Lambda环境变量,它们希望用特定的KMS密钥加密并分配给Lambda函数。 我以为
有没有人可以为至少有一个使用KMS密钥加密的环境变量的Lambda发布一个基本的CloudFormation JSON对象,以及创建该密钥的JSON?
我试图在Node.js4.3中运行的AWS Lambda函数中使用加密的环境变量,但是在尝试解密变量时代码挂起。我没有收到任何错误信息,它只是超时。以下是我尝试过的: 我在与Lambda相同的区域中创建了加密密钥,并确保Lambda运行的角色能够访问该密钥。(我甚至尝试过让角色完全控制按键。) 创建Lambda时,我启用加密帮助程序,选择加密密钥,并加密环境变量: 当我从未告诉应用程序使用什么解密
问题内容: 我正在尝试设置脚本以增加Xcode项目的内部版本号。我进行了一次API调用以获取当前的内部版本号,然后我希望对其进行递增,然后将该新的版本号用作环境变量,以便Xcode插件可以使用它。 我安装了EnvInject插件,但是我不知道如何将var从我的shell脚本中获取到环境变量中。 这设置为我需要的值,但是如何将其分配给环境变量,以便以后在工作中访问它? 问题答案: 添加一个构建步骤以
我绝对可以使用一个解决方案来处理它,其中我可以获取当前配置,然后在本地更新env变量,然后推送整个更新的配置,所有这些都通过python代码等,但是,这是唯一的方法吗?或者有没有更简单的方法呢?
AWS CloudFormation模板,包括一个带有敏感环境变量的Lambda函数。我想设置一个KMS密钥并用它加密它们 添加基本的cloudformation来加密密钥,即使使用AWS/Lambda默认加密也可以