Jim_Mcdonalds
Jim_Mcdonalds

Reputation: 496

Serverless Lambda Resource Based Policy - All Principles

I am trying to define in the serverless YAML file with a resource based policy that ** allows any rule from EventBridge ** to invoke the function; this is due to in my application, EventBridge rules are dynamically generated.

In the AWS's console, it does not allow create a Lambda permission's EventBridge with wildcard.

The following was my attempt but it did not generate any resource policy when deployed:

provider:
  resourcePolicy: ${self:custom.resourcePolicies.test}

... other things

custom:
  resourcePolicies:
    test:
      - Effect: Allow
        Principal: "*"
        Action: lambda:InvokeFunction

... other things

Guidance appreciated.

Upvotes: 4

Views: 1422

Answers (1)

cymruu
cymruu

Reputation: 3008

I found an answer in this post by henhal on serverless forums.

Basically you have to create new resource of AWS::Lambda::Permission type.

resources:
  Resources:
    InvokeGenerateReportLambda:
      Type: AWS::Lambda::Permission
      Properties:
        Action: lambda:invokeFunction
        FunctionName: ${env:LAMBDA_FUNCTION_ARN}
        Principal: events.amazonaws.com
        SourceArn: ${env:RULE_ARN} #can include wildcards

Upvotes: 3

Related Questions