

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

# 与服务托管用户合作
<a name="service-managed-users"></a>

您可以将 Amazon S3 或 Amazon EFS 服务托管用户添加到您的服务器，具体取决于服务器的**域**设置。有关更多信息，请参阅 [配置 SFTP、FTPS 或 FTP 服务器端点](tf-server-endpoint.md)。

如果您使用服务托管身份类型，则将用户添加到您启用文件传输协议的服务器。在执行此操作时，服务器上的各个用户名必须唯一。

要以编程方式添加服务管理用户，请参阅 AP [I 示例](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#API_CreateUser_Examples)。[CreateUser](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html)

**注意**  
对于服务管理用户，逻辑目录条目的限制为 2,000 个。有关使用逻辑目录的信息，请参见[使用逻辑目录简化您的 Transfer Family 目录结构](logical-dir-mappings.md)。

**Topics**
+ [添加 Amazon S3 服务托管用户](#add-s3-user)
+ [添加 Amazon EFS 服务托管用户](#add-efs-user)
+ [管理服务托管用户](#managing-service-managed-users)

## 添加 Amazon S3 服务托管用户
<a name="add-s3-user"></a>

**注意**  
 如果要配置跨账户 Amazon S3 存储桶，请按照知识中心文章中提到的步骤进行[操作：如何将 AWS Transfer Family 服务器配置为使用其他 AWS 账户中的 Amazon 简单存储服务存储桶？](https://aws.amazon.com/premiumsupport/knowledge-center/sftp-cross-account-s3-bucket/) 。

**将 Amazon S3 服务托管用户添加至您的服务器**

1. 打开 AWS Transfer Family 控制台 [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)，然后从导航窗格中选择 “**服务器**”。

1. 在**服务器**页面上，选中您要将用户添加到的服务器复选框。

1. 选择**添加用户**。

1. 在**用户配置**部分的**用户名**中，输入用户名。此用户名长度最少为 3 个字符，最多为 100 个字符 你可以在用户名中使用以下字符：a—z、、0—9 A-Z、下划线 '\_'、连字符 '-'、句点 '.' 和 at 符号 '@'。用户名不能以连字符 “-”、“句点” 或 “@” 开头。

1. 对于**访问权限**，选择您之前创建的提供对 Amazon S3 存储桶访问权限的 IAM 角色。

   您可使用[创建 IAM 角色和策略](requirements-roles.md)中的过程创建此 IAM 角色。该 IAM 角色包括一个提供对您 Amazon S3 存储桶访问权限的 IAM policy。它还包括与 AWS Transfer Family 服务的信任关系，该关系在另一个 IAM 策略中定义。如果您需要对用户进行精细的访问控制，请参阅使用[AWS Transfer Family 和 Amazon S3 增强数据访问控制](https://aws.amazon.com/blogs/storage/enhance-data-access-control-with-aws-transfer-family-and-amazon-s3-access-points/)博客文章。

1. （可选）对于**策略**，选择下列选项之一：
   + **无**
   + **现有策略**
   + **从 IAM 中选择策略**：允许您选择现有的会话策略。选择**查看**以查看包含策略详细信息的 JSON 对象。
   + **Auto-generate 基于主文件夹的策略**：为您生成会话策略。选择**查看**以查看包含策略详细信息的 JSON 对象。
**注意**  
如果您选择**基于Auto-generate 个人文件夹的策略**，请不要为此用户选择 “**受限**”。

   要了解有关会话策略的更多信息，请参阅[创建 IAM 角色和策略](requirements-roles.md)[为 Amazon S3 存储桶创建会话策略](users-policies-session.md)、或[动态权限管理方法](dynamic-permission-management.md)。

1. 对于**主目录**，选择用于存储要传输的数据的 Amazon S3 存储桶 AWS Transfer Family。输入用户在使用其客户端登录时转到的 `home` 目录的路径。

   如果您将此参数留空，则使用 Amazon S3 存储桶的 `root` 目录。在这种情况下，请确保您的 IAM 角色提供对此 `root` 目录的访问权限。
**注意**  
我们建议您选择包含用户的用户名的目录路径，这使得您可以更高效地使用会话策略。会话策略将用户在 Amazon S3 存储桶中的访问权限限制为该用户的 `home` 目录。

1. （可选）对于**受限**，选中该复选框，这样您的用户就无法访问该文件夹之外的任何内容，也看不到 Amazon S3 存储桶或文件夹名称。
**注意**  
为用户分配主目录并限制用户访问该主目录应该足以锁定用户对指定文件夹的访问权限。如果您需要应用进一步的控制措施，请使用会话策略。  
如果您为此用户选择 “**受限**”，则无法选择**基于个人文件夹的Auto-generate 策略**，因为个人文件夹不是为受限用户定义的值。

1. 对于 **SSH 公有密钥**，输入 SSH 密钥对的 SSH 公有密钥部分。

   您的密钥先由服务进行验证，然后才能添加新用户。
**注意**  
有关如何生成 SSH 密钥对的说明，请参阅 [为服务托管用户生成 SSH 密钥](sshkeygen.md)。

1. （可选）对于**键**和**值**，输入一个或多个标记作为键-值对，然后选择**添加标记**。

1. 选择 **Add (添加)** 可将您的新用户添加到所选服务器。

   新用户将出现在**服务器详细信息**页面的**用户**部分。

**后续步骤** — 对于下一步，请继续前往 [使用客户端通过服务器端点传输文件](transfer-file.md)。

## 添加 Amazon EFS 服务托管用户
<a name="add-efs-user"></a>

Amazon EFS 使用便携式操作系统接口 (POSIX) 文件权限模型来表示文件所有权。
+  有关 Amazon EFS 文件所有权的更多详细信息，请参阅 [Amazon EFS 文件所有权](configure-storage.md#efs-file-ownership)。
+ 有关为 EFS 用户设置目录的更多详细信息，请参阅 [为 Transfer Family 设置 Amazon EFS 用户](configure-storage.md#configure-efs-users-permissions)。

**将 Amazon EFS 服务托管用户添加至您的服务器**

1. 打开 AWS Transfer Family 控制台 [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)，然后从导航窗格中选择 “**服务器**”。

1. 在**服务器**页面上，选择要向其添加用户的 Amazon EFS 服务器。

1. 选择**添加用户**以显示**添加用户**页面。

1. 在**用户配置**部分中，使用以下设置。

   1. 此**用户名**长度最少为 3 个字符，最多为 100 个字符。你可以在用户名中使用以下字符：a—z、、0—9 A-Z、下划线 '\_'、连字符 '-'、句点 ' 。 '，并在符号 “@” 处。用户名不能以连字符“-”、句点“.”或“@”符号开头。

   1.  对于**用户 ID** 和**组 ID**，请注意以下几点：
      + 对于您创建的第一个用户，我们建议您为**组 ID** 和**用户 ID** 输入一个值 **0**。这将授予用户使用 Amazon EFS 的管理员权限。
      + 对于其他用户，请输入用户的 POSIX 用户 ID 和组 ID。这些 ID 用于用户执行的所有 Amazon Elastic File System 操作。
      + 对于**用户 ID** 和**组 ID**，请勿使用任何前导零。例如，可以接受 **12345**，但不能接受 **012345**。

   1. （可选）对于**辅助组 ID**，请为每个用户输入一个或多个其他 POSIX 组 ID，用逗号分隔。

   1. 对于**访问权限**，请选择符合以下条件的 IAM 角色：
      + 仅允许用户访问您希望他们访问的 Amazon EFS 资源（文件系统）。
      + 定义用户可以执行哪些文件系统操作和不能执行哪些文件系统操作。

      我们建议您使用具有挂载访问 read/write 权限和权限的 Amazon EFS 文件系统选择的 IAM 角色。例如，以下两个 AWS 托管策略的组合虽然相当宽松，但可以为您的用户授予必要的权限：
      +  AmazonElasticFileSystemClientFullAccess 
      +  AWSTransferConsoleFullAccess 

      有关更多信息，请参阅 [AWS Transfer Family 对 Amazon Elastic File System 的支持](https://aws.amazon.com/blogs/aws/new-aws-transfer-family-support-for-amazon-elastic-file-system/)博客文章。

   1. 对于**主目录**，请执行以下操作：
      + 选择您希望用于存储使用 AWS Transfer Family传输的数据的 Amazon EFS 文件系统。
      + 决定是否将主目录设置为**受限**。将主目录设置为**受限**会产生以下影响：
        + Amazon EFS 用户无法访问该文件夹之外的任何文件或目录。
        + Amazon EFS 用户看不到 Amazon EFS 文件系统名称 (**fs-xxxxxxx**)。
**注意**  
当您选择**受限**选项时，符号链接无法为 Amazon EFS 用户解析。
      + （可选）输入您希望用户在使用客户端登录时进入的主目录路径。

        如果您未指定主目录，则使用您的 Amazon EFS 文件系统的根目录。在这种情况下，请确保您的 IAM 角色提供对此根目录的访问权限。

1. 对于 **SSH 公有密钥**，输入 SSH 密钥对的 SSH 公有密钥部分。

   您的密钥先由服务进行验证，然后才能添加新用户。
**注意**  
有关如何生成 SSH 密钥对的说明，请参阅 [为服务托管用户生成 SSH 密钥](sshkeygen.md)。

1. （可选）为用户输入任何标签。对于**键**和**值**，输入一个或多个标记作为键-值对，然后选择**添加标记**。

1. 选择 **Add (添加)** 可将您的新用户添加到所选服务器。

   新用户将出现在**服务器详细信息**页面的**用户**部分。

 首次通过 SFTP 连接到 Transfer Family 服务器时可能会遇到的问题：
+  如果您运行 `sftp` 命令但提示符未出现，则可能会遇到以下消息：

   `Couldn't canonicalize: Permission denied` 

   `Need cwd` 

   在这种情况下，您必须增加用户角色的策略权限。您可以添加 AWS 托管策略，例如`AmazonElasticFileSystemClientFullAccess`。
+ 如果您在`sftp`提示`pwd`时输入查看用户的主目录，则可能会看到以下消息，其中{{USER-HOME-DIRECTORY}}是 SFTP 用户的主目录：

   `remote readdir("/{{USER-HOME-DIRECTORY}}"): No such file or directory` 

  在这种情况下，您应该能够导航到父目录 (`cd ..`)，并创建用户的主目录 (`mkdir {{username}}`)。

**后续步骤** — 对于下一步，请继续前往 [使用客户端通过服务器端点传输文件](transfer-file.md)。

## 管理服务托管用户
<a name="managing-service-managed-users"></a>

 在本部分中，您可以找到有关如何查看用户列表、如何编辑用户详细信息以及如何添加 SSH 公有密钥的信息。
+ [查看用户列表](#list-users)
+ [查看或编辑用户详细信息](#view-user-details)
+ [删除用户](#delete-user)
+ [添加 SSH 公钥](#add-user-ssh-key)
+ [删除 SSH 公钥](#delete-user-ssh-key)<a name="list-users"></a>

**查找您的用户列表**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 从导航窗格中选择**服务器**以显示**服务器**页面。

1. 选择**服务器 ID** 列中的标识符以查看**服务器详细信息**页面。

1. 在**用户**下，查看用户列表。<a name="view-user-details"></a>

**要查看或编辑用户详细信息**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 从导航窗格中选择**服务器**以显示**服务器**页面。

1. 选择**服务器 ID** 列中的标识符以查看**服务器详细信息**页面。

1. 在**用户**下，选择一个用户名以查看**用户详细信息**页面。

   您可以通过选择**编辑**来更改该页面上的用户属性。

1. 在**用户详细信息**页面上，选择**用户配置**旁边的**编辑**。  
![该图显示了编辑用户配置的屏幕](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-user-details-page-user-config.png)

1. 在**编辑配置**页面上的**访问权限**，选择您之前创建的 IAM 角色，该角色提供对您的 Amazon S3 存储桶的访问权限。

   您可使用[创建 IAM 角色和策略](requirements-roles.md)中的过程创建此 IAM 角色。该 IAM 角色包括一个提供对您 Amazon S3 存储桶访问权限的 IAM policy。它还包括与 AWS Transfer Family 服务的信任关系，该关系在另一个 IAM 策略中定义。

1. （可选）对于**策略**，请选择以下选项之一：
   + **无**
   + **现有策略**
   + **从 IAM 中选择策略**以选择现有策略。选择**查看**以查看包含策略详细信息的 JSON 对象。

   要了解有关会话策略的更多信息，请参阅 [创建 IAM 角色和策略](requirements-roles.md)。要了解有关创建会话策略的更多信息，请参阅 [为 Amazon S3 存储桶创建会话策略](users-policies-session.md)。

1. 对于**主目录**，选择用于存储要传输的数据的 Amazon S3 存储桶 AWS Transfer Family。输入用户在使用其客户端登录时转到的 `home` 目录的路径。

   如果您将此参数留空，则使用 Amazon S3 存储桶的 `root` 目录。在这种情况下，请确保您的 IAM 角色提供对此 `root` 目录的访问权限。
**注意**  
我们建议您选择包含用户的用户名的目录路径，这使得您可以更高效地使用会话策略。会话策略将用户在 Amazon S3 存储桶中的访问权限限制为该用户的 `home` 目录。

1. （可选）对于**受限**，选中该复选框，这样您的用户就无法访问该文件夹之外的任何内容，也看不到 Amazon S3 存储桶或文件夹名称。
**注意**  
当为用户分配主目录并限制用户访问该主目录时，这应该足以锁定用户对指定文件夹的访问权限。当您需要应用进一步的控制措施，请使用会话策略。

1. 选择 **保存** 以保存您的更改。<a name="delete-user"></a>

**删除用户**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 从导航窗格中选择**服务器**以显示**服务器**页面。

1. 选择**服务器 ID** 列中的标识符以查看**服务器详细信息**页面。

1. 在**用户**下，选择一个用户名以查看**用户详细信息**页面。

1. 在**用户详细信息**页面上，选择用户名右侧的**删除**。

1. 在显示的确认对话框中，输入单词 **delete**，然后选择**删除**以确认您要删除该用户。

 将从**用户**列表中删除该用户。<a name="add-user-ssh-key"></a>

**为用户添加 SSH 公钥**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在导航窗格中，选择**服务器**。

1. 选择**服务器 ID** 列中的标识符以查看**服务器详细信息**页面。

1. 在**用户**下，选择一个用户名以查看**用户详细信息**页面。

1. 选择 **Add SSH public key (添加 SSH 公有密钥)** 以向用户添加新的 SSH 公有密钥。
**注意**  
SSH 密钥仅由启用 Secure Shell (SSH) 文件传输协议 (SFTP) 的服务器使用。有关如何生成 SSH 密钥对的信息，请参阅 [为服务托管用户生成 SSH 密钥](sshkeygen.md)。

1. 对于 **SSH public key (SSH 公有密钥)**，输入 SSH 密钥对的 SSH 公有密钥部分。

   您的密钥先由服务进行验证，然后才能添加新用户。SSH 密钥的格式为 `ssh-rsa {{string}}`。要生成 SSH 密钥对，请参阅 [为服务托管用户生成 SSH 密钥](sshkeygen.md)。

1. 选择**添加密钥**。<a name="delete-user-ssh-key"></a>

**删除用户的 SSH 公钥**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在导航窗格中，选择**服务器**。

1. 选择**服务器 ID** 列中的标识符以查看**服务器详细信息**页面。

1. 在**用户**下，选择一个用户名以查看**用户详细信息**页面。

1. 要删除公钥，请选中其 SSH 密钥复选框并选择**删除**。