AWS Transfer Family API 网关身份验证提供程序不需要使用 Terraform 的 aws_apigatewayv2_api 或 aws_api_gateway_rest_api。这两个资源是用于构建 REST API 的资源,而 AWS Transfer Family API 网关身份验证提供程序是一种不同类型的资源。
支持 AWS Transfer Family API 网关身份验证提供程序的 Terraform 资源是 aws_transfer_server。以下是一个例子,创建一个身份验证提供程序,通过 AWS Transfer Family API Gateway 向 SFTP 服务器授权访问:
resource "aws_transfer_server" "example" {
identity_provider_type = "SERVICE_MANAGED"
}
resource "aws_transfer_user" "example" {
server_id = aws_transfer_server.example.id
user_name = "example-user"
home_directory = "/example-home"
role = "arn:aws:iam::123456789012:role/SFTPAccess"
}
resource "aws_transfer_ssh_key" "example" {
server_id = aws_transfer_server.example.id
user_name = aws_transfer_user.example.user_name
ssh_public_key_body = "ssh-rsa AAAAXX..."
}
resource "aws_transfer_user_authorization" "example" {
server_id = aws_transfer_server.example.id
user_name = aws_transfer_user.example.user_name
identity_provider_type = "API_GATEWAY"
identity_provider_details = jsonencode({
apiGatewayEndpoint = "https://example.execute-api.us-west-2.amazonaws.com/prod/",
apiGatewayRegion = "us-west-2",
})
}