为什么sts:AssumeRole在信任策略中而不是角色的权限策略中?

问题描述 投票:0回答:1

我是AWS的新手,但据我了解,角色既包含权限策略,又包含信任策略。权限策略似乎很简单-您可以做什么。 IE:

                "iam:CreatePolicy",
                "iam:GetRole",
                "iam:GetPolicy",
                "iam:DeletePolicy",
                "iam:CreateRole",
                "iam:DeleteRole",
                 ...

另一方面,信任策略是“允许这样做的人” IE:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::000000000000:role/My-Role"
      },
      **"Action": "sts:AssumeRole"**
    }
  ]
}

AssumeRole听起来像是“您可以做的事”,所以为什么它总是属于信任策略而不是权限策略。除此之外,我了解到sts:TagSession也属于信任策略,而不属于权限策略。我是否缺少某些内容,或者仅仅是sts类型的操作属于信任策略?

amazon-web-services amazon-iam roles aws-policies
1个回答
0
投票

角色的信任策略描述了允许谁或哪个服务担任该角色。通过调用sts:AssumeRole承担了角色。

明确说明该操作的原因是AWS IAM策略的工作方式。信任策略是一种资源策略,即附加到资源(在本例中为IAM角色)的资源,该策略定义who可以对该资源执行what

假设一个角色总是需要两个策略一起发挥作用:

委托人(例如IAM用户)需要为该角色调用sts:AssumeRole的权限,并且该角色必须具有信任策略,允许委托人使用sts:AssumeRole。只有同时满足两个条件,委托人才能担任此角色。必须明确允许委托人,并且角色必须明确信任委托人。

© www.soinside.com 2019 - 2024. All rights reserved.