我能否限制 IAM 身份对特定 Amazon EC2 资源的访问?

上次更新日期:2022 年 10 月 20 日

我希望将 AWS Identity and Access Management (IAM) 用户/组/角色的访问限制为同一账户上的特定 Amazon Elastic Compute Cloud (Amazon EC2) 资源。我该如何操作?

解决方法

Amazon EC2 部分支持资源级权限或条件。这意味着,对于某些 Amazon EC2 操作,您可以根据必须满足的条件或允许用户使用的特定资源来控制何时允许用户使用这些操作。

按照 AWS 区域以外的任何标准隔离 IAM 用户或用户组对 Amazon EC2 资源的访问权限不适合大多数用例。如果您必须按地区或同一账户上的任何条件隔离您的资源,请确保检查支持资源级别权限和条件的 Amazon EC2 操作列表,以验证您的用例是否受支持。

以下是一个策略示例,该策略可用于将 IAM 身份(用户/组/角色)的访问权限限制为仅限于在弗吉尼亚北部 (us-east-1) 区域启动/停止/重启 EC2 实例。该实例的标签密钥必须为 "Owner",标签值为 "Bob"。"ec2:Describe*" 已添加到策略中,以授予在 AWS 管理 EC2 控制台中描述 EC2 实例和所有相关资源的权限。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:StartInstances",
        "ec2:StopInstances",
        "ec2:RebootInstances"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/Owner": "Bob"
        }
      }
    }
  ]
}

注意:用环境中的参数替换 "Owner"、“Bob” 和资源 ARN。

创建策略后,您可以将其附加到 IAM 用户、群组或角色

有关标记使用案例和最佳实践,请参阅最佳实践