当我可以从主账户创建实例时,为什么需要 IAM 用户?

当我可以从主账户创建实例时,为什么需要 IAM 用户?

我真的不明白为什么我需要 IAM 用户。文档说有两种方法可以访问 EC2。一种是为您的 AWS 帐户创建访问密钥。另一种是使用 IAM。亚马逊推荐 IAM。

因此,我登录了主帐户,在 IAM 页面上,我创建了一个 IAM 用户,然后创建了一个 IAM 组,然后使用 AdministratorAccess 策略将该用户添加到 IAM 组。我还在“安全凭证”选项卡下分配了一个自定义密码。

当我选择用户时,它会导航到摘要页面。在摘要页面上,有一个“用户 ARN:”定义,其中包括账户 ID 和用户名:

arn:aws:iam::account_id:user/username

有了这些信息,我就可以退出主 AWS 账户,并使用我为该用户创建的 IAM 用户名和密码以 IAM 用户身份登录。

https://account_id.signin.aws.amazon.com/console/

现在文档说 Linux 实例没有密码。启动实例时必须指定密钥对的名称,使用 SSH 登录时必须提供私钥。因此,作为 IAM 用户,我在“网络和安全”下创建了一个密钥对。我将私钥文件保存在安全的地方。

最后,当我启动一个实例时,它会提示我输入密钥对,因此我选择我创建的密钥对。实例运行后,我尝试从 ssh 连接:

$ ssh -i ~/.aws/username-key-pair-useast.pem [email protected]

但不起作用。我必须指定名为 ubuntu 的用户:

$ ssh -i ~/.aws/username-key-pair-useast.pem [email protected]

然后它就可以正常工作了。但是为什么不允许我使用 IAM 用户连接到服务器?我认为 IAM 用户的全部目的是为了我的实例提供额外的安全性。但是,如果我使用 ubuntu 超级用户登录,并且 IAM 用户未添加到实例的操作系统,那么 IAM 会提供什么额外的安全性?

此外,我使用 IAM 用户执行的所有操作都可以使用主 AWS 账户完成。例如,我可以登录主 AWS 账户并创建密钥对并启动实例。因此,IAM 似乎只是多余的。

我不太明白为什么我需要 IAM 用户。

答案1

IAM 用户用于登录 AWS 本身。

Ubuntu 用户(或类似用户)用于登录在 AWS 内创建的 EC2 实例。

IAM 用户提供了额外的安全性,因为它可以且应该以较低的权限创建。相比之下,根账户是为所有新的 AWS 账户创建的,仅用于极少数的管理任务。IAM 账户应该用于所有日常任务。当您向 AWS 账户添加更多用户时,这一点变得更加重要。

相关内容