保护我的 AWS 账户及其资源的最佳实践有哪些?
AWS 提供一些有助于保护账户安全的工具。但是,由于在默认情况下,许多这些措施处于未激活状态,因此您必须采取直接行动来实施它们。以下是在保护账户及其资源的安全时要考虑的一些最佳实践:
保护您的密码和访问密钥
用于访问账户的两个主要类型的凭证是密码和访问密钥。这两种类型的凭证均可应用于 AWS 根用户账户或个人 AWS Identity and Access Management (IAM) 用户。您应该像保护任何其他个人机密数据一样安全地保护密码和访问密钥。切勿将它们嵌入可公开访问的代码 (即公有 Git 存储库)。为增加安全性,请经常轮换和更新所有安全凭证。
如果您使用 GitHub 进行文档或代码版本控制和共享,请考虑使用 git-secrets,这样可以扫描 AWS 凭证以及其他敏感信息。使用 git-secrets 可以帮助您避免提交包含敏感信息的代码或文档。
设置多重验证 (MFA) 设备以保护仅拥有 API 访问权限的访问密钥。使用 MFA 也可以调整哪些 API 命令需要 MFA 令牌才能继续。
如果您怀疑密码或访问密钥对已被公开:
- 轮换所有访问密钥对。
- 更改您的根用户密码。
- 遵循我的 AWS 账户可能已泄露中的说明。
限制根用户对您的资源的访问
根用户账户凭证 (根密码或根访问密钥) 授予无限制访问您的账户及其资源的权限,因此,最好的做法是在确保安全的同时最大限度地减少根用户对账户的访问。
考虑以下策略来限制根用户对账户的访问:
经常审核 IAM 用户及其策略
使用 IAM 用户时,请考虑以下最佳实践:
- 确保为 IAM 用户提供最严格的策略,只包含用户完成预期任务所必需的权限 (最小权限)。
- 为每组任务创建不同的 IAM 用户。
- 当多个策略与同一个 IAM 用户关联时,请注意,严格程度最低的策略优先。
- 频繁审计您的 IAM 用户及其权限,并删除任何未使用的 IAM 用户或密钥。
- 如果您的 IAM 用户需要访问控制台,您可以设置允许访问控制台的密码,同时限制该用户的权限。
- 为每个有权访问控制台的 IAM 用户设置各自的 MFA 设备。
您可以使用 AWS 策略生成器帮助您定义安全策略。有关常见业务使用案例以及您可用于解决这些问题的策略的示例,请参阅商用案例。
监控账户及其资源
您可以联系 AWS Support 以解决账户活动问题。但是,出于隐私和安全考虑,AWS 不会主动监控您的使用情况并使用有限的工具来调查问题。最好主动监控您的账户及其资源,以检测任何异常活动或对账户的访问。考虑以下一个或多个解决方案:
- 启用 CloudWatch 账单提醒,从而在账单超过您定义的阈值时收到自动通知。
- 启用 CloudTrail 日志记录服务,以跟踪用于启动特定 API 调用的凭证以及何时使用的信息。这样做可帮助您确定该使用是意外还是未授权。您可以采取适当的步骤缓解这种情况。
- 将 CloudTrail 与 CloudWatch 结合使用,以监控访问密钥使用情况,并接收异常 API 调用的提醒。
- 启用资源级日志记录 (例如,在实例或操作系统级别)。
注意:如果可能,最好的做法是对所有区域启用日志记录,而不仅仅是您经常使用的区域。