AWS Cognito IAM: InvalidSmsRoleTrustRelationshipException: у роли нет доверительных отношений, позволяющих Cognito принять на себя роль - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь создать пул пользователей Cognito с помощью лямбда-функции, используя Go lang.

Роль IAM, политика IAM и политика доверительных отношений успешно создаются.

Нокогда я пытаюсь создать пул Cognito, я получаю сообщение об ошибке:

InvalidSmsRoleTrustRelationshipException: Role does not have a trust relationship allowing Cognito to assume the role.

Политика отношений доверия

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cognito-idp.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Вызов API создания пула пользователейкак показано ниже -

newUserPoolData := &cognitoidentityprovider.CreateUserPoolInput{
        PoolName:               aws.String(poolName),
        Policies:               &userPoolPolicyType,
        AutoVerifiedAttributes: autoVerifiedAttributes,
        UsernameAttributes:     userNameAttributes,
        SmsConfiguration:       &smsConfingType,
    }

Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 14 июня 2019

Политика роли службы должна иметь путь service-role.Например, арн должен быть в формате arn:aws:iam::{ACCOUNT_ID}:role/service-role/{role_name}

Доверительные отношения должны быть:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "cognito-idp.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "{External ID}"
        }
      }
    }
  ]
}

И встроенная политика роли должна быть

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sns:publish"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...