我正在尝试创建AWS IAM策略以限制对EC2实例的读取访问权限。
目标:我在AWS中有许多EC2实例和许多不同的用户,我希望有一组用户只能看到特定的EC2实例而不是所有实例。
有没有可能这样做?
我试图通过标记实例来限制访问,但是如果我看到正确的话,Describe * API不能受条件限制而不能受资源限制。
不幸的是,唯一干净的方法是拥有多个AWS账户(最好是在Organization下),然后将不同的用户组限制在不同的账户。
一些(但不是全部)操作支持资源级权限,因此您可以编写类似以下的策略来限制IAM用户可以启动/停止/重新启动哪些EC2实例:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RebootInstances"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Environment": "Staging"
}
},
"Resource": [
"arn:aws:ec2:us-east-1:123456789012:instance/*"
],
"Effect": "Allow"
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
此外,您可以限制SSH密钥对或Windows凭据的分发,以便只有特定用户可以物理访问给定的EC2实例。