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

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

CreateServer

在 Amazon 中基于所选文件传输协议实例化自动伸缩的虚拟服务器。当您更新启用文件传输协议的服务器或与用户一起工作时,使用分配给新创建的服务器的服务生成的 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", "Url": "string" }, "IdentityProviderType": "string", "LoggingRole": "string", "PostAuthenticationLoginBanner": "string", "PreAuthenticationLoginBanner": "string", "ProtocolDetails": { "As2Transports": [ "string" ], "PassiveIp": "string", "SetStatOption": "string", "TlsSessionResumptionMode": "string" }, "Protocols": [ "string" ], "SecurityPolicyName": "string", "Tags": [ { "Key": "string", "Value": "string" } ], "WorkflowDetails": { "OnPartialUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ], "OnUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ] } }

请求参数

有关所有操作的常用参数的信息,请参阅Commmmmm mon Parameters

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

Certificate

Amazon Certificate Manager(ACM)证书的 Amazon 资源名称(ARN)。在 Protocols 设置为 FTPS 时是必需的。

要请求新的公有证书,请参阅《Amazon Certificate Manager 用户指南》中的请求公有证书

要将现有证书导入到 ACM,请参阅《Amazon Certificate Manager 用户指南》中的将证书导入到 ACM

要请求私有证书以通过私有 IP 地址使用 FTPS,请参阅《Amazon Certificate Manager 用户指南》中的请求私有证书

支持具有以下加密算法和密钥大小的证书:

  • 2048 位 RSA (RSA_2048)

  • 4096 位 RSA (RSA_4096)

  • Elliptic Prime Curve 256 位 (EC_prime256v1)

  • Elliptic Prime Curve 384 位 (EC_secp384r1)

  • Elliptic Prime Curve 521 位 (EC_secp521r1)

注意

证书必须是指定了 FQDN 或 IP 地址且具有有关颁发者的信息的有效 SSL/TLS X.509 版本 3 证书。

类型:字符串

长度约束:最大长度为 1600。

必需:否

Domain

用于文件传输的存储系统的域。有两个域可用:Amazon Simple Storage Service(Amazon S3)和 Amazon EFS。默认值是 S3。

注意

在创建服务器后,将无法更改域。

类型:字符串

有效值: S3 | EFS

必需:否

EndpointDetails

要为服务器配置的 Virtual Private Cloud (VPC) 端点设置。当您在 VPC 中托管端点时,您可以使端点仅可供 VPC 内的资源访问,也可以附加弹性 IP 地址并使端点可由客户端通过 Internet 访问。您 VPC 的默认安全组会自动分配到您的端点。

类型:EndpointDetails 对象

必需:否

EndpointType

您希望服务器使用的端点类型。您可以选择使服务器的端点可公开访问(PUBLIC),或将其托管在 VPC 内。如果端点在 VPC 中托管,您可以仅在 VPC 内限制对服务器和资源的访问,或者通过将弹性 IP 地址直接附加到其上,使其面向 Internet。

注意

2021 年 5 月 19 日之后,Amazon Web Services 账户如果您的账户EndpointType=VPC_ENDPOINT在 2021 年 5 月 19 日之前还没有使用您的服务器创建服务器,则您将无法使用创建服务器。如果您EndpointType=VPC_ENDPOINT在 2021 年 5 月 19 日当天或之前已经使用创建了服务器,则不会受到影响。Amazon Web Services 账户在此日期之后,使用EndpointType =VPC

有关更多信息,请参阅停止使用 VPC_ENDPOINT

建议您使用 VPC 作为 EndpointType。使用此终端节点类型,您可以选择将最多三个弹性 IPv4 地址(包括 BYO IP)直接与服务器的终端节点相关联,并使用 VPC 安全组限制客户端的公有 IP 地址的流量。如果 EndpointType 设置为 VPC_ENDPOINT,则无法实现此操作。

类型:字符串

有效值: PUBLIC | VPC | VPC_ENDPOINT

必需:否

HostKey

用于支持 SFTP 的服务器的 RSA、ECDSA 或 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.

ECDSA-b 选项的有效值为 256、384 和 521。

使用以下命令生成不带密码的 ED25519 密钥:

ssh-keygen -t ed25519 -N "" -f my-new-server-key.

对于所有这些命令,你可以my-new-server-key用你选择的字符串替换。

重要

如果您不打算将现有用户从支持 SFTP 的现有服务器迁移到新服务器,请不要更新主机密钥。意外更改服务器的主机密钥会导致中断。

有关更多信息,请参阅《Amazon Transfer Family用户指南》为启用 SFTP 的服务器更新主机密钥

类型:字符串

长度约束:最大长度为 4096。

必需:否

IdentityProviderDetails

IdentityProviderType 设置为 AWS_DIRECTORY_SERVICEAPI_GATEWAY 时是必需的。接受包含使用 AWS_DIRECTORY_SERVICE 中的目录或调用客户提供的身份验证 API(包括 API 网关 URL)所需的所有信息的数组。在 IdentityProviderType 设置为 SERVICE_MANAGED 时不是必需的。

类型:IdentityProviderDetails 对象

必需:否

IdentityProviderType

服务器的身份验证模式。默认值为 SERVICE_MANAGED,这允许您在 Amazon Transfer Family 服务中存储和访问用户凭证。

使用 AWS_DIRECTORY_SERVICE 可以访问 Active Directory 组,这些组位于本地环境中或使用 AD Connector 的 Amazon 的 Amazon Directory Service for Microsoft Active Directory 或 Microsoft Active Directory 中。此选项还要求您使用 IdentityProviderDetails 参数提供 Directory ID。

使用 API_GATEWAY 值以与您选择的身份提供者集成。API_GATEWAY 设置要求您提供 Amazon API Gateway 端点 URL 以使用 IdentityProviderDetails 参数调用身份验证。

使用 AWS_LAMBDA 值直接将 Amazon Lambda 函数用作身份提供者。如果选择该值,则必须在 Function 参数或 IdentityProviderDetails 数据类型中指定 Lambda 函数的 ARN。

类型:字符串

有效值: SERVICE_MANAGED | API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA

必需:否

LoggingRole

允许服务器为 Amazon S3 或 Amazon EFS CloudWatch 事件开启 Amazon S3 或 Amazon EFS 事件开启 Amazon 资源名称Amazon Identity and Access Management(ARN)。设置后,您可以在 Omazon 中查看用户 CloudWatch 活动。

类型:字符串

长度限制:最小长度为 20。最大长度为 2048。

模式:arn:.*role/.*

必需:否

PostAuthenticationLoginBanner

指定用户连接到服务器时要显示的字符串。此字符串在用户进行身份验证后显示。

注意

SFTP 协议不支持身份验证后显示横幅。

类型:字符串

长度约束:最大长度为 512。

模式:[\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.

类型:字符串

长度约束:最大长度为 512。

模式:[\x09-\x0D\x20-\x7E]*

必需:否

ProtocolDetails

为服务器配置的协议设置。

  • 要指示被动模式(适用于 FTP 和 FTPS 协议),请使用 PassiveIp 参数。输入一个点分四组的 IPv4 地址,例如防火墙、路由器或负载均衡器的外部 IP 地址。

  • 要忽略当客户端尝试对您上传到 S3 桶的文件使用 SETSTAT 命令时生成的错误,请使用 SetStatOption 参数。要使 Amazon Transfer Family 服务器忽略 SETSTAT 命令,并上传文件而无需对您的 SFTP 客户端进行任何更改,将该值设置为 ENABLE_NO_OP。如果将SetStatOption参数设置为ENABLE_NO_OP,Transfer Family 会在 Amazon Logs 中生成一个 CloudWatch 日志条目,因此您可以确定客户端何时进行SETSTAT呼叫。

  • 要确定 Amazon Transfer Family 服务器是否会通过唯一的会话 ID 恢复最近协商的会话,请使用 TlsSessionResumptionMode 参数。

  • As2Transports 指示 AS2 消息的传输方法。目前仅支持 HTTP。

类型:ProtocolDetails 对象

必需:否

Protocols

指定文件传输协议客户端可以用来连接到服务器端点的一个或多个文件传输协议。可用的协议包括:

  • SFTP(Secure Shell (SSH) 文件传输协议):通过 SSH 的文件传输

  • FTPS(文件传输协议安全):使用 TLS 加密的文件传输

  • FTP(文件传输协议):未加密的文件传输

  • AS2(适用性声明 2):用于传输结构化 business-to-business 数据

注意
  • 如果选择 FTPS,则必须选择存储在 Amazon Certificate Manager(ACM)中的证书,该证书将用于在客户端通过 FTPS 连接到服务器时标识服务器。

  • 如果Protocol包含FTPFTPS,则EndpointType必须是VPCIdentityProviderType必须是AWS_DIRECTORY_SERVICEAWS_LAMBDA、或API_GATEWAY

  • 如果 Protocol 包含 FTP,则无法关联 AddressAllocationIds

  • 如果仅设置ProtocolSFTP,则EndpointType可以将其设置为PUBLICIdentityProviderType也可以设置为任何支持的身份类型:SERVICE_MANAGEDAWS_DIRECTORY_SERVICEAWS_LAMBDA、或API_GATEWAY

  • 如果 Protocol 包括 AS2,则 EndpointType 必须是 VPC,并且域必须是 Amazon S3。

类型:字符串数组

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

有效值: SFTP | FTP | FTPS | AS2

必需:否

SecurityPolicyName

指定连接到服务器的安全策略的名称。

类型:字符串

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

模式:TransferSecurityPolicy-.+

必需:否

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

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

HTTP 状态代码:500

InvalidRequestException

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

HTTP 状态代码:400

ResourceExistsException

请求的资源不存在。

HTTP 状态代码:400

ResourceNotFoundException

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

HTTP 状态代码:400

ServiceUnavailableException

由于 Transfer FamAmazon ily 服务不可用,请求失败。

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" }

另请参阅

有关在特定语言的 Amazon 软件开发工具包中使用此 API 的更多信息,请参阅以下内容: