有没有办法在多个 AWS EC2 linux 实例中管理(add/delete)多个用户

Is there a way to manage (add/delete) multiple users in multiple AWS EC2 linux instances

我意识到这是一个常见问题,但在四处浏览之后,我认为值得重新提问。欢迎任何与主题相关的建议

我们正在使用 AWS Ec2 Linux 个实例。我们当前提供实例访问的流程:

  1. 使用 existing/new EC2 用户的 pem 文件创建 AWS Ec2 实例
  2. 使用 ec2-user pem 文件和 public IP
  3. ssh 进入服务器
  4. 为用户创建个人用户和私人和 public 密钥
  5. 将私钥分享给用户
  6. 用户通过终端或 putty 使用自己的用户和私人 pem 密钥 ssh 进入 Linux 服务器

    管理Linux个用户是一个非常繁琐的过程,其中,用户是removed/created所有服务器的手动重新

    我想要实现的是使用 AWS IAM 用户和组,用户可以使用个人 pem ssh 进入 Ec2 实例。同样,当要删除用户时,从 AWS 账户中删除后,用户的账户也会从 Ec2 实例中删除。

如有与上述相关的任何其他疑问,请发表评论

提前致谢

您可以使用 AWS Organisation 服务以简单的方式完成这一切。

通过 AWS Organization,您可以创建多个用户账户,集中管理。

您可以应用服务控制策略 (SCP) 来确保您帐户中的用户只执行满足您的安全和合规性要求的操作。

您可以自动创建用户、将用户分配到组、分配角色

如果所有用户都可以使用相同的本地帐户连接到实例,但每个用户都有自己的密钥对,并且您不介意有一个两步连接过程(一个意味着使用 AWS CLI)。那么您可能想看看 EC2 Instance Connect。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html#ec2-instance-connect-install-eic-CLI

这适用于所有 Amazon Linux 2 和 Ubuntu 16.04+ 实例。其他 AMI 可能支持它,但您需要做一些研究。

如果您决定使用该方法,则必须为所有实例设置一些内容(包括授权用户将 public 密钥推送到实例的 IAM 策略)。但这个过程非常简单。我认为您需要 AWS CLI 1.18+ 才能推送您的密钥,但我不确定。

一旦一切就绪。用户可以将 public 密钥推送到他想要连接的实例,该密钥将在 60 秒内有效,从而为用户提供足够的时间连接到实例。

过程是这样的。

您将 public 密钥推送到实例:

$ aws ec2-instance-connect send-ssh-public-key \
    --instance-id i-001234a4bf70dec41EXAMPLE \
    --availability-zone us-west-2b \
    --instance-os-user ec2-user \
    --ssh-public-key file://my_rsa_key.pub

然后在 60 秒的时间范围内,您可以通过以下方式连接到实例:

ssh -o "IdentitiesOnly=yes" -i my_rsa_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

可在此处找到更多信息:https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn:aws:iam::863239526838:policy/test-ec2-connect$jsonEditor

一旦您停用或删除用户,他们将无法再将他们的密钥推送到实例,因此将无法连接到它。

设置实例会产生一些开销,但您最终会节省总体时间,而且您只需在一个地方管理用户,这是一个显着的收获。