【问题标题】:Error: "Conditions must be prefaced by a vendor." on creating Role in AWS CDK错误:“条件必须以供应商开头。”在 AWS CDK 中创建角色
【发布时间】:2019-09-30 05:10:52
【问题描述】:

我收到“条件必须由供应商开头”的错误消息。尝试使用 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;
};

我尝试遵循文档here 添加供应商前缀,例如“aws:StringEquals”。这导致了其他错误,例如无效的语法。

目的是使用 Cognito 进行身份验证:用户和密码,以及联合身份,例如谷歌。 提前感谢您的提示。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation aws-cdk


    【解决方案1】:

    这是一个带有身份池的 iam 角色应用示例:

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

    您似乎忘记在 StringEquals 中的“cognito-identity.amazonaws.com”末尾添加 :aud。应该是

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

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 2020-09-17
      • 2021-08-02
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      相关资源
      最近更新 更多