【问题标题】:AWS: How to give an IAM user access to an EC2 instanceAWS:如何授予 IAM 用户访问 EC2 实例的权限
【发布时间】:2022-02-05 05:53:55
【问题描述】:

我想授予 IAM 用户EC2 实例的访问权限。
换句话说,我希望他能够使用带有 keysssh 访问它,就像我使用 root 用户 一样:

ssh -i ACCESS_KEYS_DIRECTORY_PATH ubuntu@ec2-instance-id.region.compute.amazonaws.com

为此,我可以遵循两种情况:

场景 1:

  1. 使用 root 用户创建 EC2 实例。
  2. 将允许 IAM 用户访问的策略附加到此 EC2 实例

场景 2:

  1. 策略附加到IAM用户,允许他创建EC2实例。
  2. 使用 IAM 用户登录控制台,然后创建 EC2 实例。
  3. 生成 ACCESS_KEYS,让用户可以访问此实例。

场景 3:

  1. 使用 root 用户创建实例
  2. 由于每个实例都有自己的ACCESS_KEYS,因此无需执行我上面提到的任何操作,我只需将访问密钥交给 IAM 用户即可。

那么我应该遵循哪种方案以及为什么?

【问题讨论】:

  • 对实际实例的访问超出了 IAM 的范围。普通的 linux / ssh 访问机制是授予该级别访问权限的,不涉及 IAM。例如。如果您没有在实例上提供 ssh 密钥,则即使是 root 用户也无法访问它。此时您需要终止并重试。
  • 您必须向用户提供.pem 密钥并允许安全组上的必要连接。 SSH 不需要以任何方式访问 IAM。此外,AWS 访问密钥和 RSA 私钥 (.pem) 是完全不同的东西。
  • 您需要在 EC2 控制台中创建一个密钥对,并在创建实例时引用该密钥对。或者,如果您已经在运行实例,请将密钥添加到 authorized_keys 文件
  • 而且永远不应该分发 ssh 密钥对,用户需要自己创建密钥,然后有人将该密钥对的公钥添加到服务器。这三种情况都行不通。

标签: amazon-web-services amazon-ec2


【解决方案1】:

传统的基于 EC2 密钥对的 SSH 访问完全独立于 AWS IAM。您生成的私钥文件可以提供给任何人,他们将拥有实例的 SSH 访问权限(假设用户可以连接到 SSH 端口并且 SSH 守护程序正在运行)。

如果您需要通过 IAM 策略提供 SSH 访问,Enabling and controlling permissions for SSH connections through Session Manager 可能是您的最佳选择。

【讨论】:

    【解决方案2】:

    使用 EC2 Instance Connect 连接到您的 Linux 实例。

    Amazon EC2 Instance Connect 提供了一种使用安全外壳 (SSH) 连接到 Linux 实例的简单且安全的方式。借助 EC2 Instance Connect,您可以使用 AWS Identity and Access Management (IAM) 策略和委托人来控制对您的实例的 SSH 访问,从而无需共享和管理 SSH 密钥。所有使用 EC2 Instance Connect 的连接请求都会记录到 AWS CloudTrail,以便您审核连接请求。

    您可以使用 EC2 Instance Connect 通过 Amazon EC2 控制台(基于浏览器的客户端)、Amazon EC2 Instance Connect CLI 或您选择的 SSH 客户端连接到您的实例。

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 1970-01-01
      • 2019-01-01
      • 2018-02-01
      • 2022-01-17
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 2017-01-01
      相关资源
      最近更新 更多