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
質問済み 2年前1157ビュー
1回答
1
承認された回答

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

profile pictureAWS
エキスパート
回答済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