[{"data":1,"prerenderedAt":73},["ShallowReactive",2],{"pattern-cloudfront-lambda-edge-apigw-cdk":3},{"id":4,"title":5,"architectureURL":6,"cleanup":7,"contributors":10,"deploy":12,"description":15,"extension":16,"framework":17,"gitHub":18,"highlight":6,"introBox":24,"language":31,"level":32,"meta":33,"patternArch":34,"resources":59,"s3URL":6,"services":6,"stem":67,"testing":68,"videoId":6,"__hash__":72},"patterns\u002Fpatterns\u002Fcloudfront-lambda-edge-apigw-cdk.json","Secure Amazon API Gateway requests with signature v4 using AWS Lambda@Edge",null,{"text":8},[9],"Delete the stack: \u003Ccode>cdk delete\u003C\u002Fcode>.",[11],"content\u002Fcontributors\u002Fcorneliu-croitoru.json",{"text":13},[14],"cdk deploy","Secure API Gateway requests with signature v4 using Lambda@Edge","json","AWS CDK",{"template":19},{"projectFolder":20,"repoURL":21,"templateURL":22,"templateFile":23},"cloudfront-le-apigw-cdk","https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-patterns\u002Ftree\u002Fmain\u002Fcloudfront-le-apigw-cdk","serverless-patterns\u002Fcloudfront-le-apigw-cdk","lib\u002Fcloudfront-le-apigw-cdk-stack.ts",{"headline":25,"text":26},"How it works",[27,28,29,30],"* When accessing the CloudFront distribution domain name the Lambda@Edge is triggered and signs the request with AWS Signature Version 4.","* The HTTP API is secured by using IAM authorization.","* The role attached to the Lambda@Edge has the permission to invoke the API, so by signing the request an unauthenticated user is able to get the response from the backend Lambda through the HTTP API.","* This pattern demonstrates how to secure an HTTP API but with small changes in Lambda@Edge it can be adapted to secure other AWS services.","TypeScript","200",{},{"icon1":35,"icon2":40,"icon3":44,"icon4":48,"line1":51,"line2":55,"line3":57},{"x":36,"y":37,"service":38,"label":39},20,45,"cloudfront","CloudFront",{"x":41,"y":37,"service":42,"label":43},40,"lambda","Lambda@Edge",{"x":45,"y":37,"service":46,"label":47},60,"apigw","HTTP API",{"x":49,"y":37,"service":42,"label":50},80,"AWS Lambda",{"from":52,"to":53,"label":54},"icon1","icon2","",{"from":53,"to":56,"label":54},"icon3",{"from":56,"to":58,"label":54},"icon4",{"bullets":60},[61,64],{"text":62,"link":63},"Serving SSE-KMS encrypted content from S3 using CloudFront","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fnetworking-and-content-delivery\u002Fserving-sse-kms-encrypted-content-from-s3-using-cloudfront\u002F",{"text":65,"link":66},"How to Use Lambda@Edge and JSON Web Tokens to Enhance Web Application Security","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fnetworking-and-content-delivery\u002Fauthorizationedge-how-to-use-lambdaedge-and-json-web-tokens-to-enhance-web-application-security\u002F","patterns\u002Fcloudfront-lambda-edge-apigw-cdk",{"headline":69,"text":70},"Testing",[71],"See the GitHub repo for testing instructions.","z5NwkdtwszJWA6Q_wcqcLNF-5MEvjYjvhh7Ip5h_F7E",1779705307793]