Rechercher

5.15. Comprendre les définitions de ressources personnalisées

download PDF

L'opérateur de conformité dans OpenShift Container Platform vous fournit plusieurs définitions de ressources personnalisées (CRD) pour réaliser les analyses de conformité. Pour exécuter un contrôle de conformité, il s'appuie sur les politiques de sécurité prédéfinies, qui sont dérivées du projet communautaire ComplianceAsCode. L'opérateur de conformité convertit ces politiques de sécurité en CRD, que vous pouvez utiliser pour exécuter des analyses de conformité et obtenir des mesures correctives pour les problèmes détectés.

5.15.1. Flux de travail des CRD

Le document de référence vous fournit le flux de travail suivant pour effectuer les contrôles de conformité :

  1. Définir les exigences de l'analyse de conformité
  2. Configurer les paramètres de l'analyse de conformité
  3. Traiter les exigences de conformité avec les paramètres des analyses de conformité
  4. Contrôler les analyses de conformité
  5. Vérifier les résultats de l'analyse de conformité

5.15.2. Définir les exigences de l'analyse de conformité

Par défaut, les CRD de l'opérateur de conformité comprennent les objets ProfileBundle et Profile, dans lesquels vous pouvez définir et fixer les règles pour vos exigences d'analyse de conformité. Vous pouvez également personnaliser les profils par défaut en utilisant un objet TailoredProfile.

5.15.2.1. Objet ProfileBundle

Lorsque vous installez l'Opérateur de Conformité, il inclut des objets ProfileBundle prêts à être exécutés. L'Opérateur de Conformité analyse l'objet ProfileBundle et crée un objet Profile pour chaque profil de l'ensemble. Il analyse également les objets Rule et Variable, qui sont utilisés par l'objet Profile.

Exemple d'objet ProfileBundle

apiVersion: compliance.openshift.io/v1alpha1
kind: ProfileBundle
  name: <profile bundle name>
  namespace: openshift-compliance
status:
  dataStreamStatus: VALID 1

1
Indique si l'opérateur de conformité a pu analyser les fichiers de contenu.
Note

Lorsque le site contentFile échoue, un attribut errorMessage apparaît, qui fournit des détails sur l'erreur qui s'est produite.

Résolution de problèmes

Lorsque vous revenez à une image de contenu connue à partir d'une image non valide, l'objet ProfileBundle ne répond plus et affiche l'état PENDING. En guise de solution de contournement, vous pouvez passer à une image différente de la précédente. Vous pouvez également supprimer et recréer l'objet ProfileBundle pour revenir à l'état de fonctionnement.

5.15.2.2. Objet du profil

L'objet Profile définit les règles et les variables qui peuvent être évaluées pour une certaine norme de conformité. Il contient des détails analysés sur un profil OpenSCAP, tels que son identifiant XCCDF et les contrôles de profil pour un type Node ou Platform. Vous pouvez utiliser directement l'objet Profile ou le personnaliser davantage en utilisant un objet TailorProfile.

Note

Vous ne pouvez pas créer ou modifier l'objet Profile manuellement car il est dérivé d'un seul objet ProfileBundle. En règle générale, un seul objet ProfileBundle peut inclure plusieurs objets Profile.

Exemple d'objet Profile

apiVersion: compliance.openshift.io/v1alpha1
description: <description of the profile>
id: xccdf_org.ssgproject.content_profile_moderate 1
kind: Profile
metadata:
  annotations:
    compliance.openshift.io/product: <product name>
    compliance.openshift.io/product-type: Node 2
  creationTimestamp: "YYYY-MM-DDTMM:HH:SSZ"
  generation: 1
  labels:
    compliance.openshift.io/profile-bundle: <profile bundle name>
  name: rhcos4-moderate
  namespace: openshift-compliance
  ownerReferences:
  - apiVersion: compliance.openshift.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: ProfileBundle
    name: <profile bundle name>
    uid: <uid string>
  resourceVersion: "<version number>"
  selfLink: /apis/compliance.openshift.io/v1alpha1/namespaces/openshift-compliance/profiles/rhcos4-moderate
  uid: <uid string>
