Skip to content

Commit c7762df

Browse files
authored
Merge pull request #200487 from joharder/egress-firewall-rewrite
rewrite egress doc page
2 parents 9bd9800 + bbb694e commit c7762df

File tree

1 file changed

+25
-47
lines changed

1 file changed

+25
-47
lines changed

articles/openshift/howto-restrict-egress.md

Lines changed: 25 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Restrict egress traffic in an Azure Red Hat OpenShift (ARO) cluster
33
description: Learn what ports and addresses are required to control egress traffic in Azure Red Hat OpenShift (ARO)
4-
author: sakthi-vetrivel
5-
ms.author: suvetriv
4+
author: joharder
5+
ms.author: joharder
66
ms.service: azure-redhat-openshift
77
ms.topic: article
8-
ms.date: 04/09/2021
8+
ms.date: 06/02/2022
99
---
1010
# Control egress traffic for your Azure Red Hat OpenShift (ARO) cluster (preview)
1111

12-
This article provides the necessary details that allow you to secure outbound traffic from your Azure Red Hat OpenShift cluster (ARO). It contains the cluster requirements for a basic ARO deployment, and more requirements for optional Red Hat and third-party components. An [example](#private-aro-cluster-setup) will be provided at the end on how to configure these requirements with Azure Firewall. Keep in mind, you can apply this information to Azure Firewall or to any outbound restriction method or appliance.
12+
This article provides the necessary details that allow you to secure outbound traffic from your Azure Red Hat OpenShift cluster (ARO). With the release of the [Egress Lockdown Feature](./concepts-egress-lockdown.md), all of the required connections for a private cluster will be proxied through the service. There are additional destinations that you may want to allow to use features such as Operator Hub, or Red Hat telemetry. An [example](#private-aro-cluster-setup) will be provided at the end on how to configure these requirements with Azure Firewall. Keep in mind, you can apply this information to Azure Firewall or to any outbound restriction method or appliance.
1313

1414
## Before you begin
1515

@@ -18,23 +18,20 @@ This article assumes that you're creating a new cluster. If you need a basic ARO
1818
> [!IMPORTANT]
1919
> ARO preview features are available on a self-service, opt-in basis. Previews are provided "as is" and "as available," and they're excluded from the service-level agreements and limited warranty. ARO previews are partially covered by customer support on a best-effort basis.
2020
21-
## Minimum Required FQDN / application rules
21+
## Minimum Required FQDN - Proxied through ARO service
2222

2323
This list is based on the list of FQDNs found in the OpenShift docs here: https://docs.openshift.com/container-platform/4.6/installing/install_config/configuring-firewall.html
2424

25-
The following FQDN / application rules are required:
25+
The following FQDNs are proxied through the service, and will not need additional firewall rules. They are here for informational purposes.
2626

2727
| Destination FQDN | Port | Use |
2828
| ----------- | ----------- | ------------- |
29-
| **`*.quay.io`** | **HTTPS:443** | Mandatory for the installation, used by the cluster. This is used by the cluster to download the platform container images. |
30-
| **`registry.redhat.io`** | **HTTPS:443** | Mandatory for core add-ons. This is used by the cluster to download core components such as dev tools, operator-based add-ons, and Red Hat provided container images.
31-
| **`mirror.openshift.com`** | **HTTPS:443** | This is required in the VDI environment or your laptop to access mirrored installation content and images. It's required in the cluster to download platform release signatures to know what images to pull from quay.io. |
32-
| **`api.openshift.com`** | **HTTPS:443** | Required by the cluster to check if there are available updates before downloading the image signatures. |
3329
| **`arosvc.azurecr.io`** | **HTTPS:443** | Global Internal Private registry for ARO Operators. Required if you do not allow the service-endpoints Microsoft.ContainerRegistry on your subnets. |
3430
| **`arosvc.$REGION.data.azurecr.io`** | **HTTPS:443** | Regional Internal Private registry for ARO Operators. Required if you do not allow the service-endpoints Microsoft.ContainerRegistry on your subnets. |
3531
| **`management.azure.com`** | **HTTPS:443** | This is used by the cluster to access Azure APIs. |
3632
| **`login.microsoftonline.com`** | **HTTPS:443** | This is used by the cluster for authentication to Azure. |
37-
| **`gcs.prod.monitoring.core.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
33+
| **`*.monitor.core.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
34+
| **`*.monitoring.core.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
3835
| **`*.blob.core.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
3936
| **`*.servicebus.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
4037
| **`*.table.core.windows.net`** | **HTTPS:443** | This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s). |
@@ -44,52 +41,33 @@ The following FQDN / application rules are required:
4441
4542
---
4643

47-
## Complete list of required and optional FQDNs
44+
## List of optional FQDNs
4845

49-
### FIRST GROUP: INSTALLING AND DOWNLOADING PACKAGES AND TOOLS
46+
### INSTALLING AND DOWNLOADING PACKAGES AND TOOLS
5047

51-
- **`quay.io`**: Mandatory for the installation, used by the cluster. This is used by the cluster to download the platform container images.
52-
- **`registry.redhat.io`**: Mandatory for core add-ons. This is used by the cluster to download core components such as dev tools, operator-based add-ons, or Red Hat provided container images such as our middleware, the Universal Base Image...
53-
- **`sso.redhat.com`**: This one is required in the VDI environment or your laptop to connect to cloud.redhat.com. This is the site where we can download the pull secret, and use some of the SaaS solutions we offer in Red Hat to facilitate monitoring of your subscriptions, cluster inventory, chargeback reporting, among other things.
54-
- **`openshift.org`**: This one is required in the VDI environment or your laptop to connect to download RH CoreOS images, but in Azure they are picked from the marketplace, there is no need to download OS images.
48+
- **`registry.redhat.io`**: Used to provide images for things such as Operator Hub.
5549

5650
---
5751

58-
### SECOND GROUP: TELEMETRY
52+
### TELEMETRY
5953

6054
All this section can be opted out, but before we know how, please check what it is: https://docs.openshift.com/container-platform/4.6/support/remote_health_monitoring/about-remote-health-monitoring.html
61-
- **`cert-api.access.redhat.com`**: Use in your VDI or laptop environment.
62-
- **`api.access.redhat.com`**: Use in your VDI or laptop environment.
63-
- **`infogw.api.openshift.com`**: Use in your VDI or laptop environment.
64-
- **`https://cloud.redhat.com/api/ingress`**: Use in the cluster for the insights operator who integrates with the aaS Red Hat Insights.
55+
- **`cert-api.access.redhat.com`**: Used for Red Hat telemetry.
56+
- **`api.access.redhat.com`**: Used for Red Hat telemetry.
57+
- **`infogw.api.openshift.com`**: Used for Red Hat telemetry.
58+
- **`https://cloud.redhat.com/api/ingress`**: Use in the cluster for the insights operator who integrates with Red Hat Insights.
6559
In OpenShift Container Platform, customers can opt out of reporting health and usage information. However, connected clusters allow Red Hat to react more quickly to problems and better support our customers, and better understand how product upgrades clusters. Check details here: https://docs.openshift.com/container-platform/4.6/support/remote_health_monitoring/opting-out-of-remote-health-reporting.html.
6660

6761
---
6862

69-
### THIRD GROUP: CLOUD APIs
70-
71-
- **`management.azure.com`**: This is used by the cluster to access Azure APIs.
72-
73-
---
74-
75-
### FOURTH GROUP: OTHER OPENSHIFT REQUIREMENTS
63+
### OTHER POSSIBLE OPENSHIFT REQUIREMENTS
7664

77-
- **`mirror.openshift.com`**: This one is required in the VDI environment or your laptop to access mirrored installation content and images and required in the cluster to download platform release signatures, used by the cluster to know what images to pull from quay.io.
78-
- **`storage.googleapis.com/openshift-release`**: Alternative site to download platform release signatures, used by the cluster to know what images to pull from quay.io.
79-
- **`*.apps.<cluster_name>.<base_domain>`** (OR EQUIVALENT ARO URL): When allowlisting domains, this is use in your corporate network to reach applications deployed in OpenShift, or to access the OpenShift console.
80-
- **`api.openshift.com`**: Required by the cluster to check if there are available updates before downloading the image signatures.
65+
- **`quay.io`**: May be used to download images from the Red Hat managed Quay registry. Also a possible fall-back target for ARO required system images.
66+
- **`mirror.openshift.com`**: Required to access mirrored installation content and images. This site is also a source of release image signatures.
67+
- **`*.apps.<cluster_name>.<base_domain>`** (OR EQUIVALENT ARO URL): When allowlisting domains, this is used in your corporate network to reach applications deployed in OpenShift, or to access the OpenShift console.
68+
- **`api.openshift.com`**: Used by the cluster for release graph parsing. https://access.redhat.com/labs/ocpupgradegraph/ can be used as an alternative.
8169
- **`registry.access.redhat.com`**: Registry access is required in your VDI or laptop environment to download dev images when using the ODO CLI tool. (This CLI tool is an alternative CLI tool for developers who aren't familiar with kubernetes). https://docs.openshift.com/container-platform/4.6/cli_reference/developer_cli_odo/understanding-odo.html
8270

83-
---
84-
85-
### FIFTH GROUP: MICROSOFT & RED HAT ARO MONITORING SERVICE
86-
87-
- **`login.microsoftonline.com`**: This is used by the cluster for authentication to Azure.
88-
- **`gcs.prod.monitoring.core.windows.net`**: This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s).
89-
- **`*.blob.core.windows.net`**: This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s).
90-
- **`*.servicebus.windows.net`**: This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s).
91-
- **`*.table.core.windows.net`**: This is used for Microsoft Geneva Monitoring so that the ARO team can monitor the customer's cluster(s).
92-
9371
## ARO integrations
9472

9573
### Azure Monitor for containers
@@ -272,7 +250,7 @@ az network route-table route create -g $RESOURCEGROUP --name aro-udr --route-tab
272250
```
273251

274252
### Add Application Rules for Azure Firewall
275-
Rule for OpenShift to work based on this [list](https://docs.openshift.com/container-platform/4.3/installing/install_config/configuring-firewall.html#configuring-firewall_configuring-firewall):
253+
Example rule for telemetry to work. Additional possibilities can be found on this [list](https://docs.openshift.com/container-platform/4.3/installing/install_config/configuring-firewall.html#configuring-firewall_configuring-firewall):
276254
```azurecli
277255
az network firewall application-rule create -g $RESOURCEGROUP -f aro-private \
278256
--collection-name 'ARO' \
@@ -281,7 +259,7 @@ az network firewall application-rule create -g $RESOURCEGROUP -f aro-private \
281259
-n 'required' \
282260
--source-addresses '*' \
283261
--protocols 'http=80' 'https=443' \
284-
--target-fqdns 'registry.redhat.io' '*.quay.io' 'sso.redhat.com' 'management.azure.com' 'mirror.openshift.com' 'api.openshift.com' 'quay.io' '*.blob.core.windows.net' 'gcs.prod.monitoring.core.windows.net' 'registry.access.redhat.com' 'login.microsoftonline.com' '*.servicebus.windows.net' '*.table.core.windows.net' 'grafana.com'
262+
--target-fqdns 'cert-api.access.redhat.com' 'api.openshift.com' 'api.access.redhat.com' 'infogw.api.openshift.com'
285263
```
286264
Optional rules for Docker images:
287265
```azurecli
@@ -304,14 +282,14 @@ az network vnet subnet update -g $RESOURCEGROUP --vnet-name $AROVNET --name "$CL
304282
## Test the configuration from the Jumpbox
305283
These steps work only if you added rules for Docker images.
306284
### Configure the jumpbox
307-
Log into a jumpbox VM and install `azure-cli`, `oc-cli`, and `jq` utils. For the installation of openshift-cli, check the Red Hat customer portal.
285+
Log in to a jumpbox VM and install `azure-cli`, `oc-cli`, and `jq` utils. For the installation of openshift-cli, check the Red Hat customer portal.
308286
```bash
309287
#Install Azure-cli
310288
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
311289
#Install jq
312290
sudo apt install jq -y
313291
```
314-
### Log into the ARO cluster
292+
### Log in to the ARO cluster
315293
List cluster credentials:
316294
```bash
317295

0 commit comments

Comments
 (0)