我正在尝试移动一套端到端测试,以便它们完全包含在 AWS 中。我已经通过代码构建完成了这项工作,并使一切运行到运行测试的地步,在每次测试运行之前调用一个 API 来重置数据库。当第一个测试尝试运行时,我不断遇到此错误消息。
StatusCodeError: 403 - "{\"Message\":\"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:eu-west-2:*:*"}"
起初,我认为该错误是由于缺少对用于构建所有内容的角色的权限引起的。我尝试向正在使用的 IAM 角色添加正确的权限,最终使它们比我想要的更开放。
"Effect": "Allow",
"Action": [
"execute-api:Invoke",
"execute-api:ManageConnections"
],
"Resource": "arn:aws:execute-api:*:*:*"
显然没有解决问题,但我确实注意到访问顾问显示特定策略没有被访问。
接下来,我进入了 API Gateway 中的资源策略,看看那里有没有什么东西。我删除了一些设置为限制访问办公室 IP 地址的 IP 地址条件。
我查看了 WAF 和 Shield 的内部,看不到任何与调用 API 相关的内容。在这一点上,我对下一次调查应该从哪里开始感到迷茫。
编辑
这是我要回来的回应。
"requestId": "********-82f8-11e9-a732-0b550cf3fcd6",
"ip": "*.*.*.*",
"caller": "-",
"user": "-",
"requestTime": "30/May/2019:16:32:50 +0000",
"httpMethod": "GET",
"resourcePath": "/*/ref-data/{proxy+}", "status": "403", "protocol": "HTTP/1.1", "responseLength": "185"