假设来自同一帐户中用户的AWS角色

时间:2019-11-29 17:01:17

标签: amazon-web-services amazon-iam

对于在同一AWS帐户()中的IAM用户承担角色的要求,我有些困惑。

根据本文档:https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html

  

如果用户与角色在同一帐户中,则您可以执行以下任一操作   以下:

     
      
  • 向用户添加策略(与策略中的前一个用户相同)   不同的帐户)。

  •   
  • 直接在角色的信任策略中将用户添加为主体。

  •   

我向授予我的用户的组中明确添加了一个假定角色策略,但是它不能承担所提到的角色:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::123456789:role/some-role-name"
  }
}

将帐号作为主体添加到目标角色的信任策略后,它便开始工作:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::123456789:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

所以,我感到困惑的原因有两个:

  1. 为什么我引用的文档没有第一个单独执行的政策?
  2. 文档中的第二个项目符号为“将用户添加为主体”。我想虽然我添加了整个帐户而不是用户。仅添加该用户的语法是什么?我没有在阅读的文档中看到它。

1 个答案:

答案 0 :(得分:0)

1)我认为这很好,因为帐户ID和角色名称正确。您可以添加要获取的确切错误吗?

这是我的一项策略的实际示例,该策略使被授予此策略的用户在帐户developeracc1和{{1}中扮演acc2的角色}:

acc3

2)为IAM用户使用{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::acc1:role/developer", "arn:aws:iam::acc2:role/developer", "arn:aws:iam::acc3:role/developer" ] } ] } 而不是root。类似于arn