我试图了解访问密钥。我阅读https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys并说使用访问密钥来签署您对AWS所做的程序化请求。
我可以说access key id
就像公钥一样,可以共享,而secret access key
就像是不可共享的私钥吗?当我在CLI中连接到AWS时,我需要在~/.aws/credentials
中指定两者并且我想知道为什么
答案 0 :(得分:3)
尽管aws不容易披露两个密钥之间的内部关系,但我将从他们的资源和经验中解释我收集的内容。 他们的REST Api需要一个授权头,它包含与从密钥派生的签名连接的访问密钥ID。此签名是使用密钥和此处给出的消息的HMAC字符串:https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#ConstructingTheAuthenticationHeader。我想象当我们使用aws cli时使用相同的方法。
还有其他资源声称,访问密钥基本上是公开的,因为在某些情况下,其他人可以访问它:https://alestic.com/2009/11/ec2-credentials/。 我想这会暗示日志中的足迹或管理员对用户的个人访问密钥的可见性,而不是他们的密钥。密钥仅在创建时显示,此后甚至对管理员也不会访问它。