本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CreateServer
在 AWS中基于所选文件传输协议实例化自动伸缩的虚拟服务器。当您更新启用文件传输协议的服务器或与用户一起工作时,使用分配给新创建的服务器的服务生成的 ServerId
属性。
请求语法
{
"Certificate": "string
",
"Domain": "string
",
"EndpointDetails": {
"AddressAllocationIds": [ "string
" ],
"SecurityGroupIds": [ "string
" ],
"SubnetIds": [ "string
" ],
"VpcEndpointId": "string
",
"VpcId": "string
"
},
"EndpointType": "string
",
"HostKey": "string
",
"IdentityProviderDetails": {
"DirectoryId": "string
",
"Function": "string
",
"InvocationRole": "string
",
"SftpAuthenticationMethods": "string
",
"Url": "string
"
},
"IdentityProviderType": "string
",
"LoggingRole": "string
",
"PostAuthenticationLoginBanner": "string
",
"PreAuthenticationLoginBanner": "string
",
"ProtocolDetails": {
"As2Transports": [ "string
" ],
"PassiveIp": "string
",
"SetStatOption": "string
",
"TlsSessionResumptionMode": "string
"
},
"Protocols": [ "string
" ],
"S3StorageOptions": {
"DirectoryListingOptimization": "string
"
},
"SecurityPolicyName": "string
",
"StructuredLogDestinations": [ "string
" ],
"Tags": [
{
"Key": "string
",
"Value": "string
"
}
],
"WorkflowDetails": {
"OnPartialUpload": [
{
"ExecutionRole": "string
",
"WorkflowId": "string
"
}
],
"OnUpload": [
{
"ExecutionRole": "string
",
"WorkflowId": "string
"
}
]
}
}
请求参数
有关所有操作的通用参数的信息,请参阅通用参数。
该请求接受以下JSON格式的数据。
- Certificate
-
(ARN) 证书的亚马逊资源名称 AWS Certificate Manager (ACM)。在
Protocols
设置为FTPS
时是必需的。要申请新的公共证书,请参阅《 AWS Certificate Manager 用户指南》中的申请公共证书。
要将现有证书导入ACM,请参阅 AWS Certificate Manager 用户指南ACM中的将证书导入。
要FTPS通过私有 IP 地址请求使用私有证书,请参阅《 AWS Certificate Manager 用户指南》中的申请私有证书。
支持具有以下加密算法和密钥大小的证书:
-
2048 位 (_2048RSA) RSA
-
4096 位 (_4096RSA) RSA
-
Elliptic Prime Curve 256 位 (EC_prime256v1)
-
Elliptic Prime Curve 384 位 (EC_secp384r1)
-
Elliptic Prime Curve 521 位 (EC_secp521r1)
注意
该证书必须是有效的SSL/TLSX.509 版本 3 证书,其中指定了FQDN或 IP 地址以及有关颁发者的信息。
类型:字符串
长度约束:最小长度为 0。长度上限为 1600。
必需:否
-
- Domain
-
指定用于文件传输的存储系统的域。有两个域名可用:亚马逊简单存储服务(Amazon S3)和亚马逊弹性文件系统(亚马逊EFS)。默认值为 S3。
注意
在创建服务器后,将无法更改域。
类型:字符串
有效值:
S3 | EFS
必需:否
- EndpointDetails
-
为您的服务器配置的虚拟私有云 (VPC) 端点设置。当您将终端节点托管在中时VPC,您可以将终端节点设置为仅供其中的资源访问VPC,也可以附加弹性 IP 地址,让客户端通过 Internet 访问您的终端节点。您的VPC默认安全组会自动分配给您的终端节点。
类型:EndpointDetails 对象
必需:否
- EndpointType
-
您希望服务器使用的端点类型。您可以选择将服务器的端点设置为可公开访问 (PUBLIC),也可以将其托管在您的服务器中VPC。使用托管在中的终端节点VPC,您可以限制对服务器和资源的访问权限,VPC也可以通过直接向其附加弹性 IP 地址来选择使其面向互联网。
注意
2021 年 5 月 19 日之后, AWS 账户 如果您的账户
EndpointType=VPC_ENDPOINT
在 2021 年 5 月 19 日之前尚未使用自己的服务器创建服务器,则您将无法使用创建服务器。如果您已EndpointType=VPC_ENDPOINT
在 2021 年 5 月 19 AWS 账户 日当天或之前创建过服务器,则不会受到影响。在此日期之后,使用EndpointType
=VPC
。有关更多信息,请参阅 停止使用 _ VPC ENDPOINT。
建议您使用
VPC
作为EndpointType
。使用此端点类型,您可以选择将最多三个弹性IPv4地址(包括 BYO IP)直接关联到服务器的终端节点,并使用VPC安全组通过客户端的公有 IP 地址限制流量。如果EndpointType
设置为VPC_ENDPOINT
,则无法实现此操作。类型:字符串
有效值:
PUBLIC | VPC | VPC_ENDPOINT
必需:否
- HostKey
-
用于SFTP已启用服务器的RSAECDSA、或ED25519私钥。如果要轮换密钥,可以添加多个主机密钥,也可以添加一组使用不同算法的活动密钥。
使用以下命令生成不带密码的 RSA 2048 位密钥:
ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key
.为
-b
选项使用最小值 2048。您可以使用 3072 或 4096 创建更强的密钥。使用以下命令生成不带密码的 ECDSA 256 位密钥:
ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key
.的
-b
选项的有效值ECDSA为 256、384 和 521。使用以下命令生成不带密码的ED25519密钥:
ssh-keygen -t ed25519 -N "" -f my-new-server-key
.对于所有这些命令,你可以my-new-server-key用你选择的字符串替换。
重要
如果您不打算将现有用户从SFTP已启用该功能的服务器迁移到新服务器,请不要更新主机密钥。意外更改服务器的主机密钥会导致中断。
有关更多信息,请参阅《 AWS Transfer Family 用户指南》中的更新SFTP已启用服务器的主机密钥。
类型:字符串
长度约束:最小长度为 0。最大长度为 4096。
必需:否
- IdentityProviderDetails
-
在
IdentityProviderType
设置为AWS_DIRECTORY_SERVICE
、AWS_LAMBDA
或API_GATEWAY
时是必需的。接受一个数组,其中包含使用目录AWS_DIRECTORY_SERVICE
或调用客户提供的身份验证API(包括API网关URL)所需的所有信息。在IdentityProviderType
设置为SERVICE_MANAGED
时不是必需的。类型:IdentityProviderDetails 对象
必需:否
- IdentityProviderType
-
服务器的身份验证模式。默认值为
SERVICE_MANAGED
,允许您在 AWS Transfer Family 服务中存储和访问用户凭证。用于提供
AWS_DIRECTORY_SERVICE
对本地环境中的活动目录组 AWS Directory Service for Microsoft Active Directory 或 Microsoft Active Directory 组的访问权限,或者 AWS 使用 AD Connector 提供访问权限。此选项还要求您使用IdentityProviderDetails
参数提供 Directory ID。使用
API_GATEWAY
值以与您选择的身份提供者集成。该API_GATEWAY
设置要求您使用IdentityProviderDetails
参数提供 Amazon API Gateway 终端节点URL以调用身份验证。使用该
AWS_LAMBDA
值可直接使用 AWS Lambda 函数作为您的身份提供商。如果您选择此值,则必须在IdentityProviderDetails
数据类型的Function
参数中ARN为 Lambda 函数指定。类型:字符串
有效值:
SERVICE_MANAGED | API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA
必需:否
- LoggingRole
-
() 角色的亚马逊资源名称 AWS Identity and Access Management (ARNIAM),允许服务器开启亚马逊 S3 或亚马逊的亚马逊 CloudWatch 日志记录EFSevents。设置后,您可以在 CloudWatch 日志中查看用户活动。
类型:字符串
长度约束:最小长度为 0。最大长度为 2048。
模式:
(|arn:.*role/\S+)
必需:否
- PostAuthenticationLoginBanner
-
指定用户连接到服务器时要显示的字符串。此字符串在用户进行身份验证后显示。
注意
该SFTP协议不支持身份验证后的显示横幅。
类型:字符串
长度约束:最小长度为 0。最大长度为 4096。
模式:
[\x09-\x0D\x20-\x7E]*
必需:否
- PreAuthenticationLoginBanner
-
指定用户连接到服务器时要显示的字符串。此字符串在用户进行身份验证前显示。例如,以下横幅显示有关使用系统的详细信息:
This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.
类型:字符串
长度约束:最小长度为 0。最大长度为 4096。
模式:
[\x09-\x0D\x20-\x7E]*
必需:否
- ProtocolDetails
-
为服务器配置的协议设置。
-
要指示被动模式(适用于FTP和FTPS协议),请使用
PassiveIp
参数。输入单个点分四边形IPv4地址,例如防火墙、路由器或负载平衡器的外部 IP 地址。 -
要忽略当客户端尝试对您上传到 S3 桶的文件使用
SETSTAT
命令时生成的错误,请使用SetStatOption
参数。要让 AWS Transfer Family 服务器忽略SETSTAT
命令并上传文件而不必对您的SFTP客户端进行任何更改,请将该值设置为ENABLE_NO_OP
。如果您将SetStatOption
参数设置为ENABLE_NO_OP
,Transfer Family 会生成一个到 Amazon Logs 的 CloudWatch 日志条目,以便您可以确定客户何时SETSTAT
拨打电话。 -
要确定您的 AWS Transfer Family 服务器是否通过唯一的会话 ID 恢复最近协商的会话,请使用
TlsSessionResumptionMode
参数。 -
As2Transports
表示AS2邮件的传输方法。目前仅支持 HTTP。
类型:ProtocolDetails 对象
必需:否
-
- Protocols
-
指定文件传输协议客户端可以用来连接到服务器端点的一个或多个文件传输协议。可用的协议包括:
-
SFTP
(Secure Shell (SSH) 文件传输协议):通过文件传输 SSH -
FTPS
(安全文件传输协议):TLS加密文件传输 -
FTP
(文件传输协议):未加密的文件传输 -
AS2
(适用性声明 2):用于传输结构化 business-to-business数据
注意
-
如果选择
FTPS
,则必须选择存储在 AWS Certificate Manager (ACM) 中的证书,该证书用于在客户端连接到服务器时识别您的服务器FTPS。 -
如果
Protocol
包括FTP
或FTPS
,则EndpointType
必须为VPC
,且IdentityProviderType
必须为AWS_DIRECTORY_SERVICE
、AWS_LAMBDA
或API_GATEWAY
。 -
如果
Protocol
包含FTP
,则无法关联AddressAllocationIds
。 -
如果仅将
Protocol
设置为SFTP
,则可以将EndpointType
设置为PUBLIC
,并且可以将IdentityProviderType
设置为任何支持的身份类型:SERVICE_MANAGED
、AWS_DIRECTORY_SERVICE
、AWS_LAMBDA
或API_GATEWAY
。 -
如果
Protocol
包括AS2
,则EndpointType
必须是VPC
,并且域必须是 Amazon S3。
类型:字符串数组
数组成员:最少 1 个物品。最多 4 项。
有效值:
SFTP | FTP | FTPS | AS2
必需:否
-
- S3StorageOptions
-
指定是否优化您的 Amazon S3 目录的性能。默认情况下,将禁用该功能。
默认情况下,主目录映射
TYPE
的值为。DIRECTORY
如果启用此选项,则需要将显式设置为,HomeDirectoryMapEntry
Type
以FILE
使映射具有文件目标。类型:S3StorageOptions 对象
必需:否
- SecurityPolicyName
-
指定连接到服务器的安全策略的名称。
类型:字符串
长度限制:长度下限为 0。最大长度为 100。
模式:
TransferSecurityPolicy-.+
必需:否
- StructuredLogDestinations
-
指定服务器日志发送到的日志组。
要指定日志组,必须ARN为现有日志组提供。在这种情况下,日志组的格式如下所示:
arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*
例如,
arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*
如果您之前为服务器指定了日志组,则可以通过在
update-server
调用中为该参数提供空值来清除该日志组,从而关闭结构化日志记录。例如:update-server --server-id s-1234567890abcdef0 --structured-log-destinations
类型:字符串数组
数组成员:最少 0 项。最多 1 项。
长度约束:最小长度为 20。长度上限为 1600。
模式:
arn:\S+
必需:否
- Tags
-
可用于分组和搜索服务器的键/值对。
类型:Tag 对象数组
数组成员:最少 1 个物品。最多 50 项。
必需:否
- WorkflowDetails
-
指定要分配的工作流的工作流 ID 以及用于执行工作流的执行角色。
除了要在文件完全上传时执行的工作流,
WorkflowDetails
还可能包含在部分文件上传时执行的工作流的工作流 ID(和执行角色)。在文件仍在上传时,如果断开连接,则会发生部分上传。类型:WorkflowDetails 对象
必需:否
响应语法
{
"ServerId": "string"
}
响应元素
如果操作成功,服务将发回 HTTP 200 响应。
以下数据由服务以JSON格式返回。
- ServerId
-
创建的服务器的服务分配标识符。
类型:字符串
长度限制:固定长度为 19。
模式:
s-([0-9a-f]{17})
错误
有关所有操作的常见错误信息,请参阅 常见错误。
- AccessDeniedException
-
您没有足够的访问权限,无法执行该操作。
HTTP状态码:400
- InternalServiceError
-
当 AWS Transfer Family 服务中发生错误时,会引发此异常。
HTTP状态码:500
- InvalidRequestException
-
当客户端提交格式错误的请求时,会引发此异常。
HTTP状态码:400
- ResourceExistsException
-
请求的资源不存在,或者存在于为命令指定的区域以外的区域。
HTTP状态码:400
- ResourceNotFoundException
-
当 Transfer Family 服务找不到资源时,就会 AWS引发此异常。
HTTP状态码:400
- ServiceUnavailableException
-
请求失败,因为 Trans AWS fer Family 服务不可用。
HTTP状态码:500
- ThrottlingException
-
由于请求限制而导致请求被拒绝。
HTTP状态码:400
示例
示例
以下示例使用 VPC_ENDPOINT
创建了一个新服务器。
示例请求
{
"EndpointType": "VPC",
"EndpointDetails":...,
"HostKey": "Your RSA private key",
"IdentityProviderDetails": "IdentityProvider",
"IdentityProviderType": "SERVICE_MANAGED",
"LoggingRole": "CloudWatchLoggingRole",
"Tags": [
{
"Key": "Name",
"Value": "MyServer"
}
]
}
示例
这是此次API呼叫的示例响应。
示例响应
{
"ServerId": "s-01234567890abcdef"
}
另请参阅
有关API在一种特定语言中使用此功能的更多信息 AWS SDKs,请参阅以下内容: