我将策略附加到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服务?
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承担角色--角色arn:an:aws:iam::123456789012:role/xaccounts3access--角色会话名称s3访问示例