为什么要使用AWS Access Key而不是IAM角色

时间:2019-04-01 08:22:11

标签: amazon-web-services aws-cli amazon-iam

  1. 与控制台访问凭证不同,为什么AWS访问密钥(访问密钥ID和秘密访问密钥)很复杂(即冗长且不可读)?一个简单或复杂的密钥一旦被盗就无济于事,为什么不简单呢?

  2. 除了登录到AWS CLI之外,在哪些情况下仅访问密钥(访问密钥ID和秘密访问密钥)可以提供帮助,并且建议的最佳角色使用最佳实践不可行?

1 个答案:

答案 0 :(得分:1)

我不想猜测设计AWS身份验证的人员的内心想法,但是复杂的秘密通过使猜测变得更加困难来提高安全性。这也将增加使用密钥编码的数据的复杂性,从而使反向工程更加困难。另外,没有人会键入它,因此不需要有一个简短的秘密。

访问密钥和秘密密钥用于对AWS的每个 API请求。这可以来自AWS Command-Line Interface (CLI)或使用AWS SDK创建的任何软件。实际上,AWS CLI只是使用适用于Python的AWS开发工具包(称为boto3)的Python程序。

可以将

IAM角色分配给Amazon EC2实例。然后,它将为实例提供一个临时访问密钥和秘密密钥(请参见Retrieving Security Credentials from Instance Metadata)。因此,角色只是提供访问密钥的一种安全方法,但是访问密钥仍在使用。

也可以假定IAM角色以获得对资源的临时访问权,但是调用AssumeRole()命令还需要访问密钥来认证并证明承担该角色的权利。 / p>

唯一不需要访问密钥和秘密密钥的时间是登录到AWS管理控制台,但是控制台仍在使用访问密钥来调用AWS API。

底线:访问AWS资源需要访问密钥和秘密密钥。