rules: 3
- rhcos4-account-disable-post-pw-expiration
- rhcos4-accounts-no-uid-except-zero
- rhcos4-audit-rules-dac-modification-chmod
- rhcos4-audit-rules-dac-modification-chown
title: <title of the profile>

1
Indiquez le nom XCCDF du profil. Utilisez cet identifiant lorsque vous définissez un objet ComplianceScan comme valeur de l'attribut de profil de l'analyse.
2
Spécifiez une adresse Node ou Platform. Les profils de nœuds analysent les nœuds du cluster et les profils de plateforme analysent la plateforme Kubernetes.
3
Spécifiez la liste des règles pour le profil. Chaque règle correspond à un seul contrôle.

5.15.2.3. Objet de la règle

L'objet Rule, qui forme les profils, est également exposé en tant qu'objet. Utilisez l'objet Rule pour définir vos exigences en matière de contrôle de conformité et spécifier comment il pourrait être corrigé.

Exemple d'objet Rule

    apiVersion: compliance.openshift.io/v1alpha1
    checkType: Platform 1
    description: <description of the rule>
    id: xccdf_org.ssgproject.content_rule_configure_network_policies_namespaces 2
    instructions: <manual instructions for the scan>
    kind: Rule
    metadata:
      annotations:
        compliance.openshift.io/rule: configure-network-policies-namespaces
        control.compliance.openshift.io/CIS-OCP: 5.3.2
        control.compliance.openshift.io/NERC-CIP: CIP-003-3 R4;CIP-003-3 R4.2;CIP-003-3
          R5;CIP-003-3 R6;CIP-004-3 R2.2.4;CIP-004-3 R3;CIP-007-3 R2;CIP-007-3 R2.1;CIP-007-3
          R2.2;CIP-007-3 R2.3;CIP-007-3 R5.1;CIP-007-3 R6.1
        control.compliance.openshift.io/NIST-800-53: AC-4;AC-4(21);CA-3(5);CM-6;CM-6(1);CM-7;CM-7(1);SC-7;SC-7(3);SC-7(5);SC-7(8);SC-7(12);SC-7(13);SC-7(18)
      labels:
        compliance.openshift.io/profile-bundle: ocp4
      name: ocp4-configure-network-policies-namespaces
      namespace: openshift-compliance
    rationale: <description of why this rule is checked>
    severity: high 3
    title: <summary of the rule>

1
Spécifiez le type de contrôle que cette règle exécute. Les profils Node analysent les nœuds de cluster et les profils Platform analysent la plateforme Kubernetes. Une valeur vide indique qu'il n'y a pas de contrôle automatisé.
2
Indiquez le nom XCCDF de la règle, qui est analysé directement à partir du flux de données.
3
Spécifiez la gravité de la règle en cas d'échec.
Note

L'objet Rule reçoit une étiquette appropriée pour faciliter l'identification de l'objet ProfileBundle associé. L'adresse ProfileBundle est également spécifiée dans l'adresse OwnerReferences de cet objet.

5.15.2.4. Objet TailoredProfile

Utilisez l'objet TailoredProfile pour modifier l'objet par défaut Profile en fonction des besoins de votre organisation. Vous pouvez activer ou désactiver des règles, définir des valeurs variables et justifier la personnalisation. Après validation, l'objet TailoredProfile crée un objet ConfigMap, qui peut être référencé par un objet ComplianceScan.

Astuce

Vous pouvez utiliser l'objet TailoredProfile en le référençant dans un objet ScanSettingBinding. Pour plus d'informations sur ScanSettingBinding, voir l'objet ScanSettingBinding.

Exemple d'objet TailoredProfile

apiVersion: compliance.openshift.io/v1alpha1
kind: TailoredProfile
metadata:
  name: rhcos4-with-usb
spec:
  extends: rhcos4-moderate 1
  title: <title of the tailored profile>
  disableRules:
    - name: <name of a rule object to be disabled>
      rationale: <description of why this rule is checked>
status:
  id: xccdf_compliance.openshift.io_profile_rhcos4-with-usb 2
  outputRef:
    name: rhcos4-with-usb-tp 3
    namespace: openshift-compliance
  state: READY 4

1
Ce nom est facultatif. Nom de l'objet Profile sur lequel TailoredProfile est construit. Si aucune valeur n'est définie, un nouveau profil est créé à partir de la liste enableRules.
2
Spécifie le nom XCCDF du profil personnalisé.
3
Spécifie le nom ConfigMap, qui peut être utilisé comme valeur de l'attribut tailoringConfigMap.name d'un ComplianceScan.
4
Indique l'état de l'objet tel que READY, PENDING, et FAILURE. Si l'état de l'objet est ERROR, alors l'attribut status.errorMessage fournit la raison de l'échec.

Avec l'objet TailoredProfile, il est possible de créer un nouvel objet Profile en utilisant la construction TailoredProfile. Pour créer un nouvel objet Profile, définissez les paramètres de configuration suivants :

  • un titre approprié
  • extends la valeur doit être vide
  • l'annotation du type de balayage sur l'objet TailoredProfile:

    compliance.openshift.io/product-type: Platform/Node
    Note

    Si vous n'avez pas défini l'annotation product-type, l'Opérateur de Conformité utilise par défaut le type de scan Platform. L'ajout du suffixe -node au nom de l'objet TailoredProfile permet d'obtenir le type de balayage node.

5.15.3. Configuration des paramètres de l'analyse de conformité

Après avoir défini les exigences du contrôle de conformité, vous pouvez le configurer en spécifiant le type de contrôle, l'occurrence du contrôle et l'emplacement du contrôle. Pour ce faire, l'Opérateur de Conformité vous fournit un objet ScanSetting.

5.15.3.1. Objet ScanSetting

Utilisez l'objet ScanSetting pour définir et réutiliser les politiques opérationnelles pour exécuter vos analyses. Par défaut, l'opérateur de conformité crée les objets ScanSetting suivants :

  • default - il effectue un balayage tous les jours à 1 heure du matin sur les nœuds maître et travailleur à l'aide d'un volume persistant (PV) de 1Gi et conserve les trois derniers résultats. La remédiation n'est ni appliquée ni mise à jour automatiquement.
  • default-auto-apply - il effectue un scan tous les jours à 1 heure du matin sur le plan de contrôle et les nœuds de travail à l'aide d'un volume persistant (PV) de 1Gi et conserve les trois derniers résultats. Les valeurs autoApplyRemediations et autoUpdateRemediations sont toutes deux définies comme étant vraies.

Exemple d'objet ScanSetting

Name:                      default-auto-apply
Namespace:                 openshift-compliance
Labels:                    <none>
Annotations:               <none>
API Version:               compliance.openshift.io/v1alpha1
Auto Apply Remediations:   true
Auto Update Remediations:  true
Kind:                      ScanSetting
Metadata:
  Creation Timestamp:  2022-10-18T20:21:00Z
  Generation:          1
  Managed Fields:
    API Version:  compliance.openshift.io/v1alpha1
    Fields Type:  FieldsV1
    fieldsV1:
      f:autoApplyRemediations: 1
      f:autoUpdateRemediations: 2
      f:rawResultStorage:
        .:
        f:nodeSelector:
          .:
          f:node-role.kubernetes.io/master:
        f:pvAccessModes:
        f:rotation:
        f:size:
        f:tolerations:
      f:roles:
      f:scanTolerations:
      f:schedule:
      f:showNotApplicable:
      f:strictNodeScan:
    Manager:         compliance-operator
    Operation:       Update
    Time:            2022-10-18T20:21:00Z
  Resource Version:  38840
  UID:               8cb0967d-05e0-4d7a-ac1c-08a7f7e89e84
Raw Result Storage:
  Node Selector:
    node-role.kubernetes.io/master:
  Pv Access Modes:
    ReadWriteOnce
  Rotation:  3 3
  Size:      1Gi 4
  Tolerations:
    Effect:              NoSchedule
    Key:                 node-role.kubernetes.io/master
    Operator:            Exists
    Effect:              NoExecute
    Key:                 node.kubernetes.io/not-ready
    Operator:            Exists
    Toleration Seconds:  300
    Effect:              NoExecute
    Key:                 node.kubernetes.io/unreachable
    Operator:            Exists
    Toleration Seconds:  300
    Effect:              NoSchedule
    Key:                 node.kubernetes.io/memory-pressure
    Operator:            Exists
Roles: 5
  master
  worker
Scan Tolerations:
  Operator:           Exists
Schedule:             "0 1 * * *" 6
Show Not Applicable:  false
Strict Node Scan:     true
Events:               <none>

1
La valeur true permet d'activer les remédiations automatiques. La valeur false permet de désactiver les remédiations automatiques.
2
La valeur true permet d'activer les remédiations automatiques pour les mises à jour de contenu. La valeur false désactive les remédiations automatiques pour les mises à jour de contenu.
3
Indiquez le nombre de balayages stockés dans le format de résultat brut. La valeur par défaut est 3. Comme les résultats les plus anciens font l'objet d'une rotation, l'administrateur doit stocker les résultats ailleurs avant que la rotation n'ait lieu.
4
Indiquez la taille de la mémoire qui doit être créée pour l'analyse afin de stocker les résultats bruts. La valeur par défaut est 1Gi
6
Spécifiez la fréquence d'exécution de l'analyse au format cron.
Note

Pour désactiver la politique de rotation, réglez la valeur sur 0.

5
Spécifiez la valeur de l'étiquette node-role.kubernetes.io pour programmer l'analyse pour le type Node. Cette valeur doit correspondre au nom d'un site MachineConfigPool.

5.15.4. Traitement des exigences de contrôle de conformité avec les paramètres des contrôles de conformité

Lorsque vous avez défini les exigences de l'analyse de conformité et configuré les paramètres pour exécuter les analyses, l'opérateur de conformité les traite à l'aide de l'objet ScanSettingBinding.

5.15.4.1. Objet ScanSettingBinding

Utilisez l'objet ScanSettingBinding pour spécifier vos exigences de conformité en référence à l'objet Profile ou TailoredProfile. Il est ensuite lié à un objet ScanSetting, qui fournit les contraintes opérationnelles pour l'analyse. L'opérateur de conformité génère ensuite l'objet ComplianceSuite sur la base des objets ScanSetting et ScanSettingBinding.

Exemple d'objet ScanSettingBinding

apiVersion: compliance.openshift.io/v1alpha1
kind: ScanSettingBinding
metadata:
  name: <name of the scan>
profiles: 1
  # Node checks
  - name: rhcos4-with-usb
    kind: TailoredProfile
    apiGroup: compliance.openshift.io/v1alpha1
  # Cluster checks
  - name: ocp4-moderate
    kind: Profile
    apiGroup: compliance.openshift.io/v1alpha1
settingsRef: 2
  name: my-companys-constraints
  kind: ScanSetting
  apiGroup: compliance.openshift.io/v1alpha1

1
Spécifiez les détails de l'objet Profile ou TailoredProfile pour analyser votre environnement.
2
Spécifier les contraintes opérationnelles, telles que le calendrier et la taille du stockage.

La création des objets ScanSetting et ScanSettingBinding donne lieu à la suite de conformité. Pour obtenir la liste des suites de conformité, exécutez la commande suivante :

$ oc get compliancesuites
Important

Si vous supprimez ScanSettingBinding, la suite de mesures de conformité est également supprimée.

5.15.5. Suivi des analyses de conformité

Après la création de la suite de conformité, vous pouvez contrôler l'état des analyses déployées à l'aide de l'objet ComplianceSuite.

5.15.5.1. Objet ComplianceSuite

L'objet ComplianceSuite vous aide à suivre l'état des scans. Il contient les paramètres bruts utilisés pour créer les balayages et le résultat global.

Pour les analyses de type Node, vous devez mapper l'analyse sur le site MachineConfigPool, car il contient les mesures correctives pour tous les problèmes. Si vous spécifiez une étiquette, assurez-vous qu'elle s'applique directement à un pool.

Exemple d'objet ComplianceSuite

apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceSuite
metadata:
  name: <name of the scan>
spec:
  autoApplyRemediations: false 1
  schedule: "0 1 * * *" 2
  scans: 3
    - name: workers-scan
      scanType: Node
      profile: xccdf_org.ssgproject.content_profile_moderate
      content: ssg-rhcos4-ds.xml
      contentImage: quay.io/complianceascode/ocp4:latest
      rule: "xccdf_org.ssgproject.content_rule_no_netrc_files"
      nodeSelector:
        node-role.kubernetes.io/worker: ""
status:
  Phase: DONE 4
  Result: NON-COMPLIANT 5
  scanStatuses:
  - name: workers-scan
    phase: DONE
    result: NON-COMPLIANT

1
La valeur true permet d'activer les remédiations automatiques. La valeur false permet de désactiver les remédiations automatiques.
2
Spécifiez la fréquence d'exécution de l'analyse au format cron.
3
Spécifiez une liste de spécifications d'analyse à exécuter dans le cluster.
4
Indique l'état d'avancement des analyses.
5
Indique le verdict global de la suite.

La suite crée en arrière-plan l'objet ComplianceScan sur la base du paramètre scans. Vous pouvez récupérer par programme les événements de ComplianceSuites. Pour obtenir les événements de la suite, exécutez la commande suivante :

oc get events --field-selector involvedObject.kind=ComplianceSuite,involvedObject.name=<nom de la suite>
Important

Vous risquez de créer des erreurs lorsque vous définissez manuellement le site ComplianceSuite, car il contient les attributs XCCDF.

5.15.5.2. Objet ComplianceScan avancé

L'Opérateur de Conformité comprend des options pour les utilisateurs avancés pour le débogage ou l'intégration avec l'outillage existant. Bien qu'il soit recommandé de ne pas créer directement un objet ComplianceScan, vous pouvez le gérer à l'aide d'un objet ComplianceSuite.

Exemple Objet avancé ComplianceScan

apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceScan
metadata:
  name: <name of the scan>
spec:
  scanType: Node 1
  profile: xccdf_org.ssgproject.content_profile_moderate 2
  content: ssg-ocp4-ds.xml
  contentImage: quay.io/complianceascode/ocp4:latest 3
  rule: "xccdf_org.ssgproject.content_rule_no_netrc_files" 4
  nodeSelector: 5
    node-role.kubernetes.io/worker: ""
status:
  phase: DONE 6
  result: NON-COMPLIANT 7

1
Spécifiez Node ou Platform. Les profils de nœuds analysent les nœuds du cluster et les profils de plateforme analysent la plateforme Kubernetes.
2
Indiquez l'identifiant XCCDF du profil que vous souhaitez exécuter.
3
Spécifiez l'image du conteneur qui encapsule les fichiers de profil.
4
Elle est facultative. Spécifiez l'analyse pour exécuter une seule règle. Cette règle doit être identifiée par l'ID XCCDF et doit appartenir au profil spécifié.
Note

Si vous ignorez le paramètre rule, l'analyse s'exécute pour toutes les règles disponibles du profil spécifié.

5
Si vous êtes sur OpenShift Container Platform et que vous souhaitez générer une remédiation, le label nodeSelector doit correspondre au label MachineConfigPool.
Note

Si vous ne spécifiez pas le paramètre nodeSelector ou si vous ne correspondez pas à l'étiquette MachineConfig, l'analyse s'exécutera quand même, mais elle ne créera pas de remédiation.

6
Indique la phase actuelle du balayage.
7
Indique le verdict de l'analyse.
Important

Si vous supprimez un objet ComplianceSuite, tous les balayages associés sont supprimés.

Lorsque l'analyse est terminée, elle génère le résultat sous forme de ressources personnalisées de l'objet ComplianceCheckResult. Toutefois, les résultats bruts sont disponibles au format ARF. Ces résultats sont stockés dans un volume persistant (PV), auquel une revendication de volume persistant (PVC) est associée au nom de l'analyse. Vous pouvez récupérer par programme les événements ComplianceScans. Pour générer des événements pour la suite, exécutez la commande suivante :

oc get events --field-selector involvedObject.kind=ComplianceScan,involvedObject.name=<nom de la suite>

5.15.6. Visualisation des résultats de conformité

Lorsque la suite de conformité atteint la phase DONE, vous pouvez consulter les résultats de l'analyse et les mesures correctives possibles.

5.15.6.1. Objet ComplianceCheckResult

Lorsque vous exécutez une analyse avec un profil spécifique, plusieurs règles des profils sont vérifiées. Pour chacune de ces règles, un objet ComplianceCheckResult est créé, qui fournit l'état du cluster pour une règle spécifique.

Exemple d'objet ComplianceCheckResult

apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceCheckResult
metadata:
  labels:
    compliance.openshift.io/check-severity: medium
    compliance.openshift.io/check-status: FAIL
    compliance.openshift.io/suite: example-compliancesuite
    compliance.openshift.io/scan-name: workers-scan
  name: workers-scan-no-direct-root-logins
  namespace: openshift-compliance
  ownerReferences:
  - apiVersion: compliance.openshift.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: ComplianceScan
    name: workers-scan
description: <description of scan check>
instructions: <manual instructions for the scan>
id: xccdf_org.ssgproject.content_rule_no_direct_root_logins
severity: medium 1
status: FAIL 2

1
Décrit la gravité de la vérification de l'analyse.
2
Décrit le résultat du contrôle. Les valeurs possibles sont les suivantes :
  • PASS : la vérification a été effectuée avec succès.
  • FAIL : la vérification n'a pas abouti.
  • INFO : la vérification a été effectuée avec succès et a permis de détecter un problème qui n'est pas suffisamment grave pour être considéré comme une erreur.
  • MANUEL : le contrôle ne peut pas évaluer automatiquement l'état et un contrôle manuel est nécessaire.
  • INCONSISTANT : différents nœuds rapportent des résultats différents.
  • ERREUR : le contrôle a été exécuté avec succès, mais n'a pas pu se terminer.
  • NOTAPPLICABLE : le contrôle n'a pas été effectué car il n'est pas applicable.

Pour obtenir tous les résultats de contrôle d'une suite, exécutez la commande suivante :

oc get compliancecheckresults \
-l compliance.openshift.io/suite=workers-compliancesuite

5.15.6.2. Objet ComplianceRemediation

Pour un contrôle spécifique, vous pouvez avoir un correctif spécifié par datastream. Cependant, si un correctif Kubernetes est disponible, l'opérateur de conformité crée un objet ComplianceRemediation.

Exemple d'objet ComplianceRemediation

apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceRemediation
metadata:
  labels:
    compliance.openshift.io/suite: example-compliancesuite
    compliance.openshift.io/scan-name: workers-scan
    machineconfiguration.openshift.io/role: worker
  name: workers-scan-disable-users-coredumps
  namespace: openshift-compliance
  ownerReferences:
  - apiVersion: compliance.openshift.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: ComplianceCheckResult
    name: workers-scan-disable-users-coredumps
    uid: <UID>
spec:
  apply: false 1
  object:
    current: 2
       apiVersion: machineconfiguration.openshift.io/v1
       kind: MachineConfig
       spec:
         config:
           ignition:
             version: 2.2.0
           storage:
             files:
             - contents:
                 source: data:,%2A%20%20%20%20%20hard%20%20%20core%20%20%20%200
               filesystem: root
               mode: 420
               path: /etc/security/limits.d/75-disable_users_coredumps.conf
    outdated: {} 3

1
true indique que la mesure corrective a été appliquée. false indique que la mesure corrective n'a pas été appliquée.
2
Inclut la définition de la remédiation.
3
Indique une remédiation qui a été précédemment analysée à partir d'une version antérieure du contenu. L'opérateur de conformité conserve les objets périmés afin de permettre à l'administrateur de revoir les nouvelles mesures correctives avant de les appliquer.

Pour obtenir toutes les mesures correctives d'une suite, exécutez la commande suivante :

oc get complianceremediations \
-l compliance.openshift.io/suite=workers-compliancesuite

Pour dresser la liste de tous les contrôles défaillants qui peuvent être corrigés automatiquement, exécutez la commande suivante :

oc get compliancecheckresults \
-l 'compliance.openshift.io/check-status in (FAIL),compliance.openshift.io/automated-remediation'

Pour dresser la liste de tous les contrôles défaillants qui peuvent être corrigés manuellement, exécutez la commande suivante :

oc get compliancecheckresults \
-l 'compliance.openshift.io/check-status in (FAIL),!compliance.openshift.io/automated-remediation'
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.