Amazon web services 调用AssumeRole操作时发生错误(AccessDenied)
我有一个lambda函数(lambda get details),它是在Account-a中使用下面的IAM角色创建的 角色名称:lambdarole 相同的IAM角色名称(lambdarole)在不同的帐户中创建,如Account-B 现在,Account-A的lambda函数需要从Account-B获取详细信息,例如(AMI的列表),我们得到以下错误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
"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>"
}
}
]
}