同一用户的多个访问密钥

时间:2017-03-24 18:05:06

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

我发现在我公司的AWS账户中有一个特定用户可以进行编程访问。我的任务是为我的一位同事重新创建一个访问密钥和安全令牌,尽管它已有一个。我想停用原来的。我认为从安全角度来看,最好只有一个访问密钥/令牌而不是倍数。

有谁能告诉我这是不是一个好选择?我的一位同事问我为什么要这样做,当我告诉他我的理由时,我不认为他100%确信我的推理是好的。你可以告诉我,对同一个用户有多个访问密钥/密钥是否有任何好处?因为我无法想到任何事情。另外,您能否提供任何类型的支持文章?

2 个答案:

答案 0 :(得分:2)

AWS IAM Access Keys best practices下,我相信这些部分适用:

  • 为不同的应用程序使用不同的访问密钥。这样做是为了在暴露访问密钥时隔离权限并撤销各个应用程序的访问密钥。为不同的应用程序设置单独的访问密钥还会在AWS CloudTrail日志文件中生成不同的条目,这使您可以更轻松地确定执行特定操作的应用程序。
  • 定期轮换访问密钥。定期更改访问密钥。有关详细信息,请参阅IAM用户指南中的旋转访问密钥(AWS CLI,Windows PowerShell工具和AWS API)以及如何在AWS安全博客上为IAM用户旋转访问密钥。

第一项明确说明了使用单个IAM帐户使用多个访问密钥的原因。我认为使用多个键也可以使第二项,键旋转更容易。您可以创建第二个访问密钥集,切换应用程序,验证以前的集合不再用于访问AWS API,然后删除旧集。

答案 1 :(得分:2)

我没有为每个用户推荐单个访问密钥的文档,但AWS确实建议定期轮换访问密钥。请参阅Managing Access Keys for IAM Users,标题为“旋转访问密钥”的部分。

因此,作为最佳实践,您应该定期执行以下操作(每30,60,90天等)

  1. 为您的用户创建第二个访问密钥
  2. 无论您使用第一个访问密钥,请将其替换为第二个
  3. 等待一会儿,确认没有使用第一个访问密钥。
  4. 确认后,禁用或删除第一个访问密钥
  5. 两个访问密钥系统允许进行此轮换,同时保持禁用/删除访问密钥的时间,但仍然使用最少。我一直在使用其他工具,你必须在生成新密钥时禁用旧密钥。因为有时在生成新密钥后需要花费时间。

    如果用户需要多个访问密钥,那么应该有一个问题,为什么需要,而不是多个。使用多个用户有好处:

    1. 权限可以更精细
    2. 如果密钥泄露,则需要更换的地方更少
    3. 您可以更好地审核哪些工具对您的帐户有效,以及何时
    4. 出于这些原因,我建议只在现场使用一个访问密钥。

      我认为,实际上,如果有人想要为单个用户实际使用2个密钥,那么他们只是在懒惰。

      我为每个需要访问的工具创建了单独的IAM用户和角色。我从不重复使用它们。

      <强>更新

      AWS建议定期轮换访问密钥。

      来源:http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html

      此外,他们在密钥轮换过程中的“howto”使用了IAM用户上分配的访问密钥:

      来源:https://aws.amazon.com/blogs/security/how-to-rotate-access-keys-for-iam-users/

      Ergo,在任何给定时间为每个IAM用户“使用中”一个访问密钥的目标。