在CloudFormation中为IdentityPoolRoleAttachment设置动态RoleMappings密钥,可以通过以下步骤完成:
Resources:
MyIdentityPoolRoleAttachment:
Type: AWS::Cognito::IdentityPoolRoleAttachment
Properties:
IdentityPoolId: <IdentityPoolId>
Roles:
authenticated:
Fn::GetAtt:
- MyAuthenticatedRole
- Arn
unauthenticated:
Fn::GetAtt:
- MyUnauthenticatedRole
- Arn
其中,<IdentityPoolId>
是你创建的 Identity Pool 的 ID。MyAuthenticatedRole
和 MyUnauthenticatedRole
是你创建的 IAM 角色的逻辑名称。
Resources:
MyIdentityPoolRoleAttachment:
Type: AWS::Cognito::IdentityPoolRoleAttachment
Properties:
IdentityPoolId: <IdentityPoolId>
Roles:
authenticated:
Fn::GetAtt:
- MyAuthenticatedRole
- Arn
unauthenticated:
Fn::GetAtt:
- MyUnauthenticatedRole
- Arn
RoleMappings:
- AmbiguousRoleResolution: Deny
IdentityProvider: <IdentityProvider>
Type: Rules
RulesConfiguration:
Rules:
- Claim: <Claim>
MatchType: <MatchType>
RoleARN: <RoleARN>
其中,<IdentityProvider>
是用于身份验证的提供商,例如 "cognito-idp.<region>.amazonaws.com/<userPoolId>"。<Claim>
是用于匹配的声明名称,例如 "cognito:groups"。<MatchType>
是匹配类型,可以是 "Equals" 或 "Contains"。<RoleARN>
是与匹配规则关联的 IAM 角色的 Amazon 资源名称。
请注意,以上示例代码中的 <IdentityPoolId>
、<IdentityProvider>
、<Claim>
、<MatchType>
和 <RoleARN>
都需要根据实际情况进行替换。
关于 AWS Cognito 的更多信息和详细配置,请参考腾讯云的相关产品文档:
领取专属 10元无门槛券
手把手带您无忧上云