0

我正在为 AWS API Gateway 编写自己的 AWS 自定义 Lambda 授权程序。我需要允许以下 URL:

/api/v1/get?detail=yes

但在同一政策中,我也想拒绝以下 URL。

/api/v1/get?detail=no

我查看了政策条件,但找不到将 URL 参数detail放入条件的方法。

有谁知道如何做到这一点的详细信息?

4

1 回答 1

0

您可以通过以下方式获取 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')

于 2019-04-10T14:52:33.213 回答