【问题标题】:How to create an IAM Policy for SQS queues for a specific Cognito Identity如何为特定 Cognito 身份的 SQS 队列创建 IAM 策略
【发布时间】:2018-11-14 02:58:54
【问题描述】:

我正在尝试创建要应用于 SQS 队列的 IAM 策略。该策略应将对队列的访问限制为单个 Cognito 联合身份。

我找到了来自亚马逊的 this 参考资料,了解如何实现这一点,但在将策略应用到 SQS 队列时遇到问题。

这是我尝试应用的政策。

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-west-2:604080725100:Test2.fifo/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid1528133390193",
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "SQS:*",
      "Condition": {
        "StringEquals": {
            "cognito-identity.amazonaws.com:aud": "us-east-1:ff1b33f4-7f66-47a5-b7ff-9696b0e1fb52",
            "cognito-identity.amazonaws.com:sub": ["us-east-1:4a6d7e43-4522-41fb-9248-b5b79933b8e9"]
        }
      }
    }
  ]
}

用于编辑策略的在线 UI 显示在审核屏幕中:

Allow   None    
All SQS Actions (SQS:*)
StringEquals
cognito-identity.amazonaws.com:aud: "us-east-1:ff1b33f4-7f66-47a5-b7ff-9696b0e1fb52"
cognito-identity.amazonaws.com:sub: "us-east-1:4a6d7e43-4522-41fb-9248-b5b79933b8e9"

一旦我按下应用,就会出现以下错误:

Failed to save changes to the policy document. Reason: com.amazonaws.services.sqs.model.AmazonSQSException: We encountered an internal error. Please try again.

我不确定该政策有什么问题。我正在寻找任何帮助来修复策略或实现将 SQS 队列限制为单个 Cognito 身份的不同策略。

【问题讨论】:

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


    【解决方案1】:

    不幸的是,SQS 只支持subset of the condition keys,而 cognito 用户 ID 不是其中之一。我已经阅读了article,它通过创建所有用户都可以读取但实际上无法猜测的随机队列名称来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2016-12-17
      • 2019-01-26
      • 1970-01-01
      • 2012-05-18
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      相关资源
      最近更新 更多