如果角色的信任策略中未描述用户,那么 IAM 用户是否可以承担角色?

Jax*_*axx 15 amazon-web-services amazon-iam

如果某个角色没有信托政策,是否可以承担该角色?如果给定 IAM 用户附加了基于身份的策略,表示他/她可以为给定角色(在同一账户内)调用 sts:AssumeRole,但该角色的信任策略中未描述该用户,他/她是否会这样做?能够担当这个角色吗?

通常,仅基于资源的策略或基于身份的策略就足以为用户授予权限,但是对于角色来说是否有所不同?

谢谢

Mar*_*cin 17

他/她能担任这个角色吗?

是的,她/他当然能够做到这一点,只要信任策略允许该帐户承担该角色。例如,角色必须具有以下信任策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "<account-number>"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这样,您的IAM 用户不需要在信任策略中显式列出,但信任策略是必需的,并且至少您应该指定可以代入它的账户。但缺点是具有权限的账户中的任何 IAM 用户或角色都可以代入该角色。<account-number>sts:AssumeRole

它没有信托政策吗?

信任策略是必需的,因此如果没有这样的策略,您就无法拥有角色。

更新

假设您有一个具有信任策略的角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::xxxxxx:user/UserA"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

该角色只能由 userA担任。无论 UserB 的权限如何,他都无法采用此策略。