postman AWS用户无权访问此资源

ds97pgxw  于 2023-03-18  发布在  Postman
关注(0)|答案(2)|浏览(190)

我是AWS API Gateway和Lambda的新手,我想知道是否有人可以帮助我?

  • 我使用Auth 0生成了一个访问令牌,它对第一个lambda函数调用返回所有正确JSON数据的 Postman 起作用
  • 当我调用postman上的第二个lambda函数时,它说用户没有被授权使用这个资源:

“消息”:“用户无权访问此资源”
以及

403 Forbidden

这只持续了整整5分钟,然后我可以调用 Postman 上的第二个函数,但不能再调用第一个函数,并出现同样的错误。
你知道我该怎么解决这个问题吗
谢谢!

pu82cl6c

pu82cl6c1#

我也遇到了这个问题。原来我的授权者已经启用了缓存,这意味着它将重用以前生成的相同策略。该高速缓存的TTL默认为5分钟。
在 Jmeter 板上,您可以访问授权者并禁用缓存以阻止这种情况发生,或者更改正在生成的策略以允许所有资源。
希望这有帮助!

col17t5w

col17t5w2#

很可能是lambda授权程序上的缓存。lambda授权程序上的默认TTL为300秒(5分钟),最大值为1小时。因此,如果您等待5分钟,问题可能会清除。要刷新该高速缓存,您可以将ReauthorizeEvery设置为0(秒)并重新部署,以便在解决底层问题之前始终看到实际响应(未缓存),然后将TTL重置为300秒。
AWS文档:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizationidentity.html
AWS SAM/云形成模板.yaml:

myAPI:
    Type: AWS::Serverless::Api
    Properties:
      Description: Some API description
      Name: someAPIName
      EndpointConfiguration:
        Type: REGIONAL
      StageName: !Ref EnvType # dev or prod
      Auth:
        DefaultAuthorizer: AWS_IAM
        Authorizers:
          AuthFunction:
            FunctionPayloadType: REQUEST
            FunctionArn: !GetAtt AuthFunction.Arn # your auth lambda
            Identity:
              Headers: # amend as you require
                - username
                - password
              ReauthorizeEvery: 0

相关问题