在AWS RE:发明2020中,我们开设了一种用于管理多个帐户AWS权限和访问的新工具。我们非常兴奋地带给你合作(发音:Kuhn-Soul-Mee)及其Cli效用,哭泣(双关语)!
云中的成长已爆炸,现在比以往任何时候都更容易创建基础设施。超越软件工程团队的团体正站立自己的系统和自动化。这是一个惊人的运动,为产品创新提供了许多机会,但管理这一增长引入了确保适当的安全认证和amp的支持负担;授权,云卫生和可扩展过程。
在许多公司,管理云卫生和安全通常属于基础设施或安全团队。它们是云许可和访问的一站式商店。随着公司的规模,这种集中式和手动管理方法跌倒,对操作团队及其用户来说变得不切实际。
这发生在Netflix上。我们的云基础架构安全团队是AWS权限的仲裁器,处理Netflix员工的许多请求,用于云权限和访问。我们帮助Netflix内部云用户的历史方法看起来像这样:
我们澄清用户需求,为什么。对风险进行了分析,我们提出了更好的方法,如果适用。
我们使用适用的IAM角色登录AWS帐户并操纵该政策
如果请求涉及跨帐户资源,我们会退出AWS帐户,以资源登录帐户,并操作资源策略
在我们解析所有用户的问题之前,我们扮演一个权限的游戏(步骤3-7)
在Netflix,我们是坚定的信徒在赋予员工,并提供低摩擦系统,让用户以安全的方式获得工作。通过将诸如最低权限的最佳实践集成到IAM管道中,我们将安全团队从云的网守转换为云开发加速器。
Consoleme是AWS的自助式工具,可提供跨多个帐户管理权限和访问的更简单的方法,同时鼓励最少权限权限。用户可以使用以下功能:
在我们的文档中查看演示,通过登录我们的演示网站(需要Google帐户)来提供Consoleme测试骑行,然后使用自己的帐户在本地尝试。
Consoleme允许用户通过使用临时IAM角色凭据访问AWS控制台。在用户身份验证之后,Consoleme确定其授权根据其标识和组成员资格访问哪种角色。
Consoleme生成授权映射,用于确定允许哪些用户/组访问给定的IAM角色。可以通过角色标签生成此映射,该角色标签指示允许哪些用户/组检索角色的凭据,Consoleme的动态配置或通过组织的自定义逻辑。 (文件)。
用户有许多方法可以登录AWS控制台。最简单的方法是通过浏览到Consoleme并通过Web界面单击所需的角色。它们还可以使用URL参数登录特定角色,访问特定区域,AWS服务或AWS资源,而无需在Consoleme的Web界面周围导航。
在Netflix,我们已经看到了用户将Consoleme与Alfred,Chat Bots和自定义浏览器搜索引擎等生产力工具集成。
哭泣是Consoleme的CLI实用程序。它从Consoleme检索临时(1小时)AWS凭据,并提供了许多不同的方式来在本地服务。 Weev可以自动刷新凭据。这可确保长期寿命的AWS操作成功(如S3:GetObject Action,需要超过一个小时)。 Weev还可以透明地执行嵌套的假设呼叫,并为本地用户提供假定的角色凭据。 AWS CLI和AWS SDKS通过默认凭据提供程序链可发现凭据。
用户不再需要担心IAM JSON权限语法。他们可以简单地搜索其角色并选择所需的权限。 Consoleme将生成IAM策略,如果需要,如果需要,适用于请求的跨帐户资源策略。如果他们希望,用户可以修改生成的策略,然后提交批准。
自动批准低风险许可要求,由Consoleme配置和由Zelkova提供支持
Consoleme的自助服务向导减少了我们在维修访问请求中的响应时间,在我们的IAM策略中提供了更一致性,并为用户简化了AWS权限。
Consoleme为流行的资源类型提供了本机策略编辑器。管理员使用它来管理常用资源类型的权限和标记。最终用户可以操纵资源并提交策略更改请求。
今天,Consoleme支持少量流行的资源类型。我们希望您的帮助添加对新资源类型的支持。尚未与我们联系,或者更好地联系,创建一个问题或在Github上提交拉动请求。
Consoleme提供了从AWS Config中同步的最关键的云资源的集中式,可译的视图。它允许用户在组织内的所有帐户中快速查找AWS资源。
对于Consoleme没有本机策略编辑器的资源类型,Consoleme提供了将用户登录到AWS控制台的链接并将其重定向到适当的资源。
Consoleme使云管理员可以轻松地在多个AWS帐户中创建或克隆新的IAM角色。我们创建了这个功能,因为我们发现自己在AWS控制台中用手复制和粘贴各种策略。
克隆功能可以将以下一个或多个复制到新角色:
在Netflix,我们使用IAM角色而不是IAM用户,因为角色不允许长期静态凭据。 IAM用户凭据更容易受到意外曝光,难以旋转,并且通常更难确保。
此外,我们更倾向于为我们的IAM角色使用内联策略而不是托管策略,因为它更容易强制执行最少的权限,因为内联策略特定于IAM角色,而托管策略可以附加到多个角色。难以删除共享托管策略的权限,因为某些角色可能是源自策略的权限而不是其他角色。
我们使用Consoleme与Repokid一起删除未使用的权限,然后使其尽可能无痛地请求它们。
Conoleme在GitHub上提供(给我们一个★!)。您可以使用Docker尝试Consoleme。我们的文档中提供了一个快速入门指南。
Consoleme在准备部署时可以引用示例Terraform文件。
Consoleme还有很长的路要走,我们可以使用你的帮助。 Consoleme和Weep在Netflix的美国伟大工作,我们希望他们也为其他人工作。开始的最佳方法是阅读文档和代码,安装Consoleme,并查看我们的开放问题,以查看需要做些什么工作,或者自己提交问题。
不是编码器或IAM专家?没问题。我们有很多文档可以使用校对和澄清,使其更加平衡。
此外,我们正在招聘!如果您对这些问题感兴趣,请查看https://jobs.netflix.com/teams/security,并应用。
在过去的几年里,我们对测试的合作进行了战斗,并增加了在Netflix的需求中扩展的功能。我们现在在公开赛中带来了Consoleme。随着公司通过合作社,我们希望继续越来越多地解决大型云许可管理的独特挑战,我们的许多人面临。
我们有很多计划未来合作。这些目标中的许多目标都是雄心勃勃的,而且没有你的支持,我们不能这样做。如果其中任何一个激励您,请在我们的Discord频道上与我们联系,或在Github上提交功能增强功能。
AWS权限可能难以使用不透明访问拒绝错误调试。我们的目标是简化和自动化调试过程。这可能包括从以下来源中公开和连接信息:
理想情况下,用户将能够询问Consolem IAM角色是否可以对给定资源采取特定操作。如果没有,Consoleme将为有关防止行动的任何政策提供解释和背景。
我们计划添加支持团队角色创建和管理的功能。团队角色是整个团队可以访问的IAM角色。这些角色可以跨多个帐户传播,并且可以对每个帐户具有不同的权限。简化的管理界面将使您可以轻松地创建,请求或修改团队角色。
Consoleme仅支持资源类型子集的跨帐户策略生成。我们希望通过增加许可边界和服务控制策略,将来扩展这一点,并尽可能准确地制定生成的政策。
Cloud Administrators应该可以选择不再管理和查看所有策略请求。如果CONSOLEM对资源所有者有上下文,并且能够确定策略在一组定义的安全限制内,则应将策略请求路由到受策略影响的资源的所有者。
有时,我们需要回滚策略更改,即打破IAM角色或防止新功能工作。 Consoleme应该允许用户恢复旧快照的角色。
我们想特别感谢Srinath Kuruvadi,Jay Dhulia,Netflix的云基础设施安全团队,Netflix的Infosec团队以及我们的AWS合作伙伴。