带有服务和账户的 AWS 策略委托人

时间:2021-06-16 12:37:38

标签: amazon-web-services amazon-iam

我将策略附加到 AWS 中的角色。

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

因此此策略有两种类型:主体 aws 帐户和 aws 服务。

我在文档中没有找到的东西,这些负责人是在一起还是重叠?

是ec2+123账号的所有用户,还是只有123账号的ec2服务?

1 个答案:

答案 0 :(得分:0)

EC2 实例不可能直接从另一个账户代入角色。您可以改为允许 EC2 实例的角色代入 EC2 实例中的另一个角色。在这种情况下,您可以使用 aws-sdk 或 cli 代入该角色。

  • 为 EC2 分配一个角色,为该角色附加一个策略,允许该角色代入该角色

     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "VisualEditor0",
                 "Effect": "Allow",
                 "Action": "sts:AssumeRole",
                 "Resource": "*"
             }
         ]
     }
    
  • 在目标账户中,创建一个具有信任关系的 IAM 角色,允许源角色代入。

     {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::012345678901:root"
           },
           "Action": "sts:AssumeRole"
         }
       ]
     }
    
  • 使用代入角色 api 调用从实例访问目标角色。 aws sts 假设角色 --role-arn arn:aws:iam::123456789012:role/xaccounts3access --role-session-name s3-access-example