首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内部如何生成AWS访问密钥id和秘密访问密钥

内部如何生成AWS访问密钥id和秘密访问密钥
EN

Security用户
提问于 2016-12-16 07:10:00
回答 1查看 2.5K关注 0票数 5

根据AWS的文档,为了以编程方式或通过CLI访问AWS资源,您可以在AWS控制台中生成一个访问键,如下所示:

访问密钥ID: AKIAIOSFODNN7EXAMPLE秘密访问密钥: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

医生说:

  1. 选择下载凭据,并将密钥存储在安全位置。

您的密钥将不再通过AWS管理控制台可用;您将拥有唯一的副本。

由于AWS不存储秘密访问密钥,我想知道如何在内部生成(访问密钥id,秘密访问密钥),以及如何安全地对API/CLI访问进行身份验证。

我认为AWS可以:

  • 随机生成访问密钥id
  • 在AWS中使用内部密钥和一些密码算法生成秘密访问密钥。
  • 在验证请求时,将相同的内部密钥和相同的算法应用于访问密钥id,并验证计算结果是否为秘密访问密钥。

但我并不是一个安全专家,我想知道如何在AWS的生产中做到这一点。谢谢。

EN

回答 1

Security用户

发布于 2016-12-20 21:27:30

从文档0中,我们看到您向AWS证明您知道使用HMAC的秘密访问密钥,而不是使用数字签名。这意味着在验证身份验证时,AWS必须能够为您的访问密钥ID生成确切的秘密访问密钥。

因此,他们承诺不再向您展示秘密访问密钥是策略问题,而不是底层技术的真相。如果是公钥密码体制,而秘密访问密钥是与公钥相对应的访问密钥ID,并且只存储公钥,则它们将真正无法重新生成和显示私钥。但是,这将要求客户端生成一个私钥签名来验证请求,这比HMAC慢且可移植性差。

我没有这方面的证据,但我相信秘密访问密钥是使用HMAC从访问密钥ID生成的,使用的密钥只对Amazon可用。在没有亚马逊( Amazon )注意到的情况下盗取该密钥,你就可以伪造任何人的秘密访问密钥,只需提供他们的访问密钥ID。如果AWS密钥被窃取,AWS将不得不使所有密钥失效,导致大量的全球停机时间,而每个人都会在AWS控制台上生成新的密钥并重新部署。我不知道他们采取了什么保护措施使这不可能,但我认为密钥不能驻留在单个HSM的每个可用性区域,因为它是需要处理每一个非公开的请求。

或者,秘密访问密钥可能是随机的,并且存储在AWS身份验证和授权系统中的访问密钥ID旁边,该密钥被复制到每个可用性区域。这就意味着,要想造成灾难,就需要有人将一大块数据,而不是一个秘密密钥,从中提取出来。

0- https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#ConstructingTheAuthenticationHeader

1- https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationExamples

票数 6
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/145478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档