You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/cloud/integrations/security-and-connectivity/aws-privatelink-integration.mdx
+167-1Lines changed: 167 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,4 +131,170 @@ Then go to "Advanced Configurations", and under "Private Link", please attach th
131
131
132
132
### Github Enterprise Server
133
133
134
-
Coming soon!
134
+
Github Enterprise Server can be connected to Elementary Cloud via AWS PrivateLink. This setup requires creating a VPC endpoint service in your AWS account that exposes your GitHub Enterprise Server instance.
135
+
136
+
**Prerequisites:**
137
+
- Your Github Enterprise Server instance must be accessible from within your AWS VPC
138
+
- You must have administrative access to your AWS account
139
+
- Ensure you are working in the correct AWS region where your Github Enterprise Server is deployed
140
+
141
+
In order to set up a PrivateLink connection with Github Enterprise Server, please follow the steps below:
142
+
143
+
1.**Create a VPC Endpoint Service**
144
+
- Follow the detailed instructions in the [Creating a VPC Endpoint Service](#creating-a-vpc-endpoint-service) section below to set up the endpoint service for your GitHub Enterprise Server instance.
145
+
146
+
2.**Add a Github integration in Elementary** - Once the VPC endpoint service setup is completed, please proceed to adding a [GitHub integration](https://docs.elementary-data.com/cloud/integrations/code-repo/github). Note:
147
+
* OAuth is not currently supported for Github Enterprise Server, so you should generate a fine-grained token.
148
+
* You should use the same Github hostname as you would internally (Elementary will resolve that host to the privatelink endpoint)
149
+
150
+
## Creating a VPC Endpoint Service
151
+
152
+
<Note>
153
+
The setup below is only required for services that are hosted in your own VPC (e.g. Github Enterprise Server). It is not required for Snowflake or Databricks which manage themselves the server-side PrivateLink setup.
154
+
155
+
Each integration above explicitly states if it requires setting up a VPC endpoint service.
156
+
</Note>
157
+
158
+
In order to expose services that are hosted within your own VPC, it is required to create a VPC endpoint service. This is essentially the server-side component of PrivateLink, and the destination Elementary's VPC endpoint will connect to.
159
+
160
+
> **Note:** You should create the VPC endpoint service in the same region your service is located in.
161
+
162
+
You can follow the steps below to create an endpoint service via the AWS console.
163
+
164
+
### Create a network load balancer to your service
165
+
166
+
Before setting up the VPC endpoint service, it is required to set up an internal network load balancer pointing to the service you are exposing.
167
+
Setting up a load balancer consists of the following sub-steps:
168
+
169
+
**1. Create a target group**
170
+
171
+
Under the EC2 page in AWS, navigate to the Target Groups menu and click "Create target group". Please follow the wizard and fill the following details:
172
+
173
+
1.**Target type** - You should select this based on the method you used to deploy your service - e.g. based on Instance or IP address.
174
+
2.**Target group name** - Choose a name for the target group
175
+
3.**Protocol : Port** - Choose this based on the service you are exposing (normally should be HTTP / HTTPS)
Under the EC2 page in AWS, navigate to "Load Balancers" and click on "Create load balancer". Choose **Network Load Balancer** and proceed with the creation. Please follow the wizard and fill the following details:
191
+
1.**Load balancer name** - Choose a name for the load balanver (e.g. "github-lb")
192
+
2.**Scheme** - Internal.
193
+
3.**Load balancer IP address type** - IPv4.
194
+
4.**VPC** - Choose same VPC as the one you used for the target group above.
195
+
5.**Mappings** - Select one or more private subnets.
196
+
6.**Security groups** - Select a security group with access to your service. Please grant access to the relevant ports for your service, to the following IP ranges (these are the internal IPs Elementary may connect to your service from):
197
+
* 10.0.1.x
198
+
* 10.0.2.x
199
+
* 10.0.3.x
200
+
7.**Listeners** - Select the target group, protocol, and port from Step 1.
If it appears as "Unhealthy" for some reason, please ensure the security group provides access to the service, that the health check is configured correctly, and of course that the service itself is available.
225
+
226
+
**4. Enable Cross-Zone Load Balancing**
227
+
228
+
If you selected more than one subnet for the load balancer above:
229
+
* Navigate back to the "Load Balancer" screen
230
+
* Choose the load balancer you created.
231
+
* Click on Actions -> Edit load balancer attributes.
232
+
* Enable the setting "Enable cross-zone load balancing".
233
+
234
+
If you selected more than one subnet (availability zone) when creating the NLB in Step 2, navigate back to the Load Balancer, then select Actions → Edit load balancer attributes. From this page, select "Enable cross-zone load balancing" and save your changes.
235
+
236
+
### Create a VPC Endpoint Service and approve access for Elementary
237
+
238
+
**1. Create a VPC Endpoint Service**
239
+
240
+
Navigate to the VPC page in AWS, go to "Endpoint services," and select "Create endpoint service." Please follow the wizard and fill in the following details:
241
+
242
+
1.**Name** - Choose a name for your VPC endpoint service.
243
+
2.**Load balancer type** - Network.
244
+
3.**Available load balancers** - Select the network load balancer (NLB) created above.
245
+
4.**Require acceptance for endpoint** - Yes (so new connections will require approval, see below)
Once the service is created, please go to the "Details" tab and save the "Service name" attribute, you will need later to provide it to the Elementary team.
259
+
260
+
**2. Allow the Elementary Principal**
261
+
262
+
Once the VPC endpoint service is successfully created, navigate to the "Allow principals tab" and click on "Allow Principals". Then add the following principal:
263
+
```
264
+
arn:aws:iam::743289191656:root
265
+
```
266
+
267
+
After the endpoint service finishes creating, navigate to the "Allow principals" section and select "Allow principals." Add Elementary's AWS account ID: `743289191656`.
Once the endpoint connection is approved and shows as "Available", please reach out to the Elementary team, so we will ensure the connection is ready and working.
0 commit comments