本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CreateUser
创建用户并将其与启用文件传输协议的现有服务器关联。您可以仅创建用户并将其与 IdentityProviderType
设置为 SERVICE_MANAGED
的服务器关联。可使用的CreateUser
参数指定用户名、设置主目录、存储用户的公有密钥和分配用户的Amazon Identity 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 路径和密钥应对您的用户可见,以及使其对用户可见的方式。您必须指定
Entry
和Target
对,其中Entry
显示如何使路径可见,是实际的 Amazon S3 或 Amazon EFS 路径。Target
如果您只指定一个目标,则将按原样显示。您还必须确保您的Amazon Identity and Access Management (IAM) 角色提供对中路径的访问权限Target
。只有在设置为 LOGHomeDirectoryType
IAL 时才能设置此值。以下是
Entry
和Target
对示例。[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]
在大多数情况下,您可以使用此值将您的用户锁定到指定的主目录 (”
chroot
“)。为此,您可以设置Entry
为参数值/
并Target
将其设置为 HomeDirectory参数值。以下是的
Entry
和Target
对示例chroot
。[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]
类型:HomeDirectoryMapEntry 对象数组
数组成员:最少 1 项。最多 50 项。
必需:否
- HomeDirectoryType
-
您希望用户在登录服务器时,用户主目录的登录目录(文件夹)的类型。如果您将其设置为
PATH
,则用户将在其文件传输协议客户端中原样看到 Amazon S3 桶或 EFS 的绝对路径。如果您将其设置为LOGICAL
,则需要针对您希望如何使 Amazon S3 或 Amazon EFS 路径对用户可见,在HomeDirectoryMappings
中提供映射。类型:字符串
有效值:
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
参数。有关会话策略的示例,请参阅示例会话策略。
有关更多信息,请参阅Amazon安全令牌服务 API 参考AssumeRole中的。
类型:字符串
长度限制:最大长度为 2048。
必需:否
- PosixProfile
-
指定完整的 POSIX 身份,包括用户 ID (
Uid
)、组 ID (Gid
) 和任何辅助组 ID (SecondaryGids
),用于控制用户对 Amazon EFS 文件系统的访问。POSIX 权限针对文件和目录设置,用于确定用户在将文件传入和传出 Amazon EFS 文件系统时获得的访问权限级别。类型:PosixProfile 对象
必需:否
- Role
-
控制用户对 Amazon S3 桶或 Amazon EFS 文件系统访问权限的 Amazon Identity and Access Management(IAM)角色的 Amazon 资源名称(ARN)。附加到此角色的策略确定在将文件传入和传出 Amazon S3 桶或 Amazon EFS 文件系统时要为用户提供的访问权限级别。IAM 角色还应包含一个信任关系,从而允许服务器在为用户的传输请求提供服务时访问您的资源。
类型:字符串
长度限制:最小长度为 20。最大长度为 2048。
模式:
arn:.*role/.*
必需:是
- ServerId
-
服务器实例的系统分配的唯一标识符。这是将您的用户添加到的特定服务器。
类型:字符串
长度限制:固定长度为 19。
模式:
^s-([0-9a-f]{17})$
必需:是
- SshPublicKeyBody
-
安全外壳 (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
ecdsa-sha2-nistp521
、或,具体取决于您生成的密钥的大小。
类型:字符串
长度限制:最大长度为 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 格式返回的以下数据。
错误
有关所有操作常见错误的信息,请参阅常见错误。
- InternalServiceError
-
当 Transfer Family 服务中发生错误时,会Amazon引发此异常。
HTTP 状态代码:500
- InvalidRequestException
-
当客户端提交格式错误的请求时,会引发此异常。
HTTP 状态代码:400
- ResourceExistsException
-
请求的资源不存在。
HTTP 状态代码:400
- ResourceNotFoundException
-
当 Transfer Family 服务找不到资源时,会Amazon引发此异常。
HTTP 状态代码:400
- ServiceUnavailableException
-
由于 Transfer FamAmazon ily 服务不可用,请求失败。
HTTP 状态代码:500
示例
示例
要创建用户,您可以先将参数保存到 JSON 文件中,例如createUserParameters
,然后运行 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 软件开发工具包中使用此 API 的更多信息,请参阅以下内容: