Lambda function should not be accessible over the public internet

Description

Identify when a Lambda function can be invoked by anyone, either directly or through a Lambda function URL.

Rationale

Giving anonymous users the ability to invoke Amazon Lambda functions can lead to data loss, data exposure, and unexpected AWS billing charges.

Remediation

From the console

Follow the Using resource-based policies for AWS lambda docs to update your AWS lambda function permissions.

From the command line

  1. Run remove-permission with your function name and statement ID.

remove-permission.sh

  aws lambda remove-permission
    --function-name your-function-name
    --statement-id ab-12ab34c5-6a78-9b0c-123d-a123b456c789
  
  1. Run add-permission with your function name, statement ID, principal for the trusted account, and action.

add-permission.sh

  aws lambda add-permission
    --function-name your-function-name
    --statement-id ab-12ab34c5-6a78-9b0c-123d-a123b456c789
    --principal 0123456780123
    --action lambda:InvokeFunction
  
PREVIEWING: rtrieu/product-analytics-ui-changes