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

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

UpdateServer

创建启用文件传输协议的服务器后,更新该服务器的属性。

UpdateServer调用返回您更新的服务器的。ServerId

请求语法

{ "Certificate": "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" }, "LoggingRole": "string", "PostAuthenticationLoginBanner": "string", "PreAuthenticationLoginBanner": "string", "ProtocolDetails": { "As2Transports": [ "string" ], "PassiveIp": "string", "SetStatOption": "string", "TlsSessionResumptionMode": "string" }, "Protocols": [ "string" ], "SecurityPolicyName": "string", "ServerId": "string", "WorkflowDetails": { "OnPartialUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ], "OnUpload": [ { "ExecutionRole": "string", "WorkflowId": "string" } ] } }

请求参数

有关所有操作的公有参数的信息,请参阅《Co mmon 参数》。

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

Certificate

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

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

要将现有证书导入到 ACM,请参阅《Certif icate M anager 用户指南》中的将Amazon证书导入到 ACM

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

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

  • 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 证书。

类型:字符串

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

必需:否

EndpointDetails

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

类型:EndpointDetails 对象

必需:否

EndpointType

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

注意

2021 年 5 月 19 日之后,如果您的Amazon账户在 2021 年 5 月 19 日之前尚未创建服务器,则您将无法在账户EndpointType=VPC_ENDPOINT中使用创建服务器。如果您在 2021 年 5 月 19 日当天或之前已经在Amazon账户EndpointType=VPC_ENDPOINT中创建了服务器,则不会受到影响。在此日期之后,使用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 的服务器更新主机密钥

类型:字符串

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

必需:否

IdentityProviderDetails

包含调用客户身份验证 API 方法所需的所有信息的数组。

类型:IdentityProviderDetails 对象

必需:否

LoggingRole

允许服务器为 Amazon S3 或 Amazon EFS 事件开启 Amazon CloudWatch 日志记录功能的Amazon Identity and Access Management(IAM)角色的 Amazon 资源名称(ARN)。设置后,您可以在 Logs 中查看用户 CloudWatch 活动。

类型:字符串

长度限制:最大长度为 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参数设置为 Amazon Logs 会在 Amazon Logs 中生成一个 CloudWatch 日志条目,因此您可以确定客户端何时进行SETSTAT呼叫。ENABLE_NO_OP

  • 要确定 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

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

类型:字符串

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

模式:TransferSecurityPolicy-.+

必需:否

ServerId

服务器实例的系统分配的唯一标识符。

类型:字符串

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

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

必需:是

WorkflowDetails

指定要分配的工作流的工作流 ID 以及用于执行工作流的执行角色。

除了要在文件完全上传时执行的工作流,还WorkflowDetails可能包含在部分上传时执行的工作流 ID(和执行角色)。当会话断开连接时,如果打开文件,则会发生部分上传。

要从服务器中删除关联的工作流,您可以提供一个空的 OnUpload 对象,如下例所示。

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnUpload":[]}'

类型:WorkflowDetails 对象

必需:否

响应语法

{ "ServerId": "string" }

响应元素

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

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

ServerId

服务器的系统分配的唯一标识符。

类型:字符串

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

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

错误

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

AccessDeniedException

您没有足够的访问权限,无法执行该操作。

HTTP 状态代码:400

ConflictException

当为启用文件传输协议的服务器调UpdateServer用 VPC 作为终端节点类型且服务器未VpcEndpointID处于可用状态时,会引发此异常。

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

示例

示例

以下示例将更新 Server 的角色。

示例请求

{ "EndpointDetails": { "VpcEndpointId": "vpce-01234f056f3g13", "LoggingRole": "CloudWatchS3Events", "ServerId": "s-01234567890abcdef" } }

示例

以下示例从服务器中移除所有关联的工作流。

示例请求

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnUpload":[]}'

示例

这是此 API 调用的示例响应。

示例响应

{ "ServerId": "s-01234567890abcdef" }

另请参阅

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