remove default headers from lambda@edge viewer request

0

I built a lambda@edge that I use to authenticate calls on viewer request. If a request is rejected I want to play back as few information as possible to the caller and therefore want to remove some headers indicating I am using AWS. I found a way to override headers simply by returning a new value for that header, see server in the example.

But how can I remove the x-amz-cf-id or x-cache headers to not indicate the backend is running on AWS?

import json

def lambda_handler(event, context):

    response = event["Records"][0]["cf"]["request"]
    headers = response["headers"]

    #check authentication... omitted
    #....
    
    response = {
        'status': status,
        'statusDescription': status_desc,
        'headers': {
                    'server': [
                        {
                            'key': 'server',
                            'value': 'x'
                        }
                    ]
                }
    }

    return response
AWS
Marco
asked 2 years ago1143 views
1 Answer
1
Accepted Answer

No, you can't remove those headers. Even if you could, the IP addresses would still identify it as a CloudFront source.

profile pictureAWS
EXPERT
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions