0

我正在尝试创建一个 python3.6 AWS lambda 函数,该函数在另一个账户中担任角色以访问另一个账户中的 S3 存储桶。我正在本地测试这个精确的 lambda 函数(设置了 aws 配置文件),以测试我的跨账户角色和策略是否已设置并且在本地是否完美运行。但是,当从 lambda 中运行相同的代码时,看起来像假设角色没有返回并且 lambda 超时。希望有任何提示如何解决这个问题或任何可能是问题的想法?

我的代码:

print ("==== before_assume_role")
assumed_role_object = sts_client.assume_role( 
    RoleArn=FOREIGN_ROLE_TO_ASSUME, RoleSessionName='cross-account-session')
print ("==== after_assume_role")

“==== after_assume_role”没有被打印出来,错误处理程序(即except (Exception) as error)没有被调用并且 lambda 超时。

任何想法将不胜感激!

谢谢你,康斯坦丁

4

1 回答 1

0

我也遇到了这个问题,原因是我将它部署在私有 VPC 中。我的解决方法是明确指定 sts 客户端。

sts_client = boto3.client('sts',region_name="ap-southeast-1",endpoint_url="https://sts.ap-southeast-1.amazonaws.com")

相应地更改区域名称和端点 url。

于 2022-02-28T05:46:55.613 回答