Ошибка: «Условия должны предшествовать поставщику».по созданию роли в AWS CDK - PullRequest
1 голос
/ 28 сентября 2019

Я получаю сообщение об ошибке «Условия должны предшествовать поставщику».при попытке использовать AWS CDK для создания новой роли.

export const configureIAMRole = (scope: Construct) => {
  const roleAction = 'sts:AssumeRoleWithWebIdentity';
  const iamRole = new Role(scope, 'IAMRole', {
    assumedBy: new FederatedPrincipal(
      'cognito-identity.amazonaws.com',
      {
        StringEquals: { 'cognito-identity.amazonaws.com': identityPool.ref },
        'ForAnyValue:StringLike': { 'cognito-identity.amazonaws.com:amr': 'authenticated' },
      },
      roleAction
    ),
  });
  return iamRole;
};

Здесь есть документы здесь , за которыми я попытался добавить префикс поставщика, например "aws: StringEquals".Это привело к другим ошибкам, например, неверный синтаксис.

Предполагается использовать Cognito для аутентификации: пользователь и пароль, а также федеративные удостоверения, например, Google.Заранее спасибо за подсказки.

1 Ответ

1 голос
/ 30 сентября 2019

Вот пример приложения роли iam с пулом удостоверений:

https://github.com/cloudshiftstrategies/aws-cdk-examples/blob/master/iam-role-typescript-app

Похоже, вы забыли добавить: aud до конца 'cognito-identity.amazonaws.com'в строковых уравнениях.Должно быть

'cognito-identity.amazonaws.com:aud': identityPool.ref
...