【发布时间】:2021-11-18 23:25:36
【问题描述】:
我正在尝试为我的 SQS 队列创建 CMK,以允许将加密的 SNS 消息发送到我的加密队列。创建 cmk 后,我会将其设置为队列中的“kms_master_key_id”。
resource "aws_kms_key" "mycmk" {
description = "KMS Key"
deletion_window_in_days = 10
policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "*"
}]
}
POLICY
}
这是抛出一个错误:
my_role_arn is not authorized to perform: kms:CreateKey on resource: *
我已经仔细检查以确保允许该操作并且它是允许的。
我需要更新政策中的“资源”吗?如果是的话怎么办?
我用来运行它的角色具有以下权限:
Effect = "Allow"
Action = [
"kms:CreateAlias",
"kms:CreateGrant",
"kms:CreateKey",
"kms:DeleteAlias",
"kms:DisableKey",
"kms:EnableKey",
"kms:PutKeyPolicy",
"kms:RevokeGrant",
"kms:ScheduleKeyDeletion",
"kms:TagResource",
"kms:UntagResource",
"kms:UpdateAlias",
"kms:UpdateKeyDescription"
]
Resource = [
"arn:aws:kms:${local.aws_region}:${var.aws_account_id}:key/*",
"arn:aws:kms:${local.aws_region}:${var.aws_account_id}:alias/*"
]
【问题讨论】:
-
您用于运行 terraform 的用户无权创建与显示的策略无关的密钥。您使用的是什么用户/角色,他们有什么权限?
-
我用我拥有的权限更新了问题
-
我认为您需要资源 * 而不是特定的 CreateKey。
-
抱歉,还在学习 AWS。你能详细说明你的评论吗?
标签: amazon-web-services terraform