Dan*_*one 3 amazon-ec2 amazon-web-services
我真的不明白为什么我需要 IAM 用户。文档说有两种方法可以访问 EC2。一种是为您的 AWS 账户创建访问密钥。另一种是使用IAM。亚马逊推荐 IAM。
所以我登录到主账户,在IAM页面上,我创建了一个IAM用户,然后创建了一个IAM组,然后使用AdministratorAccess策略将用户添加到IAM组中。我还在“安全凭证”选项卡下分配了一个自定义密码。
当我选择用户时,它会导航到一个摘要页面。在摘要页面上,有一个“User ARN:”定义,其中包括账户 ID 和用户名:
arn:aws:iam::account_id:user/username
Run Code Online (Sandbox Code Playgroud)
有了这些信息,我就可以退出主 AWS 账户并以 IAM 用户的身份登录,使用我为该用户创建的 IAM 用户名和密码。
https://account_id.signin.aws.amazon.com/console/
Run Code Online (Sandbox Code Playgroud)
现在文档说 Linux 实例没有密码。您必须在启动实例时指定密钥对的名称,并在使用 SSH 登录时提供私钥。因此,作为 IAM 用户,我在“网络和安全”下创建了一个密钥对。我将私钥文件保存在安全的地方。
最后,当我启动一个实例时,它会提示我输入密钥对,所以我选择了我创建的密钥对。实例运行后,我尝试从 ssh 连接:
$ ssh -i ~/.aws/username-key-pair-useast.pem username@dns-ip.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
它不起作用。我必须指定名为 ubuntu 的用户:
$ ssh -i ~/.aws/username-key-pair-useast.pem ubuntu@dns-ip.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
然后它起作用了。但是为什么不允许我使用 IAM 用户连接到服务器?我认为 IAM 用户的全部目的是为了我的实例的额外安全性。但是,如果我使用 ubuntu 超级用户登录并且 IAM 用户没有添加到实例的操作系统中,那么 IAM 提供了哪些额外的安全性?
此外,我对 IAM 用户所做的一切,我都可以用主 AWS 账户完成。例如,我可以登录主 AWS 账户并创建密钥对并启动一个实例。所以看起来IAM只是多余的。
我真的不明白为什么我需要 IAM 用户。
IAM 用户用于登录 AWS 本身。
Ubuntu 用户(或类似用户)用于登录在 AWS 中创建的 EC2 实例。
IAM 用户提供了额外的安全性,因为它可以而且应该以降低的权限创建。相比之下,根账户是为所有新的 AWS 账户创建的,仅用于极少数的管理任务。IAM 帐户应用于所有日常任务。随着您向 AWS 账户添加更多用户,这一点变得更加重要。
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |