【问题标题】:AWS Amazon IAM user Policy to access ONLY one EC2 instance on EU-WEST-1 regionAWS Amazon IAM 用户策略仅访问 EU-WEST-1 区域上的一个 EC2 实例
【发布时间】:2014-01-07 08:39:18
【问题描述】:

我已阅读 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 区域存在问题,或者此策略已不受支持?或者我错了,如果是这样,请帮助我怎么做


【问题讨论】:

标签: amazon-web-services amazon-ec2 amazon-iam


【解决方案1】:

最近引入的Resource-Level Permissions for EC2 and RDS Resources 还不能用于所有API 操作,但AWS 正在逐渐添加更多,请参阅Amazon Resource Names for Amazon EC2 的此说明:

重要 目前,并非所有 API 操作都支持单个 ARN;我们将添加对其他 API 操作和 ARN 的支持 稍后提供 Amazon EC2 资源。有关您可以使用哪些 ARN 的信息 使用哪些 Amazon EC2 API 操作以及支持的条件 每个 ARN 的密钥,请参阅 Supported Resources and Conditions for Amazon EC2 API Actions

您会发现,在撰写本文时,Supported Resources and Conditions for Amazon EC2 API Actions 仍然没有所有 ec2:Describe* 操作。

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

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

除了限制单个资源级别的访问之外,您可能还想使用Conditions 结合Policy Variables 进行检查,因为ec2:Region 是受支持的Condition Keys for Amazon EC2 之一 - 您可能会将您的策略​​与专门处理 Describe* 操作的策略结合起来,例如像这样的东西(未经测试):

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

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

我在我对How to hide instances in EC2 based on tag - using IAM? 的相关回答中的部分解决方法部分概述了另一种可能的方法。

祝你好运!

【讨论】:

  • 即使使用这个简单的策略,每次 CTRL+F5 和注销/登录后,我都不会得到一致的结果。有时我可以列出实例,但有时我得到“您无权描述正在运行的实例”
  • 我还尝试将“ec2:Region”条件替换为“ec2:ResourceTag”。我只有 1 个带有正确标签的实例,我不断收到“获取实例数据时出错”
  • 解决方法示例将失败,因为您不能根据官方文档使用 EC2 描述操作的条件。以下是支持条件的 EC2 操作列表:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
猜你喜欢
  • 2019-08-06
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
  • 2019-02-19
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
相关资源
最近更新 更多