Joe*_*e B 4 keys amazon-web-services
我的公司使用 AWS 进行计算、存储、数据库等。但是,他们使用根密钥来访问所有内容,出于安全目的,我正试图摆脱它。任何泄漏都可能导致灾难性的数据泄漏,或导致 AWS 的账单大幅下降。我想通过许可密钥(我知道如何做到这一点)并让密钥在 x 周后自动过期来尽可能地防止这种情况发生。
我做了一些探索,还没有找到完美的东西。我发现的最接近的是以下内容。(我们使用Azure给用户授权AWS)是一个工具,允许aws cli通过azure授权访问aws:https : //github.com/dtjohnson/aws-azure-login
以上为我们提供了通过 cli 访问 AWS 某些部分的日常授权。然而,这并不完全是我们想要的。为方便起见,管理层更喜欢更长的到期时间,我们需要实际的密钥才能使用 Cyberduck 之类的工具并在 AWS 中启动实例等。
是否可以按用户创建每 X 周到期并需要新的密钥请求的密钥?
根用户
root 用户应该启用 MFA,然后将其锁定并从不使用。永远不要为 root 用户创建访问密钥。
IAM 管理员
创建一个需要 MFA 的 IAM 管理员用户,该用户拥有完整的权限,包括计费。
IAM 策略和组
接下来创建一个 IAM 策略,让用户可以访问他们被允许使用的服务和功能。该策略应要求 MFA 已用于所有功能,但被允许进入 IAM 以设置 MFA。将此策略附加到组。您可以根据需要创建任意数量的策略和组。如果您看到任何好处,您可以使用服务控制策略进一步锁定问题。您可以在 IAM 或 SCP 中执行区域强制和防止使用昂贵资源(例如 GPU 实例或 RedShift / RDS)等操作。
联合或 IAM 用户
现在,将您的账户联合到本地活动目录,或创建 IAM 用户并将其添加到组中。不要直接向用户添加策略。这些用户可以拥有访问密钥,但它们也受 MFA 的约束。
联邦链接:一,二。关键搜索词是“AWS Active Directory 联合”。
两周
我怀疑两周的请求是一个红鲱鱼。一旦正确设置了所有用户,您就不需要经常更改访问密钥 - 每隔几个月就足够了,或者最多一年。
结果
所有这些都使您可以很好地控制您的帐户,让您跟踪谁做了什么(确保启用 Cloud Trail 并保护存储桶),减少黑客增加账单的风险,以及可能还有其他好处。
小智 5
请勿对您的 AWS 账户根用户使用访问密钥。使用 IAM 用户与 AWS 进行日常交互。现在这已经不成问题了...
您可以创建 IAM 角色而不是用户并生成临时安全凭证。它们具有访问密钥 ID、秘密访问密钥和指示凭据何时过期的安全令牌。
通常,访问密钥在您手动撤销之前一直有效。但是,通过 IAM 角色和 AWS Security Token Service 的其他功能获取的临时安全凭证会在短时间内过期。
在您讨论实例或 CLI 脚本而不是向应用程序传递或嵌入访问密钥的示例中,定义一个对您的应用程序具有适当权限的 IAM 角色,并使用 EC2 角色启动 Amazon EC2 实例。这会将 IAM 角色与 Amazon EC2 实例关联起来,并让应用程序获取临时安全凭证,然后使用该凭证进行调用。CLI 可以自动从角色获取临时凭证。