Cognito User/Identity Pools as serverless.yml resource defs


Is there any update on the issue? I still want to reference the user pool using the ARN dynamically.


Something that caught me out on this – Cognito Identity Pools cannot have hyphens in the pool name (unlike user pools and many other named elements).

I was getting a regex error when trying to deploy:
1 validation error detected: Value 'XXXXX; at ‘identityPoolName’ failed to satisfy constraint: Member must satisfy regular expression pattern: [\w ]+ (Service: AmazonCognitoIdentity; Status Code: 400;

Removed the hyphens from the name and it deployed without issue:
Type: AWS::Cognito::IdentityPool
IdentityPoolName: ${self:custom.stage}SomeNameIdentityPool
AllowUnauthenticatedIdentities: false
- ClientId:
Ref: CognitoUserPoolClient
‘Fn::GetAtt’: [“CognitoUserPool”,“ProviderName”]



Have a look here, may help you, unless you provide a string to arn, the resource build in serverless assumes you’re trying to reference a lambda function to make the authorization, and can only build that kind of authorizer for you:

I managed to dynamically build an Authorizer reference like this:

Dynamic ARN to Cognito authorizer