【问题标题】:Attach IAM Policy to SNS Topic将 IAM 策略附加到 SNS 主题
【发布时间】:2021-08-25 20:40:32
【问题描述】:

我正在尝试将消息从未加密的 SNS 主题传递到 this guide 之后的加密 SQS 队列。我能够完成“为 AWS 服务配置 KMS 权限”步骤,但在“为生产者配置 KMS 权限”时遇到问题 " 步骤。我创建了 IAM 角色,但是将此角色附加到我的 SNS 主题是我特别困惑的地方。以下是我自己的研究无法回答的一些问题:

  • 能否将 IAM 角色附加到特定项目(SNS 主题、SQS 队列等...)?如果没有,还有什么其他方式可以授予特定项目的权限?
  • 说明中提到“生产者”时,是指 SNS 主题还是拥有该 SNS 主题的 AWS 账户?

非常感谢任何和所有帮助。

编辑

这是我当前的 AWS KMS 密钥策略:

{
    "Version": "2012-10-17",
    "Id": "key-consolepolicy-3",
    "Statement": [
        {
            "Sid": "Allow administration of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::${aws_account_id}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow SNS to use KMS",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}

每当我将以下语句添加到 Statement 列表中的 KMS 密钥策略时,我都会收到错误消息“MalformedPolicyDocumentException - 策略包含没有主体的语句”:

{
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "${kms_customer_managed_key_arn}"
},
{
    "Effect": "Allow",
    "Action": [
        "sqs:SendMessage"
    ],
    "Resource": "${sqs_queue_arn}"
}

【问题讨论】:

  • 进展如何?还是不清楚制作人是什么?

标签: amazon-web-services amazon-iam amazon-sqs amazon-sns


【解决方案1】:

如果没有,还有什么其他方式可以授予特定项目的权限?

link 的许可附加到您的KMS CMK key policy

当说明中提到“生产者”时,是指 SNS 主题还是拥有该 SNS 主题的 AWS 账户?

生产者是发送消息的任何人或任何事物。它可以是 lambda 函数、ec2 实例或 IAM 用户/角色。在这种情况下,您将生产者权限授予sendMessage 并使用 KMS 密钥。对于 lambda,它将处于 lambda 执行角色中,例如,它将处于实例角色中。

【讨论】:

  • 将“为生产者配置 KMS 权限”部分中的权限附加到 KMS CMK 密钥策略时,我收到此错误:“MalformedPolicyDocumentException - 策略包含没有主体的语句。”如果我将 SNS 主题的 ARN 添加为主体,我会收到以下错误:“MalformedPolicyDocumentException - 策略包含具有一个或多个无效主体的语句。”该部分声明“将以下语句添加到生产者的 IAM 策略”,在本例中为 SNS 主题,但我仍然无法将这些权限附加到我的 SNS 主题。有什么建议吗?
  • @dmoini 您没有显示任何政策。我建议对您尝试使用的相关政策提出新问题。
  • 我刚刚用我当前的政策更新了这个问题。这些信息会有帮助吗?
  • @dmoini 抱歉,将现有问题完全更改为新问题并不是一个好习惯。您询问有关生产者和 IAM 角色的解释。现在您将问题更改为一个全新的问题。
  • 可以找到新问题here。有时间可以看看吗?
猜你喜欢
  • 2017-05-17
  • 1970-01-01
  • 2017-12-14
  • 2020-09-01
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
相关资源
最近更新 更多