Error: "Conditions must be prefaced by a vendor." on creating Role in AWS CDK
Error: "Conditions must be prefaced by a vendor." on creating Role in AWS CDK
我在尝试使用 AWS CDK 创建新角色时收到 "Conditions must be prefaced by a vendor." 错误。
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 进行身份验证:用户和密码,以及联合身份,例如google。
提前感谢您的提示。
这是一个带有身份池的 iam 角色应用示例:
https://github.com/cloudshiftstrategies/aws-cdk-examples/blob/master/iam-role-typescript-app
您似乎忘记将 :aud 添加到 StringEquals 中 'cognito-identity.amazonaws.com' 的末尾。应该是
'cognito-identity.amazonaws.com:aud': identityPool.ref
我在尝试使用 AWS CDK 创建新角色时收到 "Conditions must be prefaced by a vendor." 错误。
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 进行身份验证:用户和密码,以及联合身份,例如google。 提前感谢您的提示。
这是一个带有身份池的 iam 角色应用示例:
https://github.com/cloudshiftstrategies/aws-cdk-examples/blob/master/iam-role-typescript-app
您似乎忘记将 :aud 添加到 StringEquals 中 'cognito-identity.amazonaws.com' 的末尾。应该是
'cognito-identity.amazonaws.com:aud': identityPool.ref