软件开发架构师

实战!5分钟在AWS上设置SSO-InfoQ

大数据 77 2019-10-17 02:40

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

实战!5分钟在AWS上设置SSO-InfoQ-1

尽管多数大型公司或老牌公司还在使用 Active Directory 进行 SSO 身份验证,但是较小的公司或初创公司可以选择使用 AWS 上进行 SSO 以降低成本。 那么,如果您仍然想使用集中式登录系统,也可以选择 AWS SSO,它也恰好是一项免费服务,让我们开始吧。

1. 进行设置

在开始前,请务必记下 AWS SSO 的前提条件,因为这些前提条件很重要。

以下所有步骤都需要在 AWS 的主帐户中执行。

在 AWS 控制台中,搜索并打开 SSO 服务,您应该可以看到启用 AWS SSO 的选项。 与在 AWS 上实施 SAML 相似,AWS SSO 还使用安全令牌服务来提供对每个帐户的访问。作为设置过程的一部分,这里将在每个成员帐户中创建 IAM 角色,以允许 SSO 身份验证。

实战!5分钟在AWS上设置SSO-InfoQ-2实战!5分钟在AWS上设置SSO-InfoQ-3

启用 SSO 后,我们需要创建一个或多个用户,这些用户将能够访问组织内的 AWS 账户。 如果您愿意,SSO 服务也可以使用 Active Directory 作为用户鉴权信息的来源,但是我在这里使用的是独立版本,因为您无需担心设置其他的 API 连接就能使它工作。

所有帐户的安全性也很合理,能够为不同的用户、组和帐户授予不同级别的访问权限。在我的示例中,我仅添加一个用户和一个管理员组,该组有权访问组织中的所有帐户。

实战!5分钟在AWS上设置SSO-InfoQ-4实战!5分钟在AWS上设置SSO-InfoQ-5实战!5分钟在AWS上设置SSO-InfoQ-6

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

实战!5分钟在AWS上设置SSO-InfoQ-7实战!5分钟在AWS上设置SSO-InfoQ-8

2. 下一步是添加权限集

权限集控制用户或组在通过身份验证时将具有的访问级别。有两种分配权限的方法,您可以使用预定义的访问级别,也可以按照与 IAM 控制台相同的方式创建自定义策略。

使用预定义角色要注意的一件事是,默认情况下,STS 令牌会在 1 小时后过期,这在与 API 交互时会很烦人。 在创建权限集后,我通常将到期时间延长到不那么烦人的程度。

实战!5分钟在AWS上设置SSO-InfoQ-9实战!5分钟在AWS上设置SSO-InfoQ-10实战!5分钟在AWS上设置SSO-InfoQ-11

我们都准备好了!

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

实战!5分钟在AWS上设置SSO-InfoQ-12

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

实战!5分钟在AWS上设置SSO-InfoQ-13

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

实战!5分钟在AWS上设置SSO-InfoQ-14

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

实战!5分钟在AWS上设置SSO-InfoQ-15

结论

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

英文原文:

SSO on AWS in 5 Minutes

文章评论