Amazon web services IAM角色和EC2对用户身份的访问

Amazon web services IAM角色和EC2对用户身份的访问,amazon-web-services,amazon-ec2,amazon-iam,Amazon Web Services,Amazon Ec2,Amazon Iam,我正在查看有关使用ssh访问aws的视频 他只是在创建EC2实例时添加了一个IAM角色。当我从cli ssh到EC2实例时,我可以轻松地运行“aws s3 ls”。我的问题是如何知道我是否属于IAM的角色 在启动ssh连接时,我只提供了EC2的公共IP和与该EC2实例相关的密钥对 那么我到底在哪里允许我的身份与aws共享? 当我在创建ec2实例时没有添加角色时,我必须显式地给出访问aws服务的密钥 那么,IAM角色在飞行中做什么,而不要求提供凭证 IAM角色分配给整个EC2实例。在该EC2实例上

我正在查看有关使用ssh访问aws的视频

他只是在创建EC2实例时添加了一个IAM角色。当我从cli ssh到EC2实例时,我可以轻松地运行“aws s3 ls”。我的问题是如何知道我是否属于IAM的角色

在启动ssh连接时,我只提供了EC2的公共IP和与该EC2实例相关的密钥对

那么我到底在哪里允许我的身份与aws共享?

当我在创建ec2实例时没有添加角色时,我必须显式地给出访问aws服务的密钥

那么,IAM角色在飞行中做什么,而不要求提供凭证


IAM角色分配给整个EC2实例。在该EC2实例上运行的任何代码都将获得IAM角色。IAM角色与您用于登录EC2实例的SSH帐户完全无关。

首先不要将PEM(密钥对)和IAM关联起来。两者之间没有连接

我是什么

AWS身份和访问管理(IAM)使您能够管理访问 安全地访问AWS服务和资源

从解释本身可以清楚地看出,它允许访问AWS资源。让我们举一个简单的例子,您希望从您创建的AWS EC2实例访问S3 Bucket。为此,您需要提供
Accesskey
Secretkey
,从中可以获得访问密钥和密钥,这可以通过使用IAM创建用户/角色来生成。两者都产生了信誉。现在让我们看看abot的角色。角色可以由用户/资源(EC2)承担,现在,如果您将角色分配给EC2,那么实例在默认情况下将获得与该角色关联的所有权限,这意味着它将获得Accesskey和SecretKey。现在,如果您运行一些
awss3ls
命令,那么它将从默认路径检索密钥并访问aws资源(这里是s3)

什么是EC2密钥对(PEM)

AmazonEC2使用公钥密码对登录进行加密和解密 信息公钥密码学使用公钥对密码进行加密 一段数据,例如密码,然后收件人使用私有 解密数据的密钥。公钥和私钥称为 钥匙对

密钥对仅与EC2实例关联,不能用于访问任何其他AWS资源。它与IAM没有依赖关系。您没有与AWS共享任何身份。私钥归您所有(PEM文件),公钥保存在此文件
~/.ssh/authorized_keys
中的EC2实例中。如果您想更改密钥并删除Amazon提供的密钥对,只需删除默认密钥并将新公钥放入上述文件中即可。现在,您可以使用新的密钥对登录到您的实例

因此,您的钥匙对和IAM在任何地方都没有相互连接。欲知详情


我同意你所说的。但是当我使用ssh时,我不提供我的凭据来验证。我可能是幸运地访问了该特定EC2的密钥对和公共ip的任何人。如何处理上述问题?密钥对是凭据。。。您应该将您的秘密SSH密钥文件保持与密码一样安全。我同意您所说的工作流程,即IAM角色为访问服务的ec2实例提供所有用户访问密钥,ec2密钥对仅用于使用SSH的ec2访问。但您不认为这也是一种安全问题吗?当有人访问ec2密钥对时,该人将可以自由访问所有服务,或者我不知道cli是否有那么多控制权或权限not@Ladoo你一直在说有人会访问密钥对。密钥对与密码相同。这是您的安全凭据。为什么有人能够访问你的SSH密钥对?@MarkB然后我对这个过程有点困惑。现在我已经弄清楚了这个情景。