
众所周知,有多种方法可以实现相似的 SSO。 最近,我写了一篇有关使用 SAML(特别是 ADFS)将 SSO 设置到您的 AWS 账户中的文章。

尽管多数大型公司或老牌公司还在使用 Active Directory 进行 SSO 身份验证,但是较小的公司或初创公司可以选择使用AWS上进行 SSO 以降低成本。 那么,如果您仍然想使用集中式登录系统,也可以选择 AWS SSO,它也恰好是一项免费服务,让我们开始吧。
1.进行设置
在开始前,请务必记下 AWS SSO 的前提条件,因为这些前提条件很重要。
以下所有步骤都需要在 AWS 的主帐户中执行。
在 AWS 控制台中,搜索并打开 SSO 服务,您应该可以看到启用 AWS SSO 的选项。 与在 AWS 上实施 SAML 相似,AWS SSO 还使用安全令牌服务来提供对每个帐户的访问。作为设置过程的一部分,这里将在每个成员帐户中创建 IAM 角色,以允许 SSO 身份验证。


启用 SSO 后,我们需要创建一个或多个用户,这些用户将能够访问组织内的 AWS 账户。 如果您愿意,SSO 服务也可以使用 Active Directory 作为用户鉴权信息的来源,但是我在这里使用的是独立版本,因为您无需担心设置其他的 API 连接就能使它工作。
所有帐户的安全性也很合理,能够为不同的用户、组和帐户授予不同级别的访问权限。在我的示例中,我仅添加一个用户和一个管理员组,该组有权访问组织中的所有帐户。



接下来,我们选择“ AWS 账户”选项卡,其中显示了我所在账号组织下的账户列表清单。我想将我的管理员组分配给所有这些帐户,这样我就可以以管理员身份访问所有这些帐户,但是您也可以选择分配单个用户。 在“分配用户”界面中,选择“组”选项卡,然后选择我们要分配给所有帐户的“管理员”组。


2.下一步是添加权限集
权限集控制用户或组在通过身份验证时将具有的访问级别。有两种分配权限的方法,您可以使用预定义的访问级别,也可以按照与 IAM 控制台相同的方式创建自定义策略。
使用预定义角色要注意的一件事是,默认情况下,STS 令牌会在 1 小时后过期,这在与 API 交互时会很烦人。 在创建权限集后,我通常将到期时间延长到不那么烦人的程度。



我们都准备好了!
让我们尝试登录您的 URL,通常使用 https:// <name 或 id> .awsapps.com / start 之类的名称。 也可以自定义该 URL,以使您的团队更易于使用。

登录后,将出现一个 AWS Account 图标,其中将显示您的用户有权访问的 AWS 账户列表。 列出的每个帐户都可以通过控制台进行身份验证,也可以使用 API 凭据获得编程访问权限。

使用 API 凭据进行身份验证类似于创建 IAM 用户,并授权使用私密密钥,但是,因为您要继承角色(会生成一组临时凭据),所以您还有第三项,即会话令牌。即会话令牌仅在特定时期内有效,在此之后它将停止工作,您需要重新进行身份验证以获取新的一组凭据。

控制台访问可以按您期望的方式工作,您可以在控制台的标题栏中看到您扮演的角色,并且外观类似于 AWSReservedSSO_AdministratorAccess_xxxxxxxxx/gavin@domain.com

结论
AWS SSO 是一种快速简便的方法,可在账户中启动和运行 SSO,并且无需使用 saml2aws 之类的应用来通过特定的用户角色的编程访问。 如果用户帐户的集中管理对您很重要(几个合规计划通常需要),我建议将 SSO 服务与 Active Directory 集成在一起,或者至少使用 AWS 的 API 来自动进行上载和关闭帐户。
英文原文:
评论