我正在尝试实现一个用例,其中可以通过AWS CloudFormation模板跨帐户调用Lambda函数 .
我正在 account B
中部署AWS CloudFormation堆栈,该堆栈具有调用 account A
中定义的Lambda函数的自定义资源 . 我已在 account A
中为Lambda创建了一个跨帐户角色,并将 account B
作为可信实体 . 此外, account B
中的用户附加了一个允许其承担此角色的策略 . 不幸的是,堆栈创建失败了访问错误 .
非常感谢任何帮助 . 这是帐户B的模板:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"GetNwInterfaces":{
"Type": "Custom::GetNwInterfaces",
"Properties": {
"ServiceToken": "arn:aws:lambda:ap-northeast-2:XXXXXXXXXX:function:getini2",
"region": "us-west-2",
"uid" : "01100"
}
}
}
}
1 回答
使用适当的权限在帐户A中创建Lambda函数,例如,使用此 Cloud 信息模板:
CrossAccountPermission
记录在这里是重要记录,我们在那里授予对帐户B的访问权限 .在帐户B中,使用以下模板对其进行测试:
这里还有一个可能的问题:在帐户B中运行cloudformation的用户/角色也需要执行Lambda函数的权限,如果你运行的CF管理员用户不应该是一个问题,因为你有
lambda:*
权限在资源*
无论如何 .