AWS Custom Lambda Authorizer: разрешить и запретить на основе параметров URL с одним и тем же ведущим URL

Я пишу свой собственный AWS Custom Lambda Authorizer для AWS API Gateway. Мне нужно разрешить следующий URL:

/api/v1/get?detail=yes

но в той же политике я также хочу запретить следующий URL.

/api/v1/get?detail=no

Я просмотрел условие политики и не могу найти способ поместить параметр URL detail в условие.

Кто-нибудь знает подробности, как это сделать?


person user1187968    schedule 09.04.2019    source источник


Ответы (1)


Вы можете получить параметр URL следующим образом: event["queryStringParameters"]['detail']

Итак, код должен выглядеть примерно так:

def auth(event, context):
 detail = event["queryStringParameters"]['detail']
 if detail == 'yes':
  return {
        'principalId': principal_id,
        'policyDocument': {
            'Version': '2012-10-17',
            'Statement': [
                {
                    "Action": "execute-api:Invoke",
                    "Effect": effect,
                    "Resource": resource

                }
            ]
        }
    }
 else:
   raise Exception('Unauthorized')

person BTL    schedule 10.04.2019