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

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

CreateUser

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

请求语法

{ "HomeDirectory": "string", "HomeDirectoryMappings": [ { "Entry": "string", "Target": "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

类型: 字符串

长度约束:长度上限为 1024。

模式:^$|/.*

:必需 否

HomeDirectoryMappings

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

以下EntryTarget对示例。

[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]

在大多数情况下,您可以使用此值将您的用户锁定到指定的主目录(”chroot“)。为了实现此目的,您可以设置Entry/并设置Target设置为 HomeDirectory 参数值。

以下EntryTarget对示例chroot.

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

注意

如果 Amazon S3 或 EFS 中不存在逻辑目录条目的目标,则将忽略该条目。作为一种解决方法,您可以使用 Amazon S3 API 或 EFS API 创建 0 字节对象作为目录的占位符。使用 CLI:s3api或者efsapi调用而不是s3或者efs,以便您可以使用 put-object 操作。例如,您使用以下内容:aws s3api put-object --bucket bucketname --key path/to/folder/. 请确保键名称以/将其视为一个文件夹。

类型: 数组HomeDirectoryMapEntryobjects

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

:必需 否

HomeDirectoryType

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

类型: 字符串

有效值: PATH | LOGICAL

:必需 否

Policy

适用于您的用户的范围缩小策略,可让您跨多个用户使用相同的 IAM 角色。此策略将用户的访问范围缩小至 Amazon S3 存储桶的一部分。可在此策略中使用的变量包括 ${Transfer:UserName}${Transfer:HomeDirectory}${Transfer:HomeBucket}

注意

这仅适用于 ServerId 的域为 S3 时。EFS 不使用范围缩小策略。

对于范围缩小范围政策,AmazonTransfer Family 将策略存储为 JSON blob,而不是策略的 Amazon 资源名称 (ARN)。您将策略保存为 JSON blob 并将其传递给 Policy 参数。

有关范围缩小策略的示例,请参阅范围缩小策略示例

有关更多信息,请参阅 。AssumeRole中的 AmazonSecurity Token Service.

类型: 字符串

长度约束:长度上限为 2048。

:必需 否

PosixProfile

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

类型:PosixProfile 对象

:必需 否

角色

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

类型: 字符串

长度约束:最小长度为 20。长度上限为 2048。

模式:arn:.*role/.*

:必需 是

ServerId

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

类型: 字符串

长度约束:固定长度为 19。

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

:必需 是

SSH-公共钥匙体

Secure Shell (SSH) 密钥的公有部分用于向服务器进行身份验证。

类型: 字符串

长度约束:长度上限为 2048。

模式:^ssh-rsa\s+[A-Za-z0-9+/]+[=]{0,3}(\s+.+)?\s*$

:必需 否

标签

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

类型: 数组Tagobjects

数组成员:最少 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

标识与服务器关联的用户账户的唯一字符串。

类型: 字符串

长度约束:最小长度为 3。长度上限为 100。

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

Errors

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

InternalServiceError

在AmazonTTransfer Family

HTTP 状态代码:500

InvalidRequestException

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

HTTP 状态代码:400

ResourceExistsException

请求的资源不存在。

HTTP 状态代码:400

ResourceNotFoundException

在资源找不到时,会引发此异常。AmazonTTransfer Family

HTTP 状态代码:400

ServiceUnavailableException

请求失败,因为Amazon酒店不提供 Transfer Family 服务。

HTTP 状态代码:500

Examples

Example

以下示例将用户与服务器关联。

示例请求

{ "HomeDirectory": "/bucket_name/home/mydirectory", "HomeDirectoryMappings": [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ], "HomeDirectoryType": "PATH", "Policy": { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFullAccessToBucket", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*" ] } ] }, "SshPublicKeyBody": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCOtfCAis3aHfM6yc8KWAlMQxVDBHyccCde9MdLf4DQNXn8HjAHf+Bc1vGGCAREFUL1NO2PEEKING3ALLOWEDfIf+JBecywfO35Cm6IKIV0JF2YOPXvOuQRs80hQaBUvQL9xw6VEb4xzbit2QB6", "Role": "arn:aws:iam::176354371281:role/my_role", "ServerId": "s-01234567890abcdef", "Tags": [ { "Key": "Group", "Value": "UserGroup1" } ], "UserName": "my_user" }

Example

此示例说明了 CreateUser 的一种用法。

示例响应

{ "ServerId": "s-01234567890abcdef", "UserName": "my_user" }

另请参阅

有关在特定语言的特定语言的服务器中使用此 API 的更多信息。Amazon开发工具包,请参阅: