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
gefragt vor 2 Jahren1158 Aufrufe
1 Antwort
1
Akzeptierte Antwort

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

profile pictureAWS
EXPERTE
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen