7.3. Paramètres de configuration du contrôleur d'entrée
La ressource ingresscontrollers.operator.openshift.io
offre les paramètres de configuration suivants.
Paramètres | Description |
---|---|
|
La valeur
S'il est vide, la valeur par défaut est |
|
|
|
Sur GCP, AWS et Azure, vous pouvez configurer les champs
Si elle n'est pas définie, la valeur par défaut est basée sur
Pour la plupart des plateformes, la valeur
|
|
La valeur
The secret must contain the following keys and data: *
S'il n'est pas défini, un certificat générique est automatiquement généré et utilisé. Le certificat est valable pour le contrôleur d'entrée Le certificat en cours d'utilisation, qu'il soit généré ou spécifié par l'utilisateur, est automatiquement intégré au serveur OAuth intégré à OpenShift Container Platform. |
|
|
|
|
|
Si ce n'est pas le cas, les valeurs par défaut sont utilisées. Note
Le paramètre nodePlacement: nodeSelector: matchLabels: kubernetes.io/os: linux tolerations: - effect: NoSchedule operator: Exists |
|
Si elle n'est pas définie, la valeur par défaut est basée sur la ressource
Lors de l'utilisation des types de profil
La version TLS minimale pour les contrôleurs d'entrée est Note
Les codes et la version TLS minimale du profil de sécurité configuré sont reflétés dans l'état Important
L'opérateur d'entrée convertit le TLS |
|
Le sous-champ |
|
|
|
|
|
En définissant
Par défaut, la politique est définie sur
En définissant Ces ajustements ne s'appliquent qu'aux itinéraires en clair, terminés par les bords et recryptés, et uniquement lors de l'utilisation du protocole HTTP/1.
Pour les en-têtes de requête, ces ajustements ne sont appliqués qu'aux itinéraires qui ont l'annotation |
|
|
|
|
|
Pour tout cookie que vous souhaitez capturer, les paramètres suivants doivent figurer dans votre configuration
Par exemple : httpCaptureCookies: - matchType: Exact maxLength: 128 name: MYCOOKIE |
|
httpCaptureHeaders: request: - maxLength: 256 name: Connection - maxLength: 128 name: User-Agent response: - maxLength: 256 name: Content-Type - maxLength: 256 name: Content-Length |
|
|
|
Le type
|
|
Le type
Ces connexions proviennent de sondes de santé d'équilibreurs de charge ou de connexions spéculatives de navigateurs web (préconnexion) et peuvent être ignorées sans risque. Cependant, ces demandes peuvent être causées par des erreurs de réseau, de sorte que la définition de ce champ à |
Tous les paramètres sont facultatifs.
7.3.1. Profils de sécurité TLS du contrôleur d'entrée
Les profils de sécurité TLS permettent aux serveurs de déterminer les algorithmes de chiffrement qu'un client peut utiliser lorsqu'il se connecte au serveur.
7.3.1.1. Comprendre les profils de sécurité TLS
Vous pouvez utiliser un profil de sécurité TLS (Transport Layer Security) pour définir les algorithmes TLS requis par les différents composants d'OpenShift Container Platform. Les profils de sécurité TLS d'OpenShift Container Platform sont basés sur les configurations recommandées par Mozilla.
Vous pouvez spécifier l'un des profils de sécurité TLS suivants pour chaque composant :
Profile | Description |
---|---|
| Ce profil est destiné à être utilisé avec des clients ou des bibliothèques anciens. Il est basé sur l'ancienne configuration recommandée pour la rétrocompatibilité.
Le profil Note Pour le contrôleur d'entrée, la version minimale de TLS passe de 1.0 à 1.1. |
| Ce profil est la configuration recommandée pour la majorité des clients. Il s'agit du profil de sécurité TLS par défaut pour le contrôleur d'entrée, le kubelet et le plan de contrôle. Le profil est basé sur la configuration recommandée pour la compatibilité intermédiaire.
Le profil |
| Ce profil est destiné à être utilisé avec des clients modernes qui n'ont pas besoin de rétrocompatibilité. Ce profil est basé sur la configuration recommandée pour la compatibilité moderne.
Le profil |
| Ce profil permet de définir la version de TLS et les algorithmes de chiffrement à utiliser. Avertissement
Soyez prudent lorsque vous utilisez un profil |
Lorsque l'on utilise l'un des types de profil prédéfinis, la configuration effective du profil est susceptible d'être modifiée entre les versions. Par exemple, si l'on spécifie l'utilisation du profil intermédiaire déployé dans la version X.Y.Z, une mise à niveau vers la version X.Y.Z 1 peut entraîner l'application d'une nouvelle configuration de profil, ce qui se traduit par un déploiement.
7.3.1.2. Configuration du profil de sécurité TLS pour le contrôleur d'entrée
Pour configurer un profil de sécurité TLS pour un contrôleur d'entrée, modifiez la ressource personnalisée (CR) IngressController
afin de spécifier un profil de sécurité TLS prédéfini ou personnalisé. Si aucun profil de sécurité TLS n'est configuré, la valeur par défaut est basée sur le profil de sécurité TLS défini pour le serveur API.
Exemple de CR IngressController
qui configure le profil de sécurité TLS Old
apiVersion: operator.openshift.io/v1 kind: IngressController ... spec: tlsSecurityProfile: old: {} type: Old ...
Le profil de sécurité TLS définit la version minimale de TLS et les algorithmes de chiffrement TLS pour les connexions TLS des contrôleurs d'entrée.
Les chiffres et la version TLS minimale du profil de sécurité TLS configuré sont indiqués dans la ressource personnalisée (CR) IngressController
sous Status.Tls Profile
et dans le profil de sécurité TLS configuré sous Spec.Tls Security Profile
. Pour le profil de sécurité TLS Custom
, les algorithmes de chiffrement spécifiques et la version TLS minimale sont répertoriés sous les deux paramètres.
L'image du contrôleur d'entrée HAProxy prend en charge TLS 1.3
et le profil Modern
.
L'opérateur d'entrée convertit également le TLS 1.0
d'un profil Old
ou Custom
en 1.1
.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Modifiez le CR
IngressController
dans le projetopenshift-ingress-operator
pour configurer le profil de sécurité TLS :$ oc edit IngressController default -n openshift-ingress-operator
Ajouter le champ
spec.tlsSecurityProfile
:Exemple de CR
IngressController
pour un profilCustom
apiVersion: operator.openshift.io/v1 kind: IngressController ... spec: tlsSecurityProfile: type: Custom 1 custom: 2 ciphers: 3 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: VersionTLS11 ...
- 1
- Spécifiez le type de profil de sécurité TLS (
Old
,Intermediate
, ouCustom
). La valeur par défaut estIntermediate
. - 2
- Spécifiez le champ approprié pour le type sélectionné :
-
old: {}
-
intermediate: {}
-
custom:
-
- 3
- Pour le type
custom
, spécifiez une liste de chiffrements TLS et la version TLS minimale acceptée.
- Enregistrez le fichier pour appliquer les modifications.
Vérification
Vérifiez que le profil est défini dans le CR
IngressController
:$ oc describe IngressController default -n openshift-ingress-operator
Exemple de sortie
Name: default Namespace: openshift-ingress-operator Labels: <none> Annotations: <none> API Version: operator.openshift.io/v1 Kind: IngressController ... Spec: ... Tls Security Profile: Custom: Ciphers: ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-RSA-CHACHA20-POLY1305 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-GCM-SHA256 Min TLS Version: VersionTLS11 Type: Custom ...
7.3.1.3. Configuration de l'authentification mutuelle TLS
Vous pouvez configurer le contrôleur d'entrée pour activer l'authentification mutuelle TLS (mTLS) en définissant une valeur spec.clientTLS
. La valeur clientTLS
configure le contrôleur d'entrée pour qu'il vérifie les certificats des clients. Cette configuration comprend la définition d'une valeur clientCA
, qui est une référence à une carte de configuration. La carte de configuration contient le paquet de certificats CA codé PEM utilisé pour vérifier le certificat d'un client. En option, vous pouvez configurer une liste de filtres de sujet de certificat.
Si la valeur clientCA
indique un point de distribution de liste de révocation de certificats (CRL) X509v3, l'opérateur d'entrée télécharge la CRL et configure le contrôleur d'entrée pour qu'il en prenne acte. Les demandes qui ne fournissent pas de certificats valides sont rejetées.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Créer une carte de configuration dans l'espace de noms
openshift-config
:$ oc create configmap router-ca-certs-default --from-file=ca-bundle.pem=client-ca.crt -n openshift-config
NoteLa clé de données de la carte de configuration doit être
ca-bundle.pem
, et la valeur des données doit être un certificat d'autorité de certification au format PEM.Modifiez la ressource
IngressController
dans le projetopenshift-ingress-operator
:$ oc edit IngressController default -n openshift-ingress-operator
Ajoutez le champ spec.clientTLS et ses sous-champs pour configurer le TLS mutuel :
Exemple de CR
IngressController
pour un profilclientTLS
qui spécifie des modèles de filtrageapiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: default namespace: openshift-ingress-operator spec: clientTLS: clientCertificatePolicy: Required clientCA: name: router-ca-certs-default allowedSubjectPatterns: - "^/CN=example.com/ST=NC/C=US/O=Security/OU=OpenShift$"