我正在为 AWS API Gateway 编写自己的 AWS 自定义 Lambda 授权程序。我需要允许以下 URL:
/api/v1/get?detail=yes
但在同一政策中,我也想拒绝以下 URL。
/api/v1/get?detail=no
我查看了政策条件,但找不到将 URL 参数detail
放入条件的方法。
有谁知道如何做到这一点的详细信息?
我正在为 AWS API Gateway 编写自己的 AWS 自定义 Lambda 授权程序。我需要允许以下 URL:
/api/v1/get?detail=yes
但在同一政策中,我也想拒绝以下 URL。
/api/v1/get?detail=no
我查看了政策条件,但找不到将 URL 参数detail
放入条件的方法。
有谁知道如何做到这一点的详细信息?
您可以通过以下方式获取 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')