【问题标题】:Multiple Access Keys for the Same User同一用户的多个访问密钥
【发布时间】:2017-03-24 18:05:06
【问题描述】:

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

谁能告诉我这是否是一个不错的选择?我的一位同事问我为什么要这样做,当我告诉他我的推理时,我认为他不是 100% 相信我的推理是好的。您能否告诉我对同一用户拥有多个访问密钥/秘密密钥是否有任何优势?因为我什么都想不出来。另外,您能否提供任何类型的支持文章来涵盖这一点?

【问题讨论】:

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


    【解决方案1】:

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

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

    1. 为您的用户创建第二个访问密钥
    2. 无论您在何处使用第一个访问密钥,请将其替换为第二个
    3. 稍等片刻,确认第一个访问密钥没有被使用。
    4. 确认后,禁用或删除第一个访问密钥

    两个访问密钥系统允许这种轮换发生,同时保持访问密钥被禁用/删除的时间,但仍被使用到最低限度。我一直在使用其他工具,当您生成新密钥时,您必须禁用旧密钥。因为有时在生成新密钥后使用它们需要时间。

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

    1. 权限可以更细化
    2. 如果密钥泄露,需要更换的地方就会减少
    3. 您可以更好地审计跟踪哪些工具正在作用于您的帐户以及何时作用

    出于这些原因,我建议只在“现场”使用一个访问密钥。

    我认为,真的,如果有人想为一个用户实际使用 2 个密钥,那他们只是懒惰。

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

    更新

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

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

    此外,他们在密钥轮换过程中的“操作方法”使用 IAM 用户上分配的两个访问密钥:

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

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

    【讨论】:

    • 每个键在 CloudTrail 中都清楚地显示,所以我认为这否定了您关于多用户比多键更好的第二点。
    • 是的,但访问密钥仅显示在 JSON 中,而不显示在 AWS 控制台 GUI 中。控制台允许按用户名搜索,但不允许按访问密钥搜索。 IAM“访问顾问”对用户来说是精细的,而不是访问密钥。通过同时使用两个访问密钥,您在轮换密钥时不会出现“部署重叠”。
    【解决方案2】:

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

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

    第一项清楚地说明了对单个 IAM 帐户使用多个访问密钥的理由。我认为使用多个键也会使第二项,键轮换更容易。您可以创建第二个访问密钥集,切换您的应用程序,验证之前的密钥集不再用于访问 AWS API,然后删除旧的密钥集。

    【讨论】:

    • 感谢您提供的信息。我一定忽略了第一个原因,因为我确实阅读了那篇文章,但认为它适用于不同的 IAM 用户(不一样),所以这实际上很有意义。至于旧密钥,我确实停用了它但没有删除它。
    • 其实第一项建议使用多个访问密钥,而不是在单个 IAM 用户内重载多个访问密钥。并且“隔离权限”巩固了这一点,因为您不能为同一 IAM 用户下的每个访问密钥授予不同的权限。您可以通过使用不同的 IAM 用户来满足第 1 项。
    • 我不同意您对第一点的解释,但我也同意由单独的用户跟踪可能比单个用户的多个键更容易一些。
    猜你喜欢
    • 1970-01-01
    • 2017-03-23
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多