19

我已经阅读了 AWS 文档,但它没有帮助……至少对我没有帮助。我已阅读有关 IAM 和 EC2 上的用户策略的信息。

我想让用户仅在一个 ec2 实例上具有完全访问权限/(或仅允许某些操作)。

我使用的地区是eu-west-1(Ireland)。我制定了这个政策:

{
  "Version": "2012-10-17",
  "Statement": [{ 
    "Effect": "Allow",
    "Action":   "ec2:*", 
    "Resource": "arn:aws:ec2:eu-west-1:ACCOUNT_ID:instance/INSTANCE_ID"
  }]
}

当我以用户身份登录时,我看到我没有被授权:

  • 您无权描述正在运行的实例
  • 您无权描述弹性 IP
  • 您无权描述卷
  • 您无权描述快照
  • 您无权描述密钥对
  • 您无权描述负载均衡器
  • 您无权描述归置组
  • 您无权描述安全组

如果我对资源属性应用以下策略:

“资源”:“arn:aws:ec2:*”

没关系,但这不是我需要的,因为用户可以访问所有 EC2 实例。

我想知道这是否是 AWS 的错误,或者 eu-west-1 区域存在问题,或者此策略已不受支持?或者也许我错了,如果是这样,请帮助我怎么做


4

1 回答 1

9

最近引入的 EC2 和 RDS 资源的资源级权限尚不适用于所有 API 操作,但 AWS 正在逐渐添加更多权限,请参阅Amazon EC2 的 Amazon Resource Names 中的此说明:

重要目前,并非所有 API 操作都支持单个 ARN;稍后我们将为其他 Amazon EC2 资源添加对其他 API 操作和 ARN 的支持。有关您可以将哪些 ARN 与哪些 Amazon EC2 API 操作一起使用以及每个 ARN 支持的条件键的信息,请参阅Amazon EC2 API 操作支持的资源和条件

您会发现在撰写本文时,Amazon EC2 API 操作的受支持资源和条件ec2:Describe*中确实不存在所有操作。

另请参阅授予 IAM 用户对 Amazon EC2 资源所需的权限以获取上述简明摘要以及您可以在 IAM 策略语句中使用的 ARN 和 Amazon EC2 条件键的详细信息,以授予用户创建或修改特定 Amazon EC2 资源的权限-此页面还提到 AWS 将在 2014 年增加对其他操作、ARN 和条件键的支持

可能的解决方法/替代方案

代替或除了限制单个资源级别的访问之外,您可能希望(也)使用条件结合Policy Variables进行检查,因为ec2:Region它是 Amazon EC2 支持的条件键之一- 您可以将您的策略​​与专门处理Describe*动作,例如这样的事情(未经测试):

{
  "Statement": [
    {
      "Action": [
        "ec2:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:Region": "eu-west-1"
        }
      }
    }
  ]
}

请注意,这仍然允许用户查看 中的所有实例eu-west-1,即使您的原始策略片段会阻止所有已经支持资源级别权限的 API 操作(例如实例创建/终止等)。

我在部分解决方法部分概述了另一种可能的方法,在我的相关答案中如何根据标签隐藏 EC2 中的实例 - 使用 IAM?.

祝你好运!

于 2013-12-19T12:29:33.367 回答