gpt4 book ai didi

amazon-web-services - 如何使用 AWS CLI 设置加密的 Lambda 环境变量?

转载 作者:行者123 更新时间:2023-12-02 00:47:43 27 4
gpt4 key购买 nike

我在本地有 AWS Lambda 环境变量,想要使用特定的 KMS key 加密并分配给 Lambda 函数。

我以为是这样的

aws lambda update-function-configuration --function-name functionName --cli-input-json file://config.json

config.json

{
"Environment": {
"Variables": {
"var01": "Variable one",
"var02": "Variable two"
}
},
"KMSKeyArn": "arn:aws:kms:us-west-1:09238573743:key/...."
}

会完成这个。但变量最终未加密。 “KMSKeyArn”似乎只用于解密(例如在函数的处理程序中使用 boto3.client('kms').decrypt)。

我如何使用 AWS CLI 获取本地(未加密)值(理想情况下在 JSON 上指定),并使用特定的 KMS key 将它们分配为 Lambda 函数环境变量的加密值(并确保将相同的 key 分配给该函数供 boto3.client('kms').decrypt 使用吗?

如果可能的话,我还想确保我的变量永远不会以纯文本形式传输(也就是说,加密发生在本地)。

最佳答案

与 AWS 控制台不同,AWS 控制台是为跨各种服务进行多次调用而构建的,AWS CLI 进行一次调用。这就是为什么 $ aws lambda update-function-configuration 不会加密我们的变量。

因此,为了完成这个,我们只需要两个命令:

$ aws kms encrypt --key-id **** --plaintext "Variable one"

然后从结果中取出密文,作为变量:

$ aws lambda update-function-configuration --function-name functionName --kms-key-arn **** --environment Variables={var01=XXXXXXXXX}

-- 编辑:

我们可以在 aws lambda update-function-configuration 命令的参数中设置的 key 用于静态加密。 (如在控制台中)

对于环境变量解密,无需告诉 lambda 它必须使用哪个 key ,因为此信息位于密文中。但我们必须确保 lambda 可以访问 key ,方法是在 AWS IAM 中将 lambda 的角色设置为 key 的用户。

关于amazon-web-services - 如何使用 AWS CLI 设置加密的 Lambda 环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com