使用 Di AWS rectory Service 身份提供商 - AWS Transfer Family

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Di AWS rectory Service 身份提供商

本主题介绍如何使用 AWS Directory Service 身份提供商 AWS Transfer Family。

使用 AWS Directory Service for Microsoft Active Directory

您可以使用 AWS Transfer Family 对文件传输的最终用户进行身份验证 AWS Directory Service for Microsoft Active Directory。它可以无缝迁移依赖于活动目录身份验证的文件传输工作流程,而无需更改最终用户的凭证或需要自定义授权者。

借 AWS Managed Microsoft AD助,您可以安全地为 AWS Directory Service 用户和群组提供FTP对存储在亚马逊简单存储服务 (Amazon S3) 或亚马逊弹性文件系统 (Amazon) 中的数据的访问权限。SFTP FTPS EFS如果您使用活动目录来存储用户的凭证,则现在可以更轻松地为这些用户启用文件传输功能。

您可以使用 Active Directory 连接器在本地环境 AWS Managed Microsoft AD 中或 AWS 云端提供对 Active Directory 组的访问权限。你可以为已经在你的 Microsoft Windows 环境(无论是在 AWS 云端还是在其本地网络中)中配置的用户提供访问 AWS Managed Microsoft AD 用于身份的 AWS Transfer Family 服务器的权限。

注意
  • AWS Transfer Family 不支持 Simple AD。

  • Transfer Family 不支持跨区域活动目录配置:我们仅支持与 Transfer Family 服务器位于同一区域的活动目录集成。

  • Transfer Family 不支持使用任何一种 AWS Managed Microsoft AD 或 AD Connector 为RADIUS基于现有MFA的基础架构启用多因素身份验证 (MFA)。

  • AWS Transfer Family 不支持托管活动目录的复制区域。

要使用 AWS Managed Microsoft AD,必须执行以下步骤:

  1. 使用 AWS Directory Service 控制台创建一个或多个 AWS Managed Microsoft AD 目录。

  2. 使用 Transfer Family 控制台创建 AWS Managed Microsoft AD 用作其身份提供者的服务器。

  3. 添加来自一个或多个 AWS Directory Service 群组的访问权限。

  4. 尽管不是必需的,但我们建议您测试和验证用户访问权限。

开始使用之前 AWS Directory Service for Microsoft Active Directory

为您的 AD 组提供唯一标识符

在使用之前 AWS Managed Microsoft AD,必须为 Microsoft AD 目录中的每个群组提供唯一标识符。您可以使用每个组的安全标识符 (SID) 来执行此操作。您关联的群组中的用户可以使用 AWS Transfer Family 通过启用的协议访问您的 Amazon S3 或亚马逊EFS资源。

使用以下 Windows PowerShell 命令检索群组SID的,替换 YourGroupName 用群组的名字。

Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties * | Select SamAccountName,ObjectSid
注意

如果您使用 AWS Directory Service 作为身份提供商,如果userPrincipalNameSamAccountName具有不同的值,则 AWS Transfer Family 接受中的值SamAccountName。Transfer Family 不接受 userPrincipalName 中指定的值。

为您的角色添加 AWS Directory Service 权限

您还需要 AWS Directory Service API权限才能 AWS Directory Service 用作您的身份提供商。需要建议使用以下权限:

  • ds:DescribeDirectories 是 Transfer Family 查找目录所必需的

  • ds:AuthorizeApplication 是为 Transfer Family 添加授权所必需的

  • ds:UnauthorizeApplication 是移除所有临时创建的资源,以防服务器创建过程中出现问题所建议的

将这些权限添加到您用于创建 Transfer Family 服务器的角色中。有关这些权限的更多详细信息,请参阅AWS Directory Service API权限:操作、资源和条件参考

使用活动目录领域

在考虑如何让活动目录用户访问 AWS Transfer Family 服务器时,请记住用户的领域及其组的领域。理想情况下,用户的领域和他们所在群组的领域应该匹配。也就是说,用户和组都在默认领域中,或者两者都位于可信领域。如果不是这样,Transfer Family 将无法对用户进行身份验证。

您可以测试用户以确保配置正确。有关详细信息,请参阅测试用户。如果用户/组领域出现问题,则会收到错误未找到用户组的关联访问权限

选择 AWS Managed Microsoft AD 作为您的身份提供商

本节介绍如何与服务器 AWS Directory Service for Microsoft Active Directory 一起使用。

要与 Transfer Family AWS Managed Microsoft AD 一起使用
  1. 登录 AWS Management Console 并打开 AWS Directory Service 控制台,网址为https://console.aws.amazon.com/directoryservicev2/

    使用 AWS Directory Service 控制台配置一个或多个托管目录。有关更多信息,请参阅《 AWS Directory Service 管理员指南》中的 AWS Managed Microsoft AD

    Directory Service 控制台显示目录列表及其详细信息。
  2. 在打开 AWS Transfer Family 控制台 https://console.aws.amazon.com/transfer/,然后选择创建服务器

  3. 选择协议页面上,从列表中选择一个或多个协议。

    注意

    如果选择 FTPS,则必须提供 AWS Certificate Manager 证书。

  4. 选择身份提供程序中,选择 AWS 目录服务

    控制台屏幕截图显示“选择身份提供程序”部分,其中选择了“目录服务”。
  5. 目录列表包含您配置的所有托管目录。从列表中选择目录,然后选择下一步

    注意
  6. 要完成服务器的创建,请使用下列过程之一:

    在这些步骤中,继续执行选择身份提供程序之后的步骤。

重要

AWS Directory Service 如果你在 Transfer Family 服务器中使用了 Microsoft AD 目录,则无法将其删除。必须先删除服务器,然后才能删除目录。

授予对组的访问权限

创建服务器后,您必须选择目录中哪些组应有权通过启用的协议使用上传和下载文件 AWS Transfer Family。您可以通过创建访问权限来实现此目的。

注意

用户必须直接属于您授予访问权限的群组。例如,假设 Bob 是一个用户并且他属于 GroupA,而 GroupA 本身包含在 groupB 中。

  • 如果您向 GroupA 授予访问权限,Bob 就会被授予访问权限。

  • 如果您授予对 GroupB(而不是 GroupA)的访问权限,则 Bob 没有访问权限。

向组授予访问权限
  1. 打开 AWS Transfer Family 控制台,网址为https://console.aws.amazon.com/transfer/

  2. 导航到您的服务器详细信息页面。

  3. 访问权限部分中,选择添加访问权限

  4. 输入SID您想要访问此服务器的 AWS Managed Microsoft AD 目录。

    注意

    有关如何为您的小组SID查找的信息,请参阅开始使用之前 AWS Directory Service for Microsoft Active Directory

  5. 对于访问权限,为组选择一个 AWS Identity and Access Management (IAM) 角色。

  6. 策略部分,选择一个策略。默认设置为

  7. 对于主目录,选择与该组的主目录对应的 S3 存储桶。

    注意

    您可以通过创建会话策略来限制用户在存储桶中看到的部分。例如,要将用户限制在 /filetest 目录下他们自己的文件夹中,请在框中输入以下文本。

    /filetest/${transfer:UserName}

    要了解有关创建会话策略的更多信息,请参阅 为 Amazon S3 存储桶创建会话策略

  8. 选择添加以创建关联。

  9. 请选择您的服务器。

  10. 选择添加访问权限

    1. SID为该组输入。

      注意
  11. 选择添加访问权限

访问权限部分中,列出了服务器的访问权限。

控制台显示“访问权限”部分,其中列出了服务器访问权限。

测试用户

您可以测试用户是否有权访问您的服务器的 AWS Managed Microsoft AD 目录。

注意

用户必须正好属于端点配置页面的访问权限部分中列出的一个组(外部 ID)。如果用户不属于任何群组,或者属于多个群组,则不会向该用户授予访问权限。

测试特定用户是否具有访问权限
  1. 在服务器详细信息页面上,选择操作,然后选择测试

  2. 要进行身份提供程序测试,请输入其中一个具有访问权限的群组中的用户的登录凭证。

  3. 选择测试

您会看到身份提供程序测试成功,显示所选用户已被授予服务器访问权限。

成功的身份提供程序测试响应的控制台屏幕截图。

如果用户属于多个具有访问权限的群组,则您会收到以下响应。

"Response":"", "StatusCode":200, "Message":"More than one associated access found for user's groups."

删除群组的服务器访问权限

删除群组的服务器访问权限
  1. 在服务器详细信息页面上,选择操作,然后选择删除访问权限

  2. 在对话框中,确认您要移除该组的访问权限。

返回到服务器详细信息页面时,您会看到不再列出该组的访问权限。

使用SSH(安全外壳)连接到服务器

配置服务器和用户后,您可以使用具有访问权限的用户的完全限定用户名连接到服务器。SSH

sftp user@active-directory-domain@vpc-endpoint

例如:transferuserexample@mycompany.com@vpce-0123456abcdef-789xyz.vpc-svc-987654zyxabc.us-east-1.vpce.amazonaws.com

此格式以联合身份验证搜索为目标,限制了对可能很大的活动目录的搜索。

注意

您可以指定简单的用户名。但是,在这种情况下,活动目录代码必须搜索联合身份验证中的所有目录。这可能会限制搜索,即使用户本应具有访问权限,身份验证也可能失败。

身份验证后,用户位于在配置用户时指定的主目录中。

使用林和 AWS Transfer Family 信任连接到自我管理的 Active Directory

您自行管理的 Active Directory (AD) 中的用户也可以使用 AWS IAM Identity Center 单点登录访问 AWS 账户 和 Transfer Family 服务器。为此, AWS Directory Service 有以下选项可用:

  • 单向林信任(来自本地 Active Directory 的传出 AWS Managed Microsoft AD 和传入)仅适用于根域。

  • 对于子域,您可以使用以下方法之一:

    • 在 AWS Managed Microsoft AD 和本地活动目录之间使用双向信任

    • 对每个子域使用单向外部信任。

例如,当使用可信域连接到服务器时,用户需要指定可信域,例如 transferuserexample@mycompany.com

使用 AWS Azure 活动目录域服务的目录服务

  • 要利用现有的 Active Directory 林来满足您的SFTP传输需求,可以使用 A ctive Directory 连接器

  • 如果您想在完全托管的服务中获得活动目录的好处和高可用性,则可以使用 AWS Directory Service for Microsoft Active Directory。有关详细信息,请参阅使用 Di AWS rectory Service 身份提供商

本主题介绍如何使用活动目录连接器和 Azure 活动目录域服务 (AzureADDS) 通过 Az ure 活动目录对SFTP转移用户进行身份验证。

开始使用适用于 Azure 的 AWS 目录服务之前 Active Directory 域服务

对于 AWS,你需要以下内容:

  • 虚拟私有云 (VPC) 位于你使用 Transfer Family 服务器的 AWS 区域

  • 您的中至少有两个私有子网 VPC

  • VPC必须有互联网连接

  • 用于 site-to-siteVPN连接微软 Azure 的客户网关和虚拟专用网关

对于微软 Azure,您需要:

  • Azure 活动目录和活动目录域服务 (AzureADDS)

  • 一个 Azure 资源组

  • Azure 虚拟网络

  • VPN你的亚马逊VPC和你的 Azure 资源组之间的连接

    注意

    这可以通过本地IPSEC隧道或使用VPN设备实现。在本主题中,我们使用 Azure 虚拟网络网关和本地网络网关之间的IPSEC隧道。必须将隧道配置为允许 Azure ADDS 端点和容纳您的子网之间的流量。 AWS VPC

  • 用于 site-to-siteVPN连接微软 Azure 的客户网关和虚拟专用网关

下图显示了在开始之前所需的配置。

Azure 广告和 AWS Transfer Family 架构图。使用 AWS VPC连接到 Azure AD 域服务的 AWS 目录服务连接器,通过互联网连接到 Azure 虚拟网络。

步骤 1:添加 Azure 活动目录域服务

默认情况下,Azure AD 不支持域加入实例。要执行诸如加入域之类的操作以及使用组策略等工具,管理员必须启用 Azure Active Directory 域服务。如果您尚未添加 Azure AD DS,或者您的现有实现与您希望SFTP传输服务器使用的域没有关联,则必须添加一个新实例。

有关启用 Azure 活动目录域服务 (AzureADDS) 的信息,请参阅教程:创建和配置 Azure Active Directory 域服务托管域

注意

启用 Azure 时ADDS,请确保已针对要连接SFTP传输服务器的资源组和 Azure AD 域进行配置。

Azure AD 域服务屏幕显示资源组 bob.us 正在运行。

步骤 2:创建服务账号

Azure AD 必须有一个属于 Azure 管理员组的服务帐户ADDS。此帐户与 Act AWS ive Directory 连接器一起使用。确保此帐户与 Azure 同步ADDS。

显示用户个人资料的 Azure AD 屏幕。
提示

使用该SFTP协议的 Transfer Family 服务器不支持 Azure Active Directory 的多重身份验证。在用户进行身份验证后,Transfer Family 服务器无法提供MFA令牌。SFTP在尝试连接MFA之前,请务必禁用。

Azure AD 多重身份验证详细信息,显示两个用户的MFA状态为已禁用。

步骤 3:使用 AD Connector 设置 AWS 目录

在配置 Azure ADDS 并创建了在你和 Azure 虚拟网络之间有IPSECVPN隧道的服务帐户后,你可以通过从任何 AWS EC2实例执行 ping Azure ADDS DNS IP 地址来测试连接。 AWS VPC

在您确认连接处于活动状态后,您可以继续执行以下操作。

使用 AD Connector 设置您的 AWS 目录
  1. 打开 Directory Service 控制台并选择目录

  2. 选择设置目录

  3. 对于目录类型,请选择 AD Connector

  4. 选择目录大小,选择下一步,然后选择您的VPC和子网。

  5. 选择 下一步,然后如下所示填写各字段:

    • 目录DNS名称:输入你用于 Azure 的域名ADDS。

    • DNSIP 地址:输入你ADDS的 Azure IP 地址。

    • 服务器账户用户名密码:输入您在步骤 2:创建服务账户中创建的服务账户的详细信息。

  6. 完成屏幕内容以创建目录服务。

现在,目录状态应为 “活动”,并且可以与SFTP传输服务器一起使用了。

目录服务屏幕根据需要显示一个状态为 “活动” 的目录。

步骤 4:设置 AWS Transfer Family 服务器

使用SFTP协议和身份提供者类型为 “AWS 目录服务” 创建 Transfer Family 服务器。从目录下拉列表中,选择您在步骤 3:使用 AD Connector 设置 AWS 目录中添加的目录。

注意

如果你在 Transfer Family 服务器中使用了 Microsoft AD AWS 目录,则无法将其删除。必须先删除服务器,然后才能删除目录。

步骤 5:授予对组的访问权限

创建服务器后,您必须选择目录中哪些组应有权通过启用的协议使用上传和下载文件 AWS Transfer Family。您可以通过创建访问权限来实现此目的。

注意

用户必须直接属于您授予访问权限的群组。例如,假设 Bob 是一个用户并且他属于 GroupA,而 GroupA 本身包含在 groupB 中。

  • 如果您向 GroupA 授予访问权限,Bob 就会被授予访问权限。

  • 如果您授予对 GroupB(而不是 GroupA)的访问权限,则 Bob 没有访问权限。

要授予访问权限,您需要检索该群组SID的。

使用以下 Windows PowerShell 命令检索群组SID的,替换 YourGroupName 用群组的名字。

Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties * | Select SamAccountName,ObjectSid
窗口 PowerShell 显示SID正在检索的对象。
授予对组的访问权限
  1. 打开https://console.aws.amazon.com/transfer/

  2. 导航到您的服务器详细信息页面,然后在访问权限部分中,选择添加访问权限

  3. 输入SID您从上一个过程的输出中收到的。

  4. 在 “访问权限” 中,为群组选择一个 AWS Identity and Access Management 角色。

  5. 策略部分,选择一个策略。默认值为 None(无)。

  6. 对于主目录,选择与该组的主目录对应的 S3 存储桶。

  7. 选择添加以创建关联。

您的 Transfer 服务器中的详细信息应类似于以下内容:

Transfer Family 服务器详细信息屏幕的一部分,显示了身份提供者的目录 ID 示例。
Transfer Family 服务器详细信息屏幕的一部分,在屏幕的访问部分显示活动目录的外部 ID。

步骤 6:测试用户

您可以测试 (测试用户) 用户是否有权访问您的服务器的 AWS Managed Microsoft AD 目录。用户必须正好属于端点配置页面的访问权限部分中列出的一个组(外部 ID)。如果用户不属于任何群组,或者属于多个群组,则不会向该用户授予访问权限。