CreateUser - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

CreateUser

创建用户并将其与现有的安全文件传输协议 (SFTP) 服务器关联。您可以仅创建用户并将其与 IdentityProviderType 设置为 SERVICE_MANAGED 的服务器关联。使用的参数CreateUser,您可以指定用户名、设置主目录、存储用户的公钥以及分配用户的 Amazon Identity and Access Management (IAM) 角色。您还可以选择添加会话策略,并向可用于分组和搜索用户的标签分配元数据。

请求语法

{ "HomeDirectory": "string", "HomeDirectoryMappings": [ { "Entry": "string", "Target": "string", "Type": "string" } ], "HomeDirectoryType": "string", "Policy": "string", "PosixProfile": { "Gid": number, "SecondaryGids": [ number ], "Uid": number }, "Role": "string", "ServerId": "string", "SshPublicKeyBody": "string", "Tags": [ { "Key": "string", "Value": "string" } ], "UserName": "string" }

请求参数

有关所有操作的通用参数的信息,请参阅通用参数

请求接受采用 JSON 格式的以下数据。

HomeDirectory

用户使用客户端登录服务器时的登录目录(文件夹)。

HomeDirectory 示例为 /bucket_name/home/mydirectory

注意

HomeDirectory 参数仅在 HomeDirectoryType 设置为 PATH 时使用。

类型:字符串

长度约束:最小长度为 0。最大长度为 1024。

模式:(|/.*)

必需:否

HomeDirectoryMappings

逻辑目录映射指定哪些 Amazon S3 或 Amazon EFS 路径和密钥应对您的用户可见,以及使其对用户可见的方式。您需要指定EntryTarget对,其中 Entry 显示如何使路径可见,Target 是实际的 Amazon S3 或 Amazon EFS 路径。如果您只指定一个目标,则将按原样显示。您还必须确保您的 Amazon Identity and Access Management (IAM) 角色提供对中路径的访问权限Target。只有当HomeDirectoryType设置为LOGICAL时,才能设置此值。

以下是负载的示例。

[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]

在大多数情况下,您可以使用此值而不是会话策略将您的用户锁定到指定的主目录(“chroot”)。为此,您可以将 Entry 设置为 /,并将 Target 值设置为用户在登录时看到的主目录值。

以下是 的示例负载。

[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]

类型:HomeDirectoryMapEntry 对象数组

数组成员:最少 1 个物品。最大数量为 50000 件物品。

必需:否

HomeDirectoryType

您希望用户在登录服务器时,用户主目录的登录目录(文件夹)的类型。如果您将其设置为PATH,则用户将在其文件传输协议客户端中原样看到 Amazon S3 存储桶或 Amazon EFS 的绝对路径。如果您将其设置为LOGICAL,则需要针对您希望如何使 Amazon S3 或 Amazon EFS 路径对用户可见,在HomeDirectoryMappings中提供映射。

注意

如果HomeDirectoryTypeLOGICAL,则必须使用HomeDirectoryMappings参数提供映射。另一方面,如果HomeDirectoryTypePATH,则使用HomeDirectory参数提供绝对路径。您的模板中不能同时使用HomeDirectoryHomeDirectoryMappings

类型:字符串

有效值:PATH | LOGICAL

必需:否

Policy

适用于您的用户的会话策略,以便您可以跨多个用户使用同一 Amazon Identity and Access Management (IAM) 角色。此策略将用户的访问权限缩小至 Amazon S3 存储桶的一部分。可在此策略中使用的变量包括 ${Transfer:UserName}${Transfer:HomeDirectory}${Transfer:HomeBucket}

注意

仅当ServerId域为 Amazon S3 时,此政策才适用。Amazon EFS 不使用会话策略。

对于会话策略,将策略 Amazon Transfer Family 存储为 JSON blob,而不是策略的 Amazon 资源名称 (ARN)。您将策略保存为 JSON blob 并将其传递给 Policy 参数。

有关会话策略的示例,请参阅示例会话策略

有关更多信息,请参阅AssumeRole Amazon 安全令牌服务 API 参考》。

类型:字符串

长度约束:最小长度为 0。最大长度为 2048。

必需:否

PosixProfile

完整的 POSIX 身份,包括用户 ID (Uid)、组 ID (Gid) 和任何辅助组 ID (SecondaryGids),用于控制用户对 Amazon EFS 文件系统的访问。POSIX 权限针对文件系统中的文件和目录设置,用于确定用户在将文件传入和传出 Amazon EFS 文件系统时获得的访问权限级别。

类型:PosixProfile 对象

必需:否

Role

(IAM) 角色的亚马逊资源名称 (ARN),用于控制您的用户对您的 Amazon S3 存储桶或 Amazon EFS 文件系统的访问权限。 Amazon Identity and Access Management 附加到此角色的策略确定在将文件传入和传出 Amazon S3 桶或 Amazon EFS 文件系统时要为用户提供的访问权限级别。IAM 角色还应包含一个信任关系,从而允许服务器在为用户的传输请求提供服务时访问您的资源。

类型:字符串

长度约束:最小长度为 20。最大长度为 2048。

模式:arn:.*role/\S+

必需:是

ServerId

服务器实例的系统分配的唯一标识符。这是将您的用户添加到的特定服务器。

类型:字符串

长度限制:固定长度为 19。

模式:s-([0-9a-f]{17})

必需:是

SshPublicKeyBody

Secure Shell (SSH) 密钥的公共部分,用于为服务器验证用户身份。

三个标准的 SSH 公钥格式元素是<key type><body base64>和可选的<comment>,每个元素之间都有空格。

Amazon Transfer Family 接受 RSA、ECDSA 和 ED25519 密钥。

  • 对于 RSA 密钥,密钥类型为 ssh-rsa

  • 对于 ED25519 密钥,密钥类型为 ssh-ed25519

  • 对于 ECDSA 密钥,ecdsa-sha2-nistp256 字符串为ecdsa-sha2-nistp384、或,具体取决于您生成的密钥的大小。

类型:字符串

长度约束:最小长度为 0。最大长度为 2048。

必需:否

Tags

可用于分组和搜索用户的键/值对。标签是出于任何目的附加到用户的元数据。

类型:Tag 对象数组

数组成员:最少 1 个物品。最多 50 项。

必需:否

UserName

一个标识用户并与 ServerId 关联的唯一字符串。此用户名长度最少必须为 3 个字符,最多为 100 个字符。以下是有效的字符:a-z、A-Z、0-9、下划线“_”、连字符“-”、句点“.”和“@”符号。用户名不能以连字符、句点或 @ 符号开头。

类型:字符串

长度约束:最小长度为 3。最大长度为 100。

模式:[\w][\w@.-]{2,99}

必需:是

响应语法

{ "ServerId": "string", "UserName": "string" }

响应元素

如果此操作成功,则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

ServerId

用户连接到的服务器的 ID。

类型:字符串

长度限制:固定长度为 19。

模式:s-([0-9a-f]{17})

UserName

标识 TranserIn Family 用户的唯一字符串。

类型:字符串

长度约束:最小长度为 3。最大长度为 100。

模式:[\w][\w@.-]{2,99}

错误

有关所有操作返回的常见错误的信息,请参阅 常见错误

InternalServiceError

当 Amazon Transfer Family 服务中发生错误时,会引发此异常。

HTTP 状态代码:500

InvalidRequestException

当客户端提交格式错误的请求时,会引发此异常。

HTTP 状态代码:400

ResourceExistsException

请求的资源不存在,或者存在于为命令指定的区域以外的区域。

HTTP 状态代码:400

ResourceNotFoundException

当 Transfer Family 服务找不到资源时,就会 Amazon引发此异常。

HTTP 状态代码:400

ServiceUnavailableException

请求失败,因为 Trans Amazon fer Family 服务不可用。

HTTP 状态代码:500

示例

示例

例如,要创建用户,您可以先将参数保存至createUserParameters等 JSON 文件,然后运行 create-user API 命令。

{ "HomeDirectory": "/DOC-EXAMPLE-BUCKET", "HomeDirectoryType": "PATH", "Role": "arn:aws:iam::111122223333:role/bob-role", "ServerId": "s-1111aaaa2222bbbb3", "SshPublicKeyBody": "ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA... bobusa@mycomputer.us-east-1.amazon.com", "UserName": "bobusa-API" }

示例请求

aws transfer create-user --cli-input-json file://createUserParameters

示例响应

{ "ServerId": ""s-1111aaaa2222bbbb3", "UserName": "bobusa-API" }

另请参阅

有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: