通过未授权的python脚本将GET请求发送到API网关

Toa*_*ast 5 python amazon-web-services python-3.6

我已经为客户端设置了一个带有一些数据的S3 Bucket,并希望为他们提供一个他们必须执行的python脚本,然后下载他们需要的特定文件.

为此,我已经构建了一个返回下载链接的Lambda函数,以及一个通过GET请求触发Lambda函数的API网关.

当我在浏览器中访问url时,我得到了预期的请求,但如果我在Python 3.6中执行requests.get('url'),它说

{"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:eu-central-1:********:<api>/<stage>/GET/<method>}
Run Code Online (Sandbox Code Playgroud)

我的脚本看起来像这样:

import requests
import sys


proxy = 'myproxy:myport'
username = ''
password = ''
username, password = sys.argv[1], sys.argv[2]

https_proxy = 'https://' + username + ':' + password + '@' + proxy
http_proxy = 'http://' + username + ':' + password + '@' + proxy


proxy = {'https': https_proxy,
         'http': http_proxy}

session = requests.Session()

session.proxies = proxy

r = session.get('https://<my-api-link>')
fileDict = r.json()

print(fileDict)
Run Code Online (Sandbox Code Playgroud)

我设置了API网关的资源策略,将我公司的外部IP和客户端白名单.我再次证实了这一点 - 在浏览器中输入api url并获得预期结果.我只是希望它通过脚本工作.

有趣的是 - 当我在家里尝试它,我不在代理后面,它工作(我以前白名单我的IP当然)

我有什么想法可以解决这个问题?谢谢