Amazon web services 调用AssumeRole操作时发生错误(AccessDenied)

Amazon web services 调用AssumeRole操作时发生错误(AccessDenied),amazon-web-services,aws-lambda,amazon-iam,assume-role,Amazon Web Services,Aws Lambda,Amazon Iam,Assume Role,我有一个lambda函数(lambda get details),它是在Account-a中使用下面的IAM角色创建的 角色名称:lambdarole 相同的IAM角色名称(lambdarole)在不同的帐户中创建,如Account-B 现在,Account-A的lambda函数需要从Account-B获取详细信息,例如(AMI的列表),我们得到以下错误 "errorMessage": "An error occurred (AccessDenied) when calling the Assu

我有一个lambda函数(lambda get details),它是在Account-a中使用下面的IAM角色创建的

角色名称lambdarole

相同的IAM角色名称(lambdarole)在不同的帐户中创建,如Account-B

现在,Account-A的lambda函数需要从Account-B获取详细信息,例如(AMI的列表),我们得到以下错误

"errorMessage": "An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::Account-A:assumed-role/lambdarole/lambda-get-details is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::Account-B:role/lambdarole
有人能帮我解决上述问题吗

任何帮助都将不胜感激


感谢在账户-A中,
lambdarole
的政策允许角色扮演任何角色ARN(包括账户-B中的角色)。这一点由本声明负责

       {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
类似地,在账户-B中,角色
lambdarole
应包含允许从账户-a承担角色的信任策略

AccountID
Account-A
lambdarole
角色ARN添加为Account-B
lambdarole
假设政策文档中的负责人


AssumePolicyDocument
如下所示(如果帐户ID用作主体)

“假定政策文件”:{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:“sts:假设角色”,
“委托人”:{

“AWS”:"为了了解如何使用IAM角色建立跨帐户访问。

您是否在
account-B
中添加了
account-A
作为角色的受信任帐户?@franklinsijo否,我没有将account-A添加为帐户中角色的受信任帐户。错误消息显示用户:arn:aws:sts::account-A:假定角色/lambdarole/lambda get details无权在资源上执行:sts:AssumeRole:arn:aws:iam::Account-B:role/lambdarole帐户之间未建立信任关系,否则无法执行AssumeRole。感谢您提供解决方案。(lambdarole)部署在所有帐户上。如果我们使用(假设政策文件)正如您所建议的,它将部署到所有帐户以及部署lambda的帐户-A。如果它恰好部署到帐户-A上,您是否看到任何问题?必须根据部署的帐户相应地修改
AssumePolicyDocument
。如果它部署到帐户-A上,则没有问题,如果允许帐户信任自己承担角色,这不会增加任何伤害。快速问题:AssumePolicyDocument是否有效,因为我们没有在其中定义任何服务?它有帐户而不是服务。谢谢。您有任何参考文档链接,以便我可以浏览它。
       {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
"AssumeRolePolicyDocument": {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect" : "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS" : "<Account-ID-of-Account-A>"                                
            }
        }
    ]
}