Transfer Family — AWS Transfer Family
Quick start, the server, user and tag records that are stored, and why there is no data plane: no protocol served, no storage binding, no authentication.
Servers and users are stored as records; no SFTP, FTPS or FTP daemon is ever started, so there is nothing to connect to.
Status: ⚠️ Partial
Quick start
export AWS_ENDPOINT_URL=http://localhost:4566
SERVER=$(aws transfer create-server --query ServerId --output text)
aws transfer create-user \
--server-id "$SERVER" \
--user-name alice \
--role arn:aws:iam::000000000000:role/transfer-access \
--home-directory /uploads
aws transfer list-users --server-id "$SERVER"
Any credentials work; with none configured, run eval "$(overcast env)" first
— see Using AWS SDKs and CLI.
What works
| Area | Behaviour |
|---|---|
| Servers | Create, describe, list, update, delete; State is ONLINE immediately |
| Defaults | EndpointType defaults to PUBLIC and IdentityProviderType to SERVICE_MANAGED |
| Users | Create, describe, list, update, delete, with Role, HomeDirectory and Policy stored |
| Cascade delete | Deleting a server deletes its users |
| Tags | Inline Tags on create, plus TagResource, UntagResource and ListTagsForResource on server and user ARNs |
Differences from AWS
| Area | On AWS | Overcast |
|---|---|---|
| Data plane | SFTP, FTPS and FTP are served | No file-transfer protocol is served, so no client can log in and no file moves |
| S3 or EFS binding | HomeDirectory maps to a bucket or file system | A stored string that maps to nothing |
| Server fields | Stored and applied | Protocols, EndpointDetails, LoggingRole, Domain and SecurityPolicyName are discarded; only EndpointType and IdentityProviderType are kept |
| User fields | Stored and applied | HomeDirectoryType, HomeDirectoryMappings, PosixProfile and SshPublicKeyBody are discarded; only Role, HomeDirectory and Policy are kept |
| Authentication | SSH public keys, service-managed credentials and custom identity providers | None of it is exercised |
| Endpoint address | DescribeServer reports a hostname, VPC endpoint or Elastic IP | It reports none of them |
| Server ids | Random | Sequential — s-00000001, s-00000002, … |
| Agreements, certificates, connectors, profiles, workflows | Full API | Not emulated, and their ARNs are refused by the tag operations |
Operations
All 13 listed operations are implemented. Per-operation status, notes and AWS API links: Transfer Family operations.
Related
- S3 — the storage a real Transfer server would front
- All service pages
- Service names and state overrides
- AWS API reference