oro*_*ome 1 encryption amazon-web-services aws-cli aws-lambda
我在本地拥有AWS Lambda环境变量,希望使用特定的KMS密钥加密并分配给Lambda函数.
我以为有点像
aws lambda update-function-configuration --function-name functionName --cli-input-json file://config.json
Run Code Online (Sandbox Code Playgroud)
与config.jsonas
{
"Environment": {
"Variables": {
"var01": "Variable one",
"var02": "Variable two"
}
},
"KMSKeyArn": "arn:aws:kms:us-west-1:09238573743:key/...."
}
Run Code Online (Sandbox Code Playgroud)
会做到这一点.但变量最终没有加密."KMSKeyArn"似乎只用于解密(例如在函数的处理程序中boto3.client('kms').decrypt).
如何使用AWS CLI获取理想情况下在JSON上指定的本地(未加密)值,并使用特定的KMS密钥将它们指定为Lambda函数环境变量的加密值(并确保将相同的密钥分配给函数以供boto3.client('kms').decrypt?
我还想确保我的变量永远不会以纯文本形式传输(即加密发生在本地),如果可能的话.
与构建为可以跨越各种服务的多个调用而构建的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命令参数中设置的关键是静态加密.(如在控制台中)
对于环境变量解密,不需要告诉lambda它必须使用哪个密钥,因为此信息在密文上.但是我们必须确保le lambda可以访问密钥,方法是在AWS IAM中设置lambda作为密钥用户的角色.
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |