Reaching the Tamr API over AWS PrivateLink

This topic is intended for Tamr customers who want to call the Tamr API from their own AWS account over AWS PrivateLink, ensuring that requests never cross the public internet.

Separately, Tamr also supports:

Benefits of Using AWS PrivateLink for API Calls

  • No internet egress for Tamr traffic: No NAT gateway, internet gateway, or proxy allowlist entry.
  • No CIDR coordination: PrivateLink does not join the networks; your address space and Tamr's may overlap.
  • A one-way connection: You reach the Tamr API and nothing else; Tamr has no path into your VPC.
  • No application changes: Your clients continue to call their normal tenant hostname, and DNS inside your VPC sends the call to the endpoint.

Tamr's Endpoint Services

Connect from a VPC in your Tamr Cloud tenant region. Each endpoint service serves every Availability Zone (AZ) in its region.

Region Tenant domain Endpoint service name AZ IDs
us-east-1 tamr.cloud com.amazonaws.vpce.us-east-1.vpce-svc-0872dfc176e4843ab

use1-az1

use1-az2

use1-az3

use1-az4

use1-az5

use1-az6

eu-central-1 eu.tamr.cloud com.amazonaws.vpce.eu-central-1.vpce-svc-0100b57f649af02a7

euc1-az1

euc1-az2

euc1-az3

eu-west-1 eu.tamr.cloud com.amazonaws.vpce.eu-west-1.vpce-svc-0dc3c0c16f776a7ff

euw1-az1

euw1-az2

euw1-az3

eu-west-2 uk.tamr.cloud com.amazonaws.vpce.eu-west-2.vpce-svc-0285a9e89c4d5456c

euw2-az1

euw2-az2

euw2-az3

euw2-az4

ap-southeast-1 ap.tamr.cloud com.amazonaws.vpce.ap-southeast-1.vpce-svc-0ab26e93cbb1fd4fe

apse1-az1

apse1-az2

apse1-az3

ap-northeast-1 ap.tamr.cloud com.amazonaws.vpce.ap-northeast-1.vpce-svc-09183a50277153391

apne1-az1

apne1-az2

apne1-az4

If you have Tamr Cloud tenants in more than one region, use a separate VPC and endpoint for each region.

Configuration

Work with Tamr to configure calling the Tamr API over AWS PrivateLink, as follows:

  1. Obtain the IAM role that will create the endpoint, for example
    arn:aws:iam::123456789012:role/terraform-deploy, and the region you'll connect from. If you cannot name a role, obtain your AWS account ID instead.

  2. Send the IAM role and region to Tamr. Send an email to Tamr Support ([email protected]) with the IAM role or AWS account ID and the region. Tamr Support will work with Tamr Operations to allow that principal on the endpoint service. When Tamr indicates that this is complete, move to step 3.

  3. Create the endpoint with the terraform-aws-privatelink-consumer module, using the endpoint service name for your region from the table above:

    module "tamr_api_privatelink" {
      source = "git::https://github.com/Datatamer/terraform-aws-privatelink-consumer.git?ref=v1.0.0"
    
      vpc_id                = "vpc-0123456789abcdef0"
      subnet_ids            = ["subnet-aaa", "subnet-bbb", "subnet-ccc"]
      endpoint_service_name = "com.amazonaws.vpce.us-east-1.vpce-svc-0872dfc176e4843ab"
      allowed_cidrs         = ["10.0.0.0/16"]
      api_domain            = "tamr.cloud"
    }

    Set api_domain to the tenant domain from the same row. The module creates the interface endpoint, a security group admitting your clients on 443, and a private hosted zone for api_domain inside your VPC. The endpoint starts in pendingAcceptance.

  4. Obtain the endpoint ID (the module's vpc_endpoint_id output).

  5. Send the endpoint ID to Tamr by emailingTamr Support ([email protected]). Tamr Support will work with Tamr Operations to accept the connection. Once accepted, the endpoint becomes available. Move to step 6.

  6. Check the configuration from an instance in your VPC that allowed_cidrs covers:

    dig +short your-tenant.tamr.cloud
    curl -v https://your-tenant.tamr.cloud/api/v1alpha/record/list

    The name should resolve to private IPs in your VPC, and an unauthenticated request should get HTTP 403 with a valid certificate. That means the private path works end-to-end. With no instance in the VPC, the module's test client makes the same request for you; see its README.

DNS

Inside your VPC, the private hosted zone takes over all of your tenant domain: every name under it resolves to the endpoint. Resolution outside the VPC is untouched. If you already manage a hosted zone for that domain in the VPC, set create_private_hosted_zone = false and add an alias record pointing at the module's endpoint_dns_name output.

Always call your tenant hostname. The endpoint's own vpce-… hostname does not match Tamr's certificate and is not routed by Tamr.

Other VPCs and on-premises networks can use the same endpoint over peering, Transit Gateway, VPN or Direct Connect. They also need the private hosted zone associated with them, or Route 53 Resolver inbound endpoints for networks outside AWS.

Availability Zones

Use AZ IDs (use1-az4), not AZ names (us-east-1a): names are per-account aliases and point at different data centers in different accounts. A subnet in an AZ ID that the service does not serve fails with "endpoint service does not support the Availability Zone (AZ) for the subnet". Check your subnets:

aws ec2 describe-subnets --subnet-ids subnet-aaa subnet-bbb subnet-ccc \
  --query 'Subnets[].[SubnetId,AvailabilityZoneId]' --output table

Use one subnet per AZ.

Source IPs and Authorization

Your source IP is not visible to Tamr; traffic is translated at the endpoint and again at Tamr's load balancer. Authorization is entirely at the application layer, through your API credentials. This means that Tamr cannot allowlist your addresses, and you cannot allowlist Tamr addresses.

Limits

  • The endpoint's MTU is 8500 bytes, with no path MTU discovery. This only matters for very large request bodies.
  • Your account has a quota of 50 interface endpoints per VPC by default.

Pricing

Tamr does not charge for the connection. You pay AWS for endpoint hours and data processed, per standard PrivateLink pricing.

Troubleshooting

SymptomLikely cause
Creating the endpoint fails: InvalidServiceName … "does not exist"Tamr has not allowed your role yet, or it was created by a different role.
Creating the endpoint fails on AZ supportA subnet is in an AZ ID the service doesn't serve; see Availability Zones above.
Endpoint stays pendingAcceptanceTamr has not accepted the endpoint yet; send Tamr the endpoint ID (contact Support at [email protected]).
Connection times outThe endpoint is not available, or your client is not in allowed_cidrs.
Name resolves to public IPsThe private hosted zone is not associated with the VPC from which the the query came.
Certificate errorYou are calling the vpce-… hostname instead of your tenant hostname.
HTTP 404The path works; the URL path is wrong.
HTTP 500The path works; check the tenant hostname with Tamr (contact Support at [email protected]).

Did this page help you?

© 2025, Tamr, Inc. All rights reserved.

License Agreement | Privacy Policy | Data Security Policy| AI Chatbot Disclaimer