为什么我需要一个IAM用户,当我可以从主帐户创build一个实例?

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

于是我login了主帐号,在IAM页面上,我创build了一个IAM用户,然后创build了一个IAM组,然后使用AdministratorAccess策略将用户添加到IAM组中。 我还在“安全证书”选项卡下分配了自定义密码。

当我然后select用户,它导航到一个摘要页面。 在摘要页面上,有一个“用户ARN:”定义,其中包括帐户ID和用户名:

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

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

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

现在文档说Linux实例没有密码。 启动实例时必须指定密钥对的名称,并在使用SSHlogin时提供私钥。 所以作为IAM用户,我在“networking和安全”下创build了一个密钥对。 我将私钥文件保存在一个安全的地方。

最后,当我启动一个实例时,它会提示我input密钥对,所以我select了我创build的密钥对。 一旦实例正在运行,我尝试从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超级用户login,并且IAM用户没有添加到实例的操作系统,那么IAM提供了哪些额外的安全性?

此外,我使用IAM用户完成的所有工作都可以通过主AWS账户完成。 例如,我可以login主AWS账户并创build密钥对并启动实例。 所以看来IAM只是多余的。

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

IAM用户正在login到AWS本身。

Ubuntu用户(或类似的)用于login到AWS内创build的EC2实例。

IAM用户提供了额外的安全性,因为它可以并且应该以降低的权限来创build。 相比之下,根账户是为所有新的AWS账户创build的,仅用于极less数的pipe理任务。 IAM帐户应该用于所有日常任务。 当您将其他用户添加到您的AWS账户时,这变得更加重要。