Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

SAML 支持的第三方提供程序

Amazon EMR 与 AWS Lake Formation 之间的集成支持下列第三方提供程序的基于 SAML 2.0 的联合身份:Microsoft Active Directory 联合身份验证服务 (AD FS)、Auth0 和 Okta。以下部分提供的信息可帮助您配置这些 IdP 以便与 AWS Lake Formation 联合身份结合使用。

Auth0

Auth0 中的 AWS 集成 – Auth0 文档网站上的此页面介绍如何使用 AWS 管理控制台设置单点登录 (SSO)。它还包含 JavaScript 示例。

要启用对 Lake Formation 的联合身份访问,请在 Auth0 文档中自定义以下步骤:

  • 提供应用程序回调 URL 时,请提供临时 URL,如下例中所示。启动集群之后,使用主节点的实际 DNS 名称更新 public-dns

    https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client
  • 配置 SAML 时,将以下 SAML 配置代码粘贴到 Settings (设置) 中。

    { "audience": "urn:amazon:webservices", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" ] }
  • 将 AWS 角色映射到用户时,创建具有以下代码的规则。使用您创建的 Lake Formation 的 IAM 角色的名称替换 IAM_Role_For_Lake_Formation。使用您为 Auth0 创建的 IAM 身份提供程序的名称替换 IAM_identity_provider_name

    function (user, context, callback) { user.awsRole = 'arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name'; // the username must not contain "@" - as it is not a valid Linux username user.glueUser = user.name.replace(/@.*/, ''); context.samlConfiguration.mappings = { 'https://aws.amazon.com/SAML/Attributes/Role': 'awsRole', 'https://aws.amazon.com/SAML/Attributes/RoleSessionName': 'glueUser', 'https://lakeformation.amazon.com/SAML/Attributes/Username': 'glueUser' }; callback(null, user, context); }

Microsoft Active Directory 联合身份验证服务 (AD FS)

使用 Active Directory 联合身份验证服务 (AD FS) 的 AWS 联合身份验证 – AWS 安全博客上的这篇帖子演示了如何配置 AD FS 并对 AWS 启用 SAML 联合身份。

要启用对 Lake Formation 的联合身份访问,请自定义以下步骤:

  • 要添加信赖方信任,请手动输入信赖方的数据,而不是从现有 URL 导入元数据。选择 Permit all users to access this relying party (允许所有用户访问此信赖方) 选项。对于终端节点信任 URL,请提供临时 URL,如下例中所示。启动集群之后,使用主节点的实际 DNS 名称更新 public-dns

    https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client
  • Edit Claim Issuance Policy (编辑声明发布策略) 上,根据配置 IdP 和 Lake Formation 之间的信任关系中属性元素的值,自定义三个规则 NameIdRoleSessionNameRole

Okta

在 Okta 中设置 SAML 应用程序 – 从 Okta 支持网站的此页面,您可以了解如何通过提供有关信赖方的元数据来配置 Okta。

要启用对 Lake Formation 的联合身份访问,请自定义以下步骤:

  • 配置 SAML 时,对于 Single sign-on URL (单点登录 URL),请使用临时 URL,如下例所示。启动集群之后,使用主节点的实际 DNS 名称更新 public-dns

    https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client
  • 对于 Audience URI (SP Entity ID) (受众 URI (SP 实体 ID)) 框,填写 urn:amazon:webservices

  • Attribute Statements (属性语句) 部分中,添加以下过程中所示的三个属性语句。使用您创建的 Lake Formation 的 IAM 角色的名称替换 IAM_Role_For_Lake_Formation。使用您在之前步骤中创建的 IAM 身份提供程序的名称替换 IAM_identity_provider_name。使用属性(该属性用于保存在组织中定义的用户名)的名称替换 user_alias

    1. 名称: https://aws.amazon.com/SAML/Attributes/Role

      值:arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name

    2. 名称: https://aws.amazon.com/SAML/Attributes/RoleSessionName

      值:user_alias

    3. 名称: https://glue.amazon.com/SAML/Attributes/UserName

      值:user_alias