

# Create a private connection between a VPC and Amazon Transfer Family APIs
<a name="vpc-api-endpoints"></a>

You can establish a private connection between your VPC and Amazon Transfer Family APIs by creating an *interface VPC endpoint*, powered by [Amazon PrivateLink](https://www.amazonaws.cn/privatelink/). You can access Amazon Transfer Family APIs as if it were in your VPC, without using an internet gateway, NAT device, VPN connection, or Amazon Direct Connect connection. Instances in your VPC don't need public IP addresses to communicate with Amazon Transfer Family APIs.

We create an endpoint network interface in each subnet that you enable for the interface endpoint. For more information, see [Access Amazon services through Amazon PrivateLink](https://docs.amazonaws.cn/vpc/latest/privatelink/privatelink-access-aws-services.html) in the *Amazon PrivateLink Guide*. Before you set up an interface VPC endpoint for Amazon Transfer Family APIs, review [Considerations](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints) in the *Amazon PrivateLink Guide*.

## Controlling access using VPC endpoint policies
<a name="vpc-endpoint-considerations"></a>

By default, full access to Amazon Transfer Family APIs is allowed through the endpoint. You can control access to the interface endpoint using VPC endpoint policies. You can attach an endpoint policy to your VPC endpoint that controls access to Amazon Transfer Family APIs. The policy specifies the following information:
+ The **principal** that can perform actions.
+ The **actions** that can be performed.
+ The **resources** on which actions can be performed.

For more information, see [Controlling access to services with VPC endpoints](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-access.html) in the *Amazon VPC User Guide*.

The following is an example of an endpoint policy for Amazon Transfer Family APIs. When attached to an endpoint, this policy grants access to all Amazon Transfer Family APIs actions on all resources, except those that are tagged with key `Environment` and value `Test`.

```
{
    "Statement": [{
        "Effect": "Deny",
        "Action": "transfer:StartFileTransfer",
        "Principal": "*",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/Environment": "Test"
            }
        }
    }, {
        "Effect": "Allow",
        "Action": "transfer:*",
        "Principal": "*",
        "Resource": "*"
    }]
}
```

## Create an interface VPC endpoint for Amazon Transfer Family APIs
<a name="create-vpc-endpoint"></a>

You can create a VPC endpoint for Amazon Transfer Family APIs using either the Amazon VPC console or the Amazon Command Line Interface (Amazon CLI). For more information, see [Create a VPC endpoint](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) in the *Amazon PrivateLink Guide*.

Create a VPC endpoint for Amazon Transfer Family APIs using one of the following service names:
+ `com.amazonaws.region.transfer`
+ `com.amazonaws.region.transfer-fips` — To create an interface VPC endpoint that complies with the Federal Information Processing Standard (FIPS) Publication 140-3 US government standard.

If you enable private DNS for the endpoint, you can make API requests to Amazon Transfer Family APIs using its default DNS name for the Region, for example, `transfer.us-east-1.amazonaws.com`.