Terraform创建AWS Transfer Server报错:IdentityProviderDetails值无效
解决AWS Transfer Server FTP/FTPS Terraform配置的IdentityProviderDetails错误
身份提供商URL的格式要求
如果你用API Gateway作为身份验证后端,URL必须是API Gateway的完整Invoke URL,且末尾必须带斜杠,格式示例:https://<api-id>.execute-api.<region>.amazonaws.com/<stage>/。很多人忽略末尾斜杠导致这个错误。
要是用Lambda作为身份提供商,这里不能用Url参数,得用Function,值是Lambda的ARN:arn:aws:lambda:<region>:<account-id>:function:<function-name>。身份提供商类型必须匹配参数
你设置的identity_provider_type要和identity_provider_details里的参数严格对应:- 选
API_GATEWAY时,必须传Url参数; - 选
AWS_LAMBDA时,必须传Function参数; - 要是用AWS托管的用户存储,类型设为
SERVICE_MANAGED,直接删掉identity_provider_details块就行。
- 选
正确的Terraform配置示例(API Gateway场景)
resource "aws_transfer_server" "ftps_server" { identity_provider_type = "API_GATEWAY" identity_provider_details = { Url = "https://abc123.execute-api.us-east-1.amazonaws.com/prod/" } endpoint_type = "PUBLIC" protocol = ["FTPS"] # 其他必要配置(比如日志、角色等) }额外要检查的点
- 确认AWS Transfer Server的服务角色有调用API Gateway/Lambda的权限,比如给Lambda添加允许Transfer服务触发的权限策略;
- 核对URL里的API ID、区域、stage名称有没有拼写错误,别把区域代码写错;
- 如果是VPC内的Transfer Server,API Gateway要配置VPC链接或者和Transfer在同一个VPC子网里。
内容的提问来源于stack exchange,提问作者prout
相关产品推荐
相关产品推荐

