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: articles/api-management/self-hosted-gateway-migration-guide.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,7 +64,15 @@ Customer must use the new Configuration API v2 by changing their deployment scri
64
64
> * DNS hostname must be resolvable to IP addresses and the corresponding IP addresses must be reachable.
65
65
> This might require additional configuration in case you are using a private DNS, internal VNET or other infrastrutural requirements.
66
66
67
-
### Meet minimal security requirements
67
+
### Security
68
+
69
+
#### Available TLS cipher suites
70
+
71
+
At launch, self-hosted gateway v2.0 only used a subset of the cipher suites that v1.x was using. As of v2.0.4, we have brought back all the cipher suites that v1.x supported.
72
+
73
+
You can learn more about the used cipher suites in [this article](self-hosted-gateway-overview.md#available-cipher-suites) or use v2.1.1 to [control what cipher suites to use](self-hosted-gateway-overview.md#managing-cipher-suites).
74
+
75
+
#### Meet minimal security requirements
68
76
69
77
During startup, the self-hosted gateway will prepare the CA certificates that will be used. This requires the gateway container to run with at least user ID 1001 and can't use read-only file system.
Copy file name to clipboardExpand all lines: articles/api-management/self-hosted-gateway-overview.md
+65-7Lines changed: 65 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ This article explains how the self-hosted gateway feature of Azure API Managemen
19
19
20
20
The self-hosted gateway feature expands API Management support for hybrid and multi-cloud environments and enables organizations to efficiently and securely manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
21
21
22
-
With the self-hosted gateway, customers have the flexibility to deploy a containerized version of the API Management gateway component to the same environments where they host their APIs. All self-hosted gateways are managed from the API Management service they are federated with, thus providing customers with the visibility and unified management experience across all internal and external APIs. Placing the gateways close to the APIs allows customers to optimize API traffic flows and address security and compliance requirements.
22
+
With the self-hosted gateway, customers have the flexibility to deploy a containerized version of the API Management gateway component to the same environments where they host their APIs. All self-hosted gateways are managed from the API Management service they're federated with, thus providing customers with the visibility and unified management experience across all internal and external APIs. Placing the gateways close to the APIs allows customers to optimize API traffic flows and address security and compliance requirements.
23
23
24
24
Each API Management service is composed of the following key components:
25
25
@@ -57,7 +57,7 @@ We provide a variety of container images for self-hosted gateways to meet your n
57
57
58
58
| Tag convention | Recommendation | Example | Rolling tag | Recommended for production |
|`{major}.{minor}.{patch}`| Use this tag to always to run the same version of the gateway |`2.0.0`| ❌ | ✔️ |
60
+
|`{major}.{minor}.{patch}`| Use this tag to always run the same version of the gateway |`2.0.0`| ❌ | ✔️ |
61
61
|`v{major}`| Use this tag to always run a major version of the gateway with every new feature and patch. |`v2`| ✔️ | ❌ |
62
62
|`v{major}-preview`| Use this tag if you always want to run our latest preview container image. |`v2-preview`| ✔️ | ❌ |
63
63
|`latest`| Use this tag if you want to evaluate the self-hosted gateway. |`latest`| ✔️ | ❌ |
@@ -66,12 +66,12 @@ You can find a full list of available tags [here](https://mcr.microsoft.com/prod
66
66
67
67
#### Use of tags in our official deployment options
68
68
69
-
Our deployment options in the Azure portal use the `v2` tag which allows customers to use the most recent version of the self-hosted gateway v2 container image with all feature updates and patches.
69
+
Our deployment options in the Azure portal use the `v2` tag that allows customers to use the most recent version of the self-hosted gateway v2 container image with all feature updates and patches.
70
70
71
71
> [!NOTE]
72
72
> We provide the command and YAML snippets as reference, feel free to use a more specific tag if you wish to.
73
73
74
-
When installing with our Helm chart, image tagging is optimized for you. The Helm chart's application version pins the gateway to a given version and does not rely on `latest`.
74
+
When installing with our Helm chart, image tagging is optimized for you. The Helm chart's application version pins the gateway to a given version and doesn't rely on `latest`.
75
75
76
76
Learn more on how to [install an API Management self-hosted gateway on Kubernetes with Helm](how-to-deploy-self-hosted-gateway-kubernetes-helm.md).
77
77
@@ -91,7 +91,7 @@ Example - `v2` tag was released with `2.0.0` container image, but when `2.1.0` w
91
91
Self-hosted gateways require outbound TCP/IP connectivity to Azure on port 443. Each self-hosted gateway must be associated with a single API Management service and is configured via its management plane. A self-hosted gateway uses connectivity to Azure for:
92
92
93
93
- Reporting its status by sending heartbeat messages every minute
94
-
- Regularly checking for (every 10 seconds) and applying configuration updates whenever they are available
94
+
- Regularly checking for (every 10 seconds) and applying configuration updates whenever they're available
95
95
- Sending metrics to Azure Monitor, if configured to do so
96
96
- Sending events to Application Insights, if set to do so
97
97
@@ -120,7 +120,7 @@ The self-hosted gateway v2 requires the following:
120
120
* The public IP address of the API Management instance in its primary location
121
121
* The hostname of the instance's configuration endpoint: `<apim-service-name>.configuration.azure-api.net`
122
122
123
-
Additionally, customers that use API inspector or quotas in their policies have to ensure that the following additional dependencies are accessible:
123
+
Additionally, customers that use API inspector or quotas in their policies have to ensure that the following dependencies are accessible:
124
124
125
125
* The hostname of the instance's associated blob storage account: `<blob-storage-account-name>.blob.core.windows.net`
126
126
* The hostname of the instance's associated table storage account: `<table-storage-account-name>.table.core.windows.net`
@@ -145,7 +145,7 @@ The self-hosted gateway is designed to "fail static" and can survive temporary l
145
145
When configuration backup is turned off and connectivity to Azure is interrupted:
146
146
147
147
- Running self-hosted gateways will continue to function using an in-memory copy of the configuration
148
-
- Stopped self-hosted gateways will not be able to start
148
+
- Stopped self-hosted gateways won't be able to start
149
149
150
150
When configuration backup is turned on and connectivity to Azure is interrupted:
151
151
@@ -154,6 +154,64 @@ When configuration backup is turned on and connectivity to Azure is interrupted:
154
154
155
155
When connectivity is restored, each self-hosted gateway affected by the outage will automatically reconnect with its associated API Management service and download all configuration updates that occurred while the gateway was "offline".
156
156
157
+
## Security
158
+
159
+
### Transport Layer Security (TLS)
160
+
161
+
> [!IMPORTANT]
162
+
> This overview is only applicable to the self-hosted gateway v1 & v2.
163
+
164
+
#### Supported protocols
165
+
166
+
The self-hosted gateway provides support for TLS v1.2 by default.
167
+
168
+
Customers using custom domains can enable TLS v1.0 and/or v1.1 [in the control plane](/rest/api/apimanagement/current-ga/gateway-hostname-configuration/create-or-update).
169
+
170
+
#### Available cipher suites
171
+
172
+
> [!IMPORTANT]
173
+
> This overview is only applicable to the self-hosted gateway v2.
174
+
175
+
The self-hosted gateway uses the following cipher suites for both client and server connections:
176
+
177
+
-`TLS_AES_256_GCM_SHA384`
178
+
-`TLS_CHACHA20_POLY1305_SHA256`
179
+
-`TLS_AES_128_GCM_SHA256`
180
+
-`TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`
181
+
-`TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`
182
+
-`TLS_DHE_RSA_WITH_AES_256_GCM_SHA384`
183
+
-`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256`
184
+
-`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256`
185
+
-`TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256`
186
+
-`TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`
187
+
-`TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`
188
+
-`TLS_DHE_RSA_WITH_AES_128_GCM_SHA256`
189
+
-`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384`
190
+
-`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384`
191
+
-`TLS_DHE_RSA_WITH_AES_256_CBC_SHA256`
192
+
-`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256`
193
+
-`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256`
194
+
-`TLS_DHE_RSA_WITH_AES_128_CBC_SHA256`
195
+
-`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`
196
+
-`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`
197
+
-`TLS_DHE_RSA_WITH_AES_256_CBC_SHA`
198
+
-`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`
199
+
-`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`
200
+
-`TLS_DHE_RSA_WITH_AES_128_CBC_SHA`
201
+
-`TLS_RSA_WITH_AES_256_GCM_SHA384`
202
+
-`TLS_RSA_WITH_AES_128_GCM_SHA256`
203
+
-`TLS_RSA_WITH_AES_256_CBC_SHA256`
204
+
-`TLS_RSA_WITH_AES_128_CBC_SHA256`
205
+
-`TLS_RSA_WITH_AES_256_CBC_SHA`
206
+
-`TLS_RSA_WITH_AES_128_CBC_SHA`
207
+
208
+
#### Managing cipher suites
209
+
210
+
As of v2.1.1 and above, you can manage the ciphers that are being used through the configuration:
211
+
212
+
-`net.server.tls.ciphers.allowed-suites` allows you to define a comma-separated list of ciphers to use for the TLS connection between the API client and the self-hosted gateway.
213
+
-`net.client.tls.ciphers.allowed-suites` allows you to define a comma-separated list of ciphers to use for the TLS connection between the self-hosted gateway and the backend.
214
+
157
215
## Next steps
158
216
159
217
- Learn more about [API Management in a Hybrid and Multi-Cloud World](https://aka.ms/hybrid-and-multi-cloud-api-management)
0 commit comments