0

我正在尝试执行以下操作:i)通过 Cognito 联合身份验证用户(映射到 CognitoPool)。角色 R1 被分配作为此过程的一部分。ii) A 想为这个令牌分配一个新的角色 R2。在分配角色 R2 时,我收到以下错误:“CustomRoleARN:arn:aws:iam::123456789012:role/R2 is not assumable for this token”

我必须这样做,因为我可能必须根据某些条件创建 R2 运行时。

R2 信任关系:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/R1"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

附加到 R1 的策略(不是信任关系):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket1"
            ]
        },
        {
            "Action": [
                "s3:*"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket1/*"
            ]
        },
        {
          "Effect":"Allow",
          "Action":"sts:AssumeRole",
          "Resource":"*"
        }
    ]
}

请让我知道我错过了什么。

提前感谢您的关注。

4

1 回答 1

0

我脑死了 在这种情况下应该调用 sts.GetFederationToken() 。我的要求是为已验证的联合用户分配不同的策略。

我试图在已验证的用户上调用 cognito.getCredentialsForIdentity()。我混合了两种解决方案。这就是我收到错误的原因

谢谢

于 2017-08-26T08:58:11.617 回答