本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建带出口的 SFTP 连接器 VPC-based
本主题提供有关创建具有 VPC 连接的 SFTP 连接器的分步说明。VPC_ LATTICE-enabled 连接器使用 Amazon VPC Lattice 通过您的虚拟私有云路由流量,从而实现与私有终端节点的安全连接,或使用您自己的 NAT 网关访问互联网。
何时使用 VPC 连接
在以下场景中为 SFTP 连接器使用 VPC 连接:
-
私有 SFTP 服务器:连接到只能从您的 VPC 访问的 SFTP 服务器。
-
On-premises 连接:通过 AWS 直接连接或 AWS Site-to-Site VPN 连接连接到本地 SFTP 服务器。
-
自定义 IP 地址:使用您自己的 NAT 网关和弹性 IP 地址,包括 BYOIP 方案。
-
集中式安全控制:通过组织的中央 ingress/egress 控制来路由文件传输。
VPC_ LATTICE-enabled SFTP 连接器的先决条件
在创建 VPC_ LATTICE-enabled SFTP 连接器之前,必须满足以下先决条件:
VPC-based 连接的工作原理
VPC Lattice 使您能够安全地与其他 AWS 服务共享 VPC 资源。 AWS Transfer Family 使用服务网络来简化资源共享过程。关键组件包括:
-
资源网关:用作您的 VPC 的访问点。您可以在 VPC 中创建此可用区,至少有两个可用区。
-
资源配置:包含要连接的 SFTP 服务器的私有 IP 地址或公有 DNS 名称。
当您创建 VPC_ LATTICE-enabled 连接器时, AWS Transfer Family 使用前向访问会话 (FAS) 临时获取您的证书,并将您的资源配置与我们的服务网络关联起来。
必需的设置步骤
-
VPC 基础设施:确保您已正确配置了 VPC,其中包含满足您的 SFTP 服务器连接要求所需的子网、路由表和安全组。
-
资源网关:使用 VPC Lattice
create-resource-gateway命令在您的 VPC 中创建资源网关。资源网关必须与至少两个可用区中的子网相关联。有关更多信息,请参阅 Amazon VPC Lattice 用户指南中的资源网关。 -
资源配置:使用 VPC Lattice
create-resource-configuration命令创建代表目标 SFTP 服务器的资源配置。您可以指定下列之一:-
私有端点的私有 IP 地址
-
公共终端节点的公有 DNS 名称(公共终端节点不支持 IP 地址)
-
-
身份验证凭证: AWS Secrets Manager 按中所述将 SFTP 用户凭据存储在中。在密钥管理器中存储 SFTP 连接器的身份验证凭据
重要
资源网关和资源配置必须在同一个 AWS 账户中创建。创建资源配置时,必须首先设置资源网关。
有关 VPC 资源配置的更多信息,请参阅 Amazon VPC Lattice 用户指南中的资源配置。
注意
在有亚马逊 VPC 莱迪思资源 AWS 区域 的地方,可以使用 SFTP 连接器的 VPC 连接。有关更多信息,请参阅 VPC Lattice 常见问题解答
创建 VPC_ LATTICE-enabled SFTP 连接器
完成先决条件后,您可以使用 AWS 管理控制台或 AWS 软件开发工具包创建具有 VPC 连接的 SFTP 连接器。 AWS CLI
监控 VPC 连接器状态
VPC_ LATTICE-enabled 连接器具有异步设置过程。创建后,监控连接器状态:
-
待定:正在配置连接器。服务网络配置正在进行中,通常需要几分钟。
-
活动:连接器已准备就绪,可以传输文件。
-
错误:连接器无法配置。查看错误详细信息以获取故障排除信息。
使用describe-connector以下命令检查连接器状态:
aws transfer describe-connector --connector-id c-1234567890abcdef0
在 PENDING 状态下,在配置完成之前,test-connectionAPI 将返回 “连接器不可用”。
限制和注意事项
-
公有终端节点:通过 VPC 连接到公共终端节点时,必须在资源配置中提供 DNS 名称。不支持公有 IP 地址。
-
区域可用性:VPC 连接在精选版本中可用 AWS 区域。 Cross-region 不支持资源共享。
-
可用区要求:资源网关必须与至少两个可用区中的子网相关联。并非所有可用区在每个区域都支持 VPC Lattice。
-
连接限制:每个资源最多 350 个连接,TCP 连接的空闲超时时间为 350 秒。
成本注意事项
AWS Transfer Family 除了常规服务费外,没有其他费用。但是,如果客户使用自己的NAT网关出入互联网,则可能会向Amazon VPC Lattice收取与共享亚马逊虚拟私有云资源相关的额外费用,以及NAT网关的费用。
有关完整的 AWS Transfer Family 定价信息,请参阅定AWS Transfer Family 价页面
SFTP 连接器的 VPC 连接示例
本节提供了为各种场景创建具有 VPC 连接的 SFTP 连接器的示例。在使用这些示例之前,请确保您已按照 VPC 连接文档中的说明完成 VPC 基础设施设置。
示例:私有端点连接
此示例说明如何创建连接到只能从您的 VPC 访问的私有 SFTP 服务器的 SFTP 连接器。
先决条件
-
在您的 VPC 中创建资源网关:
aws vpc-lattice create-resource-gateway \ --name my-private-server-gateway \ --vpc-identifier vpc-1234567890abcdef0 \ --subnet-ids subnet-1234567890abcdef0 subnet-0987654321fedcba0 -
为您的私有 SFTP 服务器创建资源配置:
aws vpc-lattice create-resource-configuration \ --name my-private-server-config \ --resource-gateway-identifier rgw-1234567890abcdef0 \ --resource-configuration-definition ipResource={ipAddress="10.0.1.100"} \ --port-ranges 22
创建 VPC_ 连接器 LATTICE-enabled
-
创建具有 VPC 连接的 SFTP 连接器:
aws transfer create-connector \ --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \ --sftp-config UserSecretId=my-private-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22} -
监控连接器状态,直到它变成
ACTIVE:aws transfer describe-connector --connector-id c-1234567890abcdef0
远程 SFTP 服务器将在您的 VPC CIDR 范围内看到来自资源网关的 IP 地址的连接。
示例:通过 VPC 的公共终端节点
此示例说明如何通过您的 VPC 将连接路由到公有 SFTP 服务器,以利用集中式安全控制并使用您自己的 NAT 网关 IP 地址。
先决条件
-
在您的 VPC 中创建资源网关(与私有终端节点示例相同)。
-
使用公共 SFTP 服务器的 DNS 名称为其创建资源配置:
aws vpc-lattice create-resource-configuration \ --name my-public-server-config \ --resource-gateway-identifier rgw-1234567890abcdef0 \ --resource-configuration-definition dnsResource={domainName="sftp.example.com"} \ --port-ranges 22注意
对于公共终端节点,必须使用 DNS 名称,而不是 IP 地址。
创建连接器
-
创建 SFTP 连接器:
aws transfer create-connector \ --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \ --sftp-config UserSecretId=my-public-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0987654321fedcba0,PortNumber=22}
流量将从连接器流向您的资源网关,然后通过您的 NAT 网关到达公共 SFTP 服务器。远程服务器会将您的 NAT 网关的弹性 IP 地址视为来源。
示例: Cross-account 私有端点
此示例说明如何使用资源共享连接到不同 AWS 帐户中的私有 SFTP 服务器。
注意
如果您已经通过其他机制(例如)启用了跨 VPC 资源共享 AWS Transit Gateway,则无需配置此处描述的资源共享。现有的路由机制,例如公交网关路由表,由 SFTP 连接器自动使用。您只需要在创建 SFTP 连接器的同一个账户中创建资源配置即可。
账户 A(资源提供商)-共享资源配置
-
在账户 A 中创建资源网关和资源配置(与前面的示例相同)。
-
使用资源访问管理器与账户 B 共享 AWS 资源配置:
aws ram create-resource-share \ --name cross-account-sftp-share \ --resource-arns arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0 \ --principals 222222222222
账户 B(资源使用者)-接受并使用共享
-
接受资源共享邀请:
aws ram accept-resource-share-invitation \ --resource-share-invitation-arn arn:aws:ram:us-east-1:111111111111:resource-share-invitation/invitation-id -
在账户 B 中创建 SFTP 连接器:
aws transfer create-connector \ --access-role arn:aws:iam::222222222222:role/TransferConnectorRole \ --sftp-config UserSecretId=cross-account-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22}
账户 B 中的连接器现在可以通过共享资源配置访问账户 A 中的专用 SFTP 服务器。
常见故障排除场景
以下是创建 VPC_ LATTICE-enabled 连接器时常见问题的解决方案:
-
连接器处于 “待处理” 状态:检查您的资源网关是否处于活动状态并在支持的可用区域中是否有子网。如果连接器仍处于 PENDING 状态,请
UpdateConnector使用最初使用的相同配置参数进行调用。这会触发一个新的状态事件,可能会解决问题。 -
连接超时:验证安全组规则允许端口 22 上的流量以及您的 VPC 路由是否正确。
-
DNS 解析问题:对于公共终端节点,请确保您的 VPC 通过 NAT 网关或互联网网关连接互联网。
-
Cross-account 访问被拒绝:验证资源共享是否被接受以及资源配置 ARN 是否正确。如果在原始账户创建资源共享时将正确的权限策略附加到资源配置,则需要以下权限:
vpc-lattice:AssociateViaAWSService、、vpc-lattice:AssociateViaAWSService-EventsAndStates、vpc-lattice:CreateServiceNetworkResourceAssociation、vpc-lattice:GetResourceConfiguration。