Amazon web services IAM角色承担角色权限

Amazon web services IAM角色承担角色权限,amazon-web-services,aws-lambda,amazon-iam,Amazon Web Services,Aws Lambda,Amazon Iam,给定使用此权限创建的IAM角色: { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "lambda.amazonaws.com" }, "Effect": "Allow", "Sid": "First" } ] } 是否有任何信息告诉AWS,只有该

给定使用此权限创建的IAM角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": "First"
    }
  ]
}
是否有任何信息告诉AWS,只有该帐户中的lambda函数才能担任该角色。我希望AWS lambda在运行此帐户中的函数时能够承担此角色,但仅此AWS帐户中运行的lambda函数-而不是在其他偶然发现此IAM角色的ARN的随机AWS帐户中运行的lambda函数

如果使用此配置允许在任何AWS帐户中运行的任何lambda函数担任此角色,那么如何修改此策略以仅允许在我的帐户中运行的lambda函数担任此角色。

“服务”:“lambda.amazonaws.com”
告诉您的IAM角色只能由lambda担任

如果要向另一个帐户授予担任该角色的权限,则该角色的IAM策略可能如下所示:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AccountNumberThatCanAssumeTheRole>:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}
{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“委托人”:{
“AWS”:“arn:AWS:iam:::root”
},
“行动”:“sts:假设角色”,
“条件”:{}
}
]
}

ok,那么世界上任何运行Lambda函数的AWS帐户如果知道ARN,都可以担任此角色?这意味着,如果此角色被授予访问我帐户中其他资源的权限,则从另一个帐户担任此角色的能力实际上意味着世界上任何人都可以执行此角色可以执行的任何操作?不。即使他们知道ARN,他们也不能担任此角色,除非您向该帐户授予担任此角色的权限。因此,澄清一下-即使政策文件没有规定任何账户限制,IAM政策如何工作的默认假设是它只适用于当前AWS账户?你有什么文件可以证明吗?是的。你可以这么说。我无法找到确切的文件,可以解释它,但看看这个,如果你有2个帐户,发挥它,它可能会消除你的疑虑。