【问题标题】:Assign IAM role depending on cognito user-sub (userId) using IAM Condition使用 IAM 条件根据 cognito user-sub (userId) 分配 IAM 角色
【发布时间】:2017-04-21 07:28:26
【问题描述】:

我很难根据 cognito-identity.amazonaws.com:sub 键使用 Condition 元素为用户分配 IAM 角色。

在使用 AWS Cognito 设置身份池时,您可以指定一个«Authenticated role»,我选择了 app-authenticated 角色。

我有两个 IAM 角色:

应用认证

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "eu-central-1:fa078075-9622-4f0d-8789-700105a9e612"
        },
        "StringNotEquals": {
          "cognito-identity.amazonaws.com:sub": "eu-central-1:555540a6-cd49-44b2-bbd8-02cfa73b3510"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}

app-authenticated_admin

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "eu-central-1:fa078075-9622-4f0d-8789-700105a9e612",
          "cognito-identity.amazonaws.com:sub": "eu-central-1:555540a6-cd49-44b2-bbd8-02cfa73b3510"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}

问题是,无论谁登录,他总是获得 app-authenticated 角色,也是具有子 «555540a6-cd49-44b2-bbd8-02cfa73b3510» 的一个用户(从 userPool 复制 - > users -> user detail -> sub) 我希望获得 app-authenticated_admin 角色。有没有人期待类似的东西,或者我错过了这样一个简单场景的一些基本概念?

【问题讨论】:

    标签: amazon-iam amazon-cognito


    【解决方案1】:

    在未经身份验证的用户中尝试使用 Deny 而不是 Allow。 您也尝试过用户池中的用户组。

    【讨论】:

    • 感谢您将我推向正确的方向。我最终使用了新的组功能(重要:不要忘记在联合身份管理控制台的“身份验证提供程序”部分中定义“从令牌中选择”,您可以在其中链接您的认知用户池。无需在 IAM 中进行额外配置。
    猜你喜欢
    • 2019-05-10
    • 2021-02-12
    • 2020-11-08
    • 1970-01-01
    • 2019-07-08
    • 2016-07-04
    • 2021-08-18
    • 2018-10-08
    • 2021-08-02
    相关资源
    最近更新 更多