Provides the ability to automatically create Twingate resources and adding group permission to these resources by monitoring the tag changes of the AWS resources.
- Ensure you have the following pre-requisites:
- The AWS user has the permission to create new IAM roles, Lambda functions and EventWatch rules
- Twingate Network Address, e.g. acme.twingate.com
- Twingate API Key, can be generated in the Setting page within the Twingate Admin Console (Read, Write and Provision permission is required)
- Click the Install on AWS button below
- Select Deploy
- Select AWS region in AWS Admin Console
- Input the TwingateNetworkAddress and TwingateApiKey
- Enable "I acknowledge that this app creates custom IAM roles and resource policies."
- Select Deploy
- Click Deployments tab -> View stack events button -> Events tab
- Wait until The CloudFormation is created
Note: the application can be deployed in multiple region be repeating the steps above.
For manual installation steps, see Manual Install Steps
Tag an AWS resource with the following tags
| Supported Actions | Input Format | Twingate Action | AWS Action |
|---|---|---|---|
ADD tg_resource |
RemoteNetworkNameOrId++ResourceName++ResourceAddress RemoteNetworkNameOrId++ResourceName (resource address auto-filled)RemoteNetworkNameOrId (resource name and address auto-filled) |
Create the resource in the Twingate (the defined remote network need to exist in the Twingate) | adding tg_resource_id to the AWS resource tag |
ADD tg_groups |
GroupNameOrId1++GroupNameOrId2++GroupNameOrId3... |
Add the defined groups into the Twingate resource (tg_resource should exist on the AWS resource before adding tg_groups tag) |
None |
REMOVE tg_resource_id |
None | Remove the resource in the Twingate | Remove tg_groups and tg_resource from AWS resource tag |
MODIFY tg_groups |
ModifedGroupNameOrId1++ModifedGroupNameOrId2... |
Add the new groups to the resource in Twingate No groups are removed from the Twingate Resource |
None |
ResourceName and ResourceAddress are auto-filled if they are not provided as part of the tg_resource tag. (i.e. RemoteNetworkNameOrId++ResourceName or RemoteNetworkNameOrId)
| Resource Type | Auto Fill Method |
|---|---|
| EC2 Instance | ResourceAddress = Instance Private IPv4 ResourceName = Instance Name (Instance Private IPv4 If Instance Name does not exist) |
| ECS Task | ResourceAddress = Task Private IPv4 ResourceName = Task Group - Task Definition - Task Private IPv4 |
| RDS Instance | ResourceAddress = Instance Endpoint ResourceName = DB Name (DB Instance Identifier if DB Name does not exist) |
It is highly recommended to not perform any of the unsupported actions as they might cause unexpected behaviours later.
| Unsupported Actions | Immediate Behaviour |
|---|---|
ADD tg_resource_id |
None |
REMOVE tg_resource |
None |
REMOVE tg_groups |
None |
MODIFY tg_resource |
New resource created with info in tg_resource tagNew tg_resource_id tag value is assigned The Twingate resource base on previous tg_resource tag is not removed |
MODIFY tg_resource_id |
EC2 and ECS: None RDS: The resource from Twingate is deleted |
| AWS Resource | Supported | Auto Filling Resource Name Or Address |
|---|---|---|
| EC2 Instance | Yes | Yes |
| ECS Cluster | Yes | No |
| ECS Service | Yes | No |
| ECS Task | Yes | Yes |
| ECS Container Instance | Yes | No |
| ECS Instance | No | No |
| RDS Cluster | No | No |
| RDS Instance | Yes | Yes |
