我正在尝试使用 IAM 设置组策略,以向具有特定 vpc 的特定区域的用户提供访问权限。在引用 AWS 文档时,尝试使用 vpc ID 过滤实例,因为资源标签不适用于 ec2(如果它与 EC2 一起使用,ResourceTag 会是更好的选择)。为此创建了以下规则,但没有帮助,
{ "Version": "2012-10-17",
"Statement": [ {
"Action": [
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:Describe*" ],
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ec2:Vpc": "arn:aws:ec2:us-west-2:*:vpc/vpc-123456"
}
}
} ] }
结果在 EC2 页面上显示“获取实例数据时发生错误”。
我可以有什么建议来解决这个问题吗?
谢谢
谢谢你回复里科:-)
不幸的是,根据我的要求,给定的政策对我不起作用。
需要授予特定区域的用户访问权限,并且用户应该有权访问基于特定资源标签或 VPC 或子网或安全组的实例。
用户不应具有启动或编辑任何内容的权限,并且用户应该能够根据上述过滤器列出实例以查看实例详细信息(只读)。
通过考虑上述方面,我已经定义了具有双重条件的类似政策,因为 ARN 不适用于我的资源。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*",
"Condition": {
"StringEquals": {
[
"ec2:Region": "us-west-2",
"ec2:ResourceTag/Name": "Test"
]
}
}
}
]
}
当我使用 ARN 作为资源时,它不适用于以下格式,
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "arn:aws:ec2:us-west-2:1234567890:*/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Name": "Test"
}
}
}
]
}
我尝试使用资源标签、实例 ID、安全组和子网来过滤实例。
现在我从您的回复中了解到,目前 VPC 过滤器是不可能的。
请参考我的实例的资源标签的图像。
您的及时回复将不胜感激。
提前致谢!
我已经与 AWS 解决方案架构师讨论过,并给出了以下更新,
EC2 的 Describe* API 尚不能仅限于某些资源。在 EC2 资源级权限的初始版本中,我们重点关注那些创建新资源或修改现有资源的操作。有关EC2 中支持的完整操作列表,请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html#ec2-supported-iam-actions-resources资源级权限。
我们正在努力将对资源级访问控制的支持扩展到更多操作,但我们无法提供可用于 Describe* API 的日期。
是否支持资源级权限取决于操作,请参阅上面的链接。特别是,目前无法将 EC2 Describe* 操作限制为资源,但上述 ARN 可用于限制修改资源的操作。
IAM 策略声明的“条件”部分支持资源标签、子网、安全组和 vpc,但仅适用于某些操作 – 请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam -policies-for-amazon-ec2.html#amazon-ec2-keys用于可用密钥。但是,Describe* API 的条件不支持资源标签、子网、安全组和 vpc。
最后,我只是通过限制只有区域的用户来结束解决方法。