如何允许组承担角色?

时间:2016-01-21 11:44:33

标签: amazon-web-services amazon-iam identity-management

如何允许组的所有成员在AWS IAM中担任角色?

我尝试使用以下语句,但如AWS IAM Principal Element中所述,组不能是主体。

我想实现以下目标:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::***:group/developer"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

这个想法是组group/developer的所有成员都应该能够担任这个角色。目标是我不必单独指定一个组中的每个成员。

有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:17)

将政策附加到论坛,授予在所需角色上调用sts:AssumeRole的权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "123",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/desired-role"
            ]
        }
    ]
}

此外,在角色上附加信任政策。示例策略(如下)信任该帐户中的任何用户,但他们还需要sts:AssumeRole权限(上图)才能担任该角色。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

答案 1 :(得分:2)

截至2018年12月(不知道在撰写本文时它们是否正确),上面表达的一些关于团体限制的陈述听起来具有误导性。

我想添加/阐明接受的答案:

1)仅对sts:AssumeRole用户信任..:root {strong>潜在地,允许任何用户承担相关角色。除非您还授予某些用户或组该角色的权限,否则将不允许该权限。

2)如果像我一样,由于资源位于不同的堆栈和/或循环依赖项中而无法在组定义中指定权限,则用于定义与组关联的策略的代码为:

DevelopersAccess:
    Type: AWS::IAM::Policy
    Properties:
    Groups:
        - !ImportValue another-stack-DevelopersGroupNameNotArn
    PolicyName: DevelopersAccess
    PolicyDocument:
        Version: 2012-10-17
        Statement:
        - Effect: Allow
            Action:
            - sts:AssumeRole
            Resource:
            - arn:aws:iam::123456789012:role/desired-role

请注意,您必须在Groups下列出组名,而不是ARN。

答案 2 :(得分:1)

这可以通过不同的方式完成。但是,不确定这是否是你想要的。

1)使用create-policy创建策略。
2)使用attach-role-policy将策略附加到arn:aws:iam::***:role/developer角色 3)使用create-group创建预期的Group 4)使用attach-group-policy将指定的托管策略附加到指定的组。

可以通过AWS控制台或AWS SDK而不是CLI来实现。请参阅Attaching a Policy to an IAM Group

这样,您就不必将角色分别添加到组中的每个成员。

相关问题