AWS lambda 和 kms 密钥别名

Posted

技术标签:

【中文标题】AWS lambda 和 kms 密钥别名【英文标题】:AWS lambda and kms key aliases 【发布时间】:2022-01-01 00:09:05 【问题描述】:

我有一个使用 kms 的 lambda 函数

 
      "Sid": "KMSDecryption",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": [
        "$KMSArn"
      ]
    

最初我在 terraform 中将其设置为仅使用别名,但这不起作用我必须引用“arn”以允许 lambda 访问,这是有意义的。

....
.....
  policy_file = templatefile("lambda_policy.json", 
    KMSArn = data.aws_kms_alias.key_alias.target_key_arn
  )


data "aws_kms_alias" "key_alias" 
  name = "alias/kms_test"

我的问题是,现在 lambda 策略在其策略中包含我在控制台中看到的“arn”。旋转密钥时会发生什么,AWS 是否还会更新 lambda 上的 arn 以指向新密钥...

有没有办法在 lambda 策略中引用别名以使其无关紧要?

【问题讨论】:

【参考方案1】:

您需要在策略中引用 ARN。你不应该担心旋转。来自documentation:

密钥轮换仅更改 KMS 密钥的密钥材料,即 用于加密操作的加密材料。知识管理系统 key 是同一个逻辑资源,不管有没有或者有多少 次其关键材料的变化。 KMS 密钥的属性不 如下图所示。

【讨论】:

以上是关于AWS lambda 和 kms 密钥别名的主要内容,如果未能解决你的问题,请参考以下文章