为什么 sts:AssumeRole 在角色的信任策略中而不是权限策略中?
Why is sts:AssumeRole in the Trust Policy and not the Permissions Policy of a role?
我是 AWS 的新手,但根据我的理解,角色包含权限策略和信任策略。权限政策似乎非常简单明了——您可以做什么。即:
"iam:CreatePolicy",
"iam:GetRole",
"iam:GetPolicy",
"iam:DeletePolicy",
"iam:CreateRole",
"iam:DeleteRole",
...
另一方面,信任策略是 "who is allowed to do it" IE:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000000:role/My-Role"
},
**"Action": "sts:AssumeRole"**
}
]
}
AssumeRole 听起来像 "What you can do",那么为什么它总是属于信任策略而不属于权限策略。离开那个,我了解到 sts:TagSession 也属于信任策略而不是权限策略。我是不是遗漏了什么,或者仅仅是 sts 类型的操作属于信任策略?
角色的信任策略描述允许谁或哪个服务担任该角色。正在通过调用 sts:AssumeRole.
承担角色
明确说明操作的原因是 AWS IAM 策略的工作方式。信任策略是一种资源策略,即附加到资源(在本例中为 IAM 角色),它定义 who 可以用它做 what资源。
扮演一个角色总是需要两个策略一起玩:
委托人(例如 IAM 用户)需要为该角色调用 sts:AssumeRole 的权限,并且该角色必须具有信任策略,允许来自委托人的 sts:AssumeRole。只有当这两个条件都具备时,Principal 才能担任该角色。必须明确允许委托人并且角色必须明确信任委托人。
我是 AWS 的新手,但根据我的理解,角色包含权限策略和信任策略。权限政策似乎非常简单明了——您可以做什么。即:
"iam:CreatePolicy",
"iam:GetRole",
"iam:GetPolicy",
"iam:DeletePolicy",
"iam:CreateRole",
"iam:DeleteRole",
...
另一方面,信任策略是 "who is allowed to do it" IE:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::000000000000:role/My-Role"
},
**"Action": "sts:AssumeRole"**
}
]
}
AssumeRole 听起来像 "What you can do",那么为什么它总是属于信任策略而不属于权限策略。离开那个,我了解到 sts:TagSession 也属于信任策略而不是权限策略。我是不是遗漏了什么,或者仅仅是 sts 类型的操作属于信任策略?
角色的信任策略描述允许谁或哪个服务担任该角色。正在通过调用 sts:AssumeRole.
承担角色明确说明操作的原因是 AWS IAM 策略的工作方式。信任策略是一种资源策略,即附加到资源(在本例中为 IAM 角色),它定义 who 可以用它做 what资源。
扮演一个角色总是需要两个策略一起玩:
委托人(例如 IAM 用户)需要为该角色调用 sts:AssumeRole 的权限,并且该角色必须具有信任策略,允许来自委托人的 sts:AssumeRole。只有当这两个条件都具备时,Principal 才能担任该角色。必须明确允许委托人并且角色必须明确信任委托人。