我已经使用 CloudFormation 设置了 AWS Transfer SFTP,并且正在使用自定义身份提供程序设置,其中 API 网关面向 Lambda 函数。以前,我的设置运行良好,但 API 网关是公开的,我想将其设为私有并将其带入 VPC。我设置了一个 VPC 接口端点并将其与 API 网关相关联。以下相关 CloudFormation 位:
APIVPCEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
PrivateDnsEnabled: true
ServiceName: com.amazonaws.us-east-1.execute-api
VpcEndpointType: Interface
SubnetIds:
- subnet-11111111
- subnet-22222222
SecurityGroupIds:
- sg-111111111111111
VpcId: vpc-222222
CustomIdentityProviderApi:
Type: AWS::ApiGateway::RestApi
Properties:
Name: SFTP Custom ID Provider
FailOnWarnings: true
EndpointConfiguration:
Types:
- PRIVATE
VpcEndpointIds:
- Ref: APIVPCEndpoint
但是,通过此设置,API 网关的 DNS 名称不再在 DNS 中解析,并且我的 SFTP 实例无法访问它。我收到一个错误:
{
"Response": "",
"StatusCode": 0,
"Message": "Unable to call identity provider: Unable to execute HTTP request: randomname.execute-api.us-east-1.amazonaws.com: Name or service not known",
"Url": "https://blablabla.execute-api.us-east-1.amazonaws.com/prod/servers/s-blablablabla/users/myusername/config"
}
我验证dig
了nslookup
DNS 确实没有解析。解决的是端点的名称,但是,当我尝试将该名称粘贴到 AWS 传输控制台中作为我的自定义身份提供商的调用 URL 时,我收到另一个错误:
Failed to edit server details: Invalid API Gateway endpoint
我有一种感觉,我已经进入了“不支持的配置”领域,现在我要将 API 网关移出 VPC 并再次将其公开,以便系统正常工作。但是,如果有人这样做并有任何建议,我很想看看我是否可以让私有配置正常工作。