【发布时间】:2020-07-26 21:09:04
【问题描述】:
我在账户 A 中有一个 lambda 函数,试图从账户 B 访问资源。创建了一个具有基本执行权限的新 lambda 角色,可以将日志上传到云手表。
这是我在 Python 3.7 中的函数代码:
import boto3
allProfiles = ['account2']
def lambda_handler(event, context):
sts_connection = boto3.client('sts')
acct_b = sts_connection.assume_role(
RoleArn="arn:aws:iam::2222222222:role/role-on-source-account",
RoleSessionName="account2"
)
for profiles in allProfiles:
print("\nusing profile %s" % profiles)
newMethod..
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
还修改了帐户 B 中假定角色的信任策略,如文档中所述:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/
错误:调用 AssumeRole 时发生错误 (AccessDenied) 操作: 用户: arn:aws:sts::11111111:assumed-role/lambda-role/lambda-function 不是 授权执行: sts:AssumeRole 对资源: arn:aws:iam::2222222222:role/role-on-source-account"
注意:我可以在本地成功运行,但不能在 lambda 中运行。
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda