本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:Amazon Quick Suite 和 IAM 身份联盟
| 适用于:企业版和标准版 |
| 目标受众:亚马逊 Quick Suite 管理员和亚马逊 Quick Suite 开发者 |
注意
IAM 联合身份验证不支持将身份提供商群组与 Amazon Quick Suite 同步。
在以下教程中,您可以找到将 IdP Okta 设置为 Amazon Quick Suite 的联合身份验证服务的演练。尽管本教程展示了 AWS Identity and Access Management (IAM) 和 Okta 的集成,但您也可以使用您选择的 SAML 2.0 来复制此解决方案。 IdPs
在以下步骤中,您将使用 Okta IdP 的AWS “账户联合” 快捷方式在 Okta IdP 中创建应用程序。Okta 对这个集成应用程序的描述如下:
“通过将 Okta 联合到亚马逊网络服务 (AWS) 身份和访问管理 (IAM) 账户,最终用户可以使用他们的 Okta 凭证获得对所有分配 AWS 角色的单点登录访问权限。在每个版本中 AWS 账户,管理员都设置联盟并配置 AWS 角色以信任 Okta。当用户登录时 AWS,他们将获得 Okta 单点登录体验,以查看分配给 AWS 他们的角色。然后,他们可以选择所需的角色,该角色定义了他们在进行身份验证会话期间的权限。拥有大量 AWS 账户的客户,可以选择使用 AWS 单点登录应用程序。” (https://www.okta.com/aws/)
使用 Okta 的 “AWS 账户联合” 应用程序快捷方式创建 Okta 应用程序
-
登录到您的 Okta 控制面板。如果你没有 Okta 开发者版账户,请使用这个 Amazon Quick Suit
e 品牌的网址创建一个免费的 Okta 开发者版账户。激活电子邮件后,登录 Okta。 -
在 Okta 网站上,选择左上角的 <> 开发人员控制台,然后选择经典 UI。
-
选择添加应用程序,然后选择添加应用程序。
-
在搜索中输入
aws,然后从搜索结果中选择 AWS 账户联合身份验证。 -
选择添加,创建此应用程序的实例。
-
对于应用程序标签,请输入
AWS Account Federation - Amazon Quick Suite。 -
选择下一步。
-
对于 SAML 2.0 的默认中继状态,请输入
https://quicksight.aws.amazon.com。 -
打开身份提供者元数据的关联(右键单击)菜单,然后选择保存文件。将文件命名为
metadata.xml。在下一个步骤中,您需要用到此文件。该文件的内容类似于以下内容。
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.okta.com/exkffz2hATwiVft645d5"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> MIIDpjCCAo6gAwIBAgIGAXVjA82hMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYDVQQGEwJVUzETMBEG . . (certificate content omitted) . QE/6cRdPQ6v/eaFpUL6Asd6q3sBeq+giRG4= </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> </md:IDPSSODescriptor> </md:EntityDescriptor> -
保存 XML 文件后,滚动到 Okta 页面的底部,然后选择完成。
-
如果可能,请保持此浏览器窗口处于打开状态。您将在本教程的后面需要用到它。
接下来,在 AWS 账户中创建身份提供者。
在 AWS Identity and Access Management (IAM) 中创建 SAML 提供商
-
登录 AWS 管理控制台 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,依次选择身份提供者、创建提供者。
-
输入以下设置:
-
提供者类型 – 从列表中选择 SAML。
-
提供者名称 – 输入
Okta。 -
元数据文档 – 上传上一个步骤中的 XML 文件
manifest.xml。
-
-
依次选择下一步、创建。
-
找到您创建的 IdP 并选择它以查看设置。记下提供者 ARN。要完成本教程,您需要用到它。
-
确认身份提供者是使用您的设置创建的。在 IAM 中,选择身份提供者、Okta(您添加的 IdP)、下载元数据。文件应该是您最新上传的文件。
接下来,您将创建一个 IAM 角色以允许 SAML 2.0 联合身份验证充当您的 AWS 账户可信实体。在此步骤中,您需要选择如何在 Amazon Amazon Quick Suite 中配置用户。您可以执行以下操作之一:
-
向 IAM 角色授予权限,以便首次访问的访客自动成为 Amazon Quick Suite 用户。
为 SAML 2.0 联合身份验证创建 IAM 角色作为受信任实体
-
登录 AWS 管理控制台 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 角色 和 创建角色。
-
对于选择受信任实体的类型,选择标有 SAML 2.0 联合身份验证的卡。
-
对于 SAML 提供者,选择在上一过程中创建的 IdP,例如
Okta。 -
启用允许编程和 AWS 管理控制台访问选项。
-
选择下一步: 权限。
-
将下面的策略粘贴到编辑器中。
在策略编辑器中,使用提供者的 Amazon 资源名称(ARN)更新 JSON。
{ "Version": "2012-10-17" , "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Resource": "arn:aws:iam::111111111111:saml-provider/Okta", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml" } } } ] } -
选择查看策略。
-
对于 Name (名称),输入
QuicksightOktaFederatedPolicy,然后选择 Create policy (创建策略)。 -
依次选择创建策略、JSON。
-
将下面的策略粘贴到编辑器中。
在策略编辑器中,使用您的 AWS 账户 ID 更新 JSON。它应与您在提供者 ARN 的先前策略中使用的账户 ID 相同。
{ "Version": "2012-10-17" , "Statement": [ { "Action": [ "quicksight:CreateReader" ], "Effect": "Allow", "Resource": [ "arn:aws:quicksight::111111111111:user/${aws:userid}" ] } ] }您可以省略 ARN 中的 AWS 区域 名称,如下所示。
arn:aws:quicksight::111111111111:user/$${aws:userid} -
选择查看策略。
-
对于 Name (名称),输入
QuicksightCreateReader,然后选择 Create policy (创建策略)。 -
通过选择右侧的刷新图标来刷新策略列表。
-
在搜索中,输入
QuicksightOktaFederatedPolicy。选择要将其启用的策略(
)。如果您不想使用自动预置,可以跳过以下步骤。
要添加 Amazon Quick Suite 用户,请使用注册用户。要添加 Amazon Quick Suite 群组,请使用创建群组。要将用户添加到 Amazon Quick Suite 群组,请使用create-group-membership。
-
(可选)在搜索中,输入
QuicksightCreateReader。选择要将其启用的策略(
)。如果您想自动配置 Amazon Quick Suite 用户,而不是使用亚马逊 Quick Suite API,请执行此步骤。
QuicksightCreateReader策略通过允许使用quicksight:CreateReader操作来激活自动预置。这样做会向首次使用的用户授予控制面板订阅用户(读者级别)的访问权限。Amazon Quick Suite 管理员稍后可以从 Amazon Quick Suite 个人资料菜单 “管理亚马逊 Quick Suite”、“管理用户” 中对其进行升级。 -
要继续附加 IAM 策略,请选择下一步:标签。
-
选择下一步:审核。
-
对于角色名称,输入
QuicksightOktaFederatedRole,然后选择创建角色。 -
执行以下步骤,验证您是否成功完成了此操作:
-
返回 IAM 控制台的主页,网址为https://console.aws.amazon.com/iam/
。您可以使用浏览器的返回按钮。 -
选择角色。
-
在搜索中,输入 Okta。QuicksightOktaFederatedRole从搜索结果中选择。
-
在策略的摘要页面上,查看权限选项卡。验证该角色是否具有您附加的一个或多个策略。它应该具有
QuicksightOktaFederatedPolicy。如果您选择添加创建用户的功能,它还应具有QuicksightCreateReader。 -
使用
图标打开每个策略。验证文本是否与此过程中显示的内容相匹配。仔细检查您是否添加了自己的 AWS 账户 号码来代替示例账号 111111111111。 -
在信任关系选项卡上,验证受信任实体字段是否包含身份提供者的 ARN。您可以通过打开身份提供者、Okta,在 IAM 控制台中仔细检查 ARN。
-
创建 Okta 的访问密钥
-
登录 AWS 管理控制台 并打开 IAM 控制台,网址为https://console.aws.amazon.com/iam/
。 -
添加允许 Okta 向用户显示 IAM 角色列表的策略。为此,依次选择策略、创建策略。
-
选择 JSON,然后输入以下策略。
{ "Version": "2012-10-17" , "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:ListAccountAliases" ], "Resource": "*" } ] } -
选择 Review Policy (查看策略)。
-
对于 Name (名称),请输入
OktaListRolesPolicy。然后选择创建策略。 -
添加用户,这样您就可以向 Okta 提供访问密钥。
在导航窗格中,依次选择用户、添加用户。
-
使用以下设置:
-
对于用户名,输入
OktaSSOUser。 -
对于访问类型,启用编程访问。
-
-
选择下一步:权限。
-
选择直接附上现有策略。
-
在 “搜索” 中
OktaListRolesPolicy,输入并OktaListRolesPolicy从搜索结果中进行选择。 -
依次选择 Next: Tags(下一步:标签)和 Next: Review(下一步:查看)。
-
选择创建用户。现在您可以获取访问密钥了。
-
选择下载 .csv,下载密钥文件。该文件包含与此屏幕上显示的相同访问密钥 ID 和秘密访问密钥。但是,由于 AWS 不会再次显示此信息,因此请务必下载该文件。
-
通过执行以下操作来验证您是否正确完成了此步骤:
-
打开 IAM 控制台,选择用户。搜索 O kta SSOUser,然后从搜索结果中选择用户名将其打开。
-
在 “权限” 选项卡上,确认OktaListRolesPolicy已附加。
-
使用
图标打开策略。验证文本是否与此过程中显示的内容相匹配。 -
在安全凭证选项卡上,您可以检查访问密钥,尽管您已经下载了该访问密钥。当您需要新的访问密钥时,可以返回此选项卡来创建访问密钥。
-
在以下步骤中,您将返回 Okta 以提供访问密钥。访问密钥可与您的新安全设置配合使用,允许 AWS 与 Okta IdP 配合使用。
使用设置完成 Okta 应用程序的 AWS 配置
-
返回您的 Okta 控制面板。如果要求这样做,请登录。如果开发人员控制台无法再打开,请选择管理员将其重新打开。
-
如果您必须重新打开 Okta,可以按照以下步骤返回本部分:
-
登录 Okta。选择应用程序。
-
选择AWS 账户联合-Amazon Quick Suit e(您在本教程开头创建的应用程序)。
-
选择常规和移动之间的登录选项卡。
-
-
滚动到高级登录设置。
-
对于身份提供者 ARN(仅适用于 SAML IAM 联合身份验证),请输入前一过程中的提供者 ARN,例如:
arn:aws:iam::111122223333:saml-provider/Okta -
选择完成或保存。按钮的名称会有所不同,具体取决于您是在创建还是在编辑应用程序。
-
选择预置选项卡,然后在该选项卡的下半部分,选择配置 API 集成。
-
开启启用 API 集成,显示设置。
-
对于访问密钥和私有密钥,请提供您之前下载到名为
OktaSSOUser_credentials.csv的文件中的访问密钥和私有密钥。 -
选择测试 API 凭证。在启用 API 集成设置的上方,查看一条确认 AWS 账户联合身份验证已成功验证的消息。
-
选择保存。
-
确保左侧突出显示到应用程序,然后在右侧选择编辑。
-
对于创建用户,开启启用选项。
-
选择保存。
-
在分配选项卡上的预置和导入旁边,选择分配。
-
执行以下一项或多项操作,启用联合访问:
-
要与个人用户合作,请选择分配给人员。
-
要与 IAM 组合作,请选择分配给组。您可以选择特定的 IAM 组或所有人(组织中的所有用户)。
-
-
对于每个 IAM 用户或组,执行以下操作:
-
选择分配、角色。
-
QuicksightOktaFederatedRole从 IAM 角色列表中选择。
-
对于 SAML 用户角色,请启用QuicksightOktaFederatedRole。
-
-
选择保存并返回,然后选择完成。
-
通过选择左侧的人员或组筛选条件,选中您输入的用户或组,验证您是否正确完成了此步骤。如果由于您创建的角色未出现在列表中而无法完成此过程,请返回之前的过程来验证设置。
使用 Okta(服务提供商登录 IdP)登录亚马逊 Quick Suite
-
如果您使用的是 Okta 管理员账户,请切换到用户模式。
-
使用已被授予联合访问权限的用户登录您的 Okta 应用程序控制面板。您应该会看到带有您标签的新应用程序,例如AWS 账户联合——Amazon Quick Suite。
-
选择应用程序图标以启动 “AWS 账户联合-Amazon Quick Suite”。
现在,您可以使用 Okta 管理身份,也可以通过 Quick Suite 使用联合访问权限。
以下过程是本教程的可选部分。如果您按照其步骤操作,则表示您授权 Amazon Quick Suite 代表您的用户向 IdP 转发授权请求。使用这种方法,用户无需先使用 IdP 页面登录即可登录 Amazon Quick Suite。
(可选)设置 Amazon Quick Suite 以向 Okta 发送身份验证请求
-
打开 Amazon Quick Suite,然后从个人资料菜单中选择 “管理 Amazon Quick Suite”。
-
从导航窗格中选择单点登录(IAM 联合身份验证)。
-
在配置 IdP 网址中,输入您的 IdP 提供的用于对用户进行身份验证的网址,例如 https://dev-.okta。
1-----0com/home/amazon_aws/0oabababababaGQei5d5/282。您可以在 Okta 应用程序页面的常规选项卡的嵌入链接中找到它。 -
对于 IdP URL,请输入
RelayState。 -
请执行以下操作之一:
-
要先使用您的身份提供者测试登录,请使用使用您的 IdP 开始测试中提供的自定义 URL。你应该到达 Amazon Quick Suite 的起始页面,例如 https://quicksight.aws.amazon.com/sn/开始。
-
要先测试使用 Amazon Quick Suite 登录,请使用测试 end-to-end体验中提供的自定义 URL。该
enable-sso参数将附加到 URL 中。如果是enable-sso=1,IAM 联合身份验证会尝试进行身份验证。如果是enable-sso=0,Amazon Quick Suite 不会发送身份验证请求,而你则像以前一样登录 Amazon Quick Suite。
-
-
对于状态,请选择开启。
-
选择保存,保存您的设置。
您可以创建指向 Amazon Quick Suite 控制面板的深度链接,以允许用户使用 IAM 联合身份直接连接到特定的控制面板。为此,您需要将中继状态标志和控制面板 URL 附加到 Okta 单点登录 URL,如下所述。
创建指向 Amazon Quick Suite 控制面板的深度链接以进行单点登录
-
在教程开头处下载的
metadata.xml文件中找到 Okta 应用程序的单点登录(IAM 联合身份验证)URL。您可以在文件底部附近的名为md:SingleSignOnService的元素中找到 URL。此属性命名为Location,值以/sso/saml结尾,如以下示例所示。<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-0000001.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml"/> -
获取 IAM 联合 URL 的值,
?RelayState=然后附加您的 Amazon Quick Suite 控制面板的 URL。RelayState参数会中继用户被重定向到身份验证 URL 时所处的状态(URL)。 -
在添加了中继状态的新 IAM 联合身份验证中,附加您的 Amazon Quick Suite 控制面板的 URL。结果 URL 应与以下内容类似。
https://dev-1-----0.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml?RelayState=https://us-west-2.quicksight.aws.amazon.com/sn/analyses/12a12a2a-121a-212a-121a-abcd12abc1ab -
如果您创建的链接打不开,请检查您使用的是否是来自
metadata.xml的最新 IAM 联合身份验证 URL。另请检查您用于登录的用户名是否未分配到多个 IAM 联合身份验证 Okta 应用程序中。