2.11. サードパーティーポリシーコントローラーの統合


サードパーティーポリシーを統合してポリシーテンプレート内にカスタムアノテーションを作成し、コンプライアンス標準、制御カテゴリー、制御を 1 つ以上指定します。

policy-collection/community からサードパーティーポリシーを使用することもできます。

以下のサードパーティーポリシーを統合する方法を説明します。

2.11.1. gatekeeper 制約および制約テンプレートの統合

Gatekeeper は、Open Policy Agent (OPA) で実行されるカスタムリソース定義ベースのポリシーを強制できる監査機能を備えた検証 Webhook です。Gatekeeper Operator ポリシーを使用して、クラスターに Gatekeeper をインストールできます。Gatekeeper 制約を使用して、Kubernetes リソースのコンプライアンスを評価できます。ポリシーエンジンとして OPA を活用し、ポリシー言語に Rego を使用できます。

前提条件: Gatekeeper をインストールし、クラスターに Gatekeeper ポリシーを適用するには、Red Hat Advanced Cluster Management for Kubernetes または Red Hat OpenShift Container Platform Plus サブスクリプションが必要です。Gatekeeper は、最新バージョンの Red Hat Advanced Cluster Management でサポートされるバージョン 3.11 を除く、OpenShift Container Platform のバージョンでのみサポートされます。

gatekeeper ポリシーは、制約テンプレート (ConstraintTemplates) と制約を使用して記述されます。Red Hat Advanced Cluster Management ポリシーで Gatekeeper 制約を使用する以下の YAML の例を表示します。

  • ConstraintTemplates と制約: Red Hat Advanced Cluster Management ポリシーを使用して Gatekeeper 統合機能を使用し、Gatekeeper 制約のマルチクラスター分散とハブクラスターでの Gatekeeper 監査結果の集約を行います。次の例では、Gatekeeper ConstraintTemplate と制約 (K8sRequiredLabels) を定義して、gatekeeper ラベルがすべての namespace に設定されていることを確認します。

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: require-gatekeeper-labels-on-ns
    spec:
      remediationAction: inform 1
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: templates.gatekeeper.sh/v1beta1
            kind: ConstraintTemplate
            metadata:
              name: k8srequiredlabels
              annotations:
                policy.open-cluster-management.io/severity: low 2
            spec:
              crd:
                spec:
                  names:
                    kind: K8sRequiredLabels
                  validation:
                    openAPIV3Schema:
                      properties:
                        labels:
                          type: array
                          items: string
              targets:
                - target: admission.k8s.gatekeeper.sh
                  rego: |
                    package k8srequiredlabels
                    violation[{"msg": msg, "details": {"missing_labels": missing}}] {
                      provided := {label | input.review.object.metadata.labels[label]}
                      required := {label | label := input.parameters.labels[_]}
                      missing := required - provided
                      count(missing) > 0
                      msg := sprintf("you must provide labels: %v", [missing])
                    }
        - objectDefinition:
            apiVersion: constraints.gatekeeper.sh/v1beta1
            kind: K8sRequiredLabels
            metadata:
              name: ns-must-have-gk
              annotations:
                policy.open-cluster-management.io/severity: low 3
            spec:
              enforcementAction: dryrun
              match:
                kinds:
                  - apiGroups: [""]
                    kinds: ["Namespace"]
              parameters:
                labels: ["gatekeeper"]
    1
    remediationActioninform に設定されているため、Gatekeeper 制約の enforcementAction フィールドは warn にオーバーライドされます。これは、gatekeeper ラベルが欠落している namespace の作成または更新を Gatekeeper が検出し、警告することを意味します。remediationAction ポリシーが enforce に設定されている場合、Gatekeeper 制約の enforcementAction フィールドは deny にオーバーライドされます。このコンテキストでは、この設定により、gatekeeper ラベルが欠落している namespace をユーザーが作成または更新できなくなります。
    2 3
    オプション: 各 Gatekeeper 制約または制約テンプレートに対して、policy.open-cluster-management.io/severity アノテーションの重大度値を設定します。有効な値は、他の Red Hat Advanced Cluster Management ポリシータイプと同じです (lowmediumhigh、または critical)。

    以前のポリシーでは、ポリシーステータスメッセージ warn - you must provide labels: {"gatekeeper"} (on Namespace default); warn - you must provide labels: {"gatekeeper"} (on Namespace gatekeeper-system) が表示される場合があります。Gatekeeper 制約または ConstraintTemplates を含むポリシーが削除されると、制約および ConstraintTemplates もマネージドクラスターから削除されます。

    コンソールから特定のマネージドクラスターの Gatekeeper 監査結果を表示するには、ポリシーテンプレートの Results ページに移動します。検索が有効になっている場合は、監査に失敗した Kubernetes オブジェクトの YAML を表示します。

    注記:

    • Related resources セクションは、監査結果が Gatekeeper バージョン 3.9 以降で生成された場合にのみ使用できます。
    • Gatekeeper の監査機能は、デフォルトでは 1 分ごとに実行されます。監査結果はハブクラスターに返送され、マネージドクラスターの Red Hat Advanced Cluster Management ポリシーステータスで表示されます。
  • policy-gatekeeper-admission: Red Hat Advanced Cluster Management ポリシー内の policy-gatekeeper-admission 設定ポリシーを使用して、Gatekeeper アドミッション Webhook によって拒否された Kubernetes API リクエストを確認します。

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-gatekeeper-admission
    spec:
      remediationAction: inform # will be overridden by remediationAction in parent policy
      severity: low
      object-templates:
        - complianceType: mustnothave
          objectDefinition:
            apiVersion: v1
            kind: Event
            metadata:
              namespace: openshift-gatekeeper-system # set it to the actual namespace where gatekeeper is running if different
              annotations:
                constraint_action: deny
                constraint_kind: K8sRequiredLabels
                constraint_name: ns-must-have-gk
                event_type: violation

2.11.1.1. 関連情報

2.11.2. ポリシージェネレーター

ポリシージェネレーターは、Kustomize を使用して Red Hat Advanced Cluster Management ポリシーを生成する Red Hat Advanced Cluster Management for Kubernetes アプリケーションライフサイクルサブスクリプション GitOps ワークフローの一部です。ポリシージェネレーターは、設定に使用される PolicyGenerator マニフェスト YAML ファイル提供の Kubernetes マニフェスト YAML ファイルから Red Hat Advanced Cluster Management ポリシーをビルドします。ポリシージェネレーターは、Kustomize ジェネレータープラグインとして実装されます。Kustomize の詳細は、Kustomize のドキュメント を参照してください。

詳細は、以下のセクションを参照してください。

2.11.2.1. ポリシージェネレーター機能

ポリシージェネレーターと Red Hat Advanced Cluster Management アプリケーションライフサイクルサブスクリプション GitOps ワークフローとの統合により、OpenShift Container Platform マネージドクラスターへの Kubernetes リソースオブジェクトの配布と、Red Hat Advanced Cluster Management ポリシーによる Kubernetes クラスターが簡素化されます。

ポリシージェネレーターを使用して、次のアクションを実行します。

  • Kustomize ディレクトリーから作成されたマニフェストを含む、任意の Kubernetes マニフェストファイルを Red Hat Advanced Cluster Management 設定ポリシーに変換します。
  • 生成された Red Hat Advanced Cluster Management ポリシーに挿入される前に、入力された Kubernetes マニフェストにパッチを適用します。
  • Red Hat Advanced Cluster Management for Kubernetes で、Gatekeeper ポリシー違反について報告できるように追加の設定ポリシーを生成します。
  • ハブクラスターでポリシーセットを生成します。

2.11.2.2. ポリシージェネレーターの設定構造

ポリシージェネレーターは、PolicyGenerator の種類および policy.open-cluster-management.io/v1 API バージョンのマニフェストで設定される Kustomize ジェネレータープラグインです。

プラグインを使用するには、まず、kustomization.yaml ファイルに generators セクションを追加します。以下の例を参照してください。

generators:
  - policy-generator-config.yaml

直前の例で参照される policy-generator-config.yaml ファイルは、生成するポリシーの手順を含む YAML ファイルです。単純な PolicyGenerator 設定ファイルは以下の例のようになります。

apiVersion: policy.open-cluster-management.io/v1
kind: PolicyGenerator
metadata:
  name: config-data-policies
policyDefaults:
  namespace: policies
  policySets: []
policies:
  - name: config-data
    manifests:
      - path: configmap.yaml

configmap.yaml は、ポリシーに含まれる Kubernetes マニフェスト YAML ファイルを表します。また、Kustomize ディレクトリー、または複数の Kubernetes マニフェスト YAML ファイルを含むディレクトリーへのパスを設定できます。以下の例を参照してください。

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
  namespace: default
data:
  key1: value1
  key2: value2

生成された PolicyPlacementRulePlacementBinding は以下の例のようになります。

apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
  name: placement-config-data
  namespace: policies
spec:
  clusterConditions:
  - status: "True"
    type: ManagedClusterConditionAvailable
  clusterSelector:
    matchExpressions: []
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
  name: binding-config-data
  namespace: policies
placementRef:
  apiGroup: apps.open-cluster-management.io
  kind: PlacementRule
  name: placement-config-data
subjects:
- apiGroup: policy.open-cluster-management.io
  kind: Policy
  name: config-data
---
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  annotations:
    policy.open-cluster-management.io/categories: CM Configuration Management
    policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    policy.open-cluster-management.io/standards: NIST SP 800-53
    policy.open-cluster-management.io/description:
  name: config-data
  namespace: policies
spec:
  disabled: false
  policy-templates:
  - objectDefinition:
      apiVersion: policy.open-cluster-management.io/v1
      kind: ConfigurationPolicy
      metadata:
        name: config-data
      spec:
        object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: v1
            data:
              key1: value1
              key2: value2
            kind: ConfigMap
            metadata:
              name: my-config
              namespace: default
        remediationAction: inform
        severity: low

2.11.2.3. ポリシージェネレーター設定の参照テーブル

namespace を除く policyDefaults セクションのすべてのフィールドはポリシーごとにオーバーライドでき、policySetDefaults セクションのすべてのフィールドはポリシーセットごとにオーバーライドできることに注意してください。

表2.15 パラメーターの表
フィールド任意または必須説明

apiVersion

必須

この値は policy.open-cluster-management.io/v1 に設定します。

kind

必須

ポリシーのタイプを指定するには、値を PolicyGenerator に設定します。

metadata.name

必須

ポリシーリソースを識別する名前。

placementBindingDefaults.name

任意

複数のポリシーが同じ配置を使用する場合、この名前は結果の PlacementBinding の一意の名前を生成するために使用され、配置とそれを参照するポリシーの配列がバインドされます。

policyDefaults

必須

namespace 以外の policies 配列のエントリーによって、ここでリスト表示されるデフォルト値は上書きされます。

policyDefaults.namespace

必須

すべてのポリシーの namespace。

policyDefaults.complianceType

任意

マニフェストとクラスターのオブジェクトを比較する場合のポリシーコントローラーの動作を決定します。使用できる値は、musthavemustonlyhave、または mustnothave です。デフォルト値は musthave です。

policyDefaults.metadataComplianceType

任意

マニフェストメタデータセクションをクラスター上のオブジェクトと比較するときに、complianceType をオーバーライドします。使用できる値は musthavemustonlyhave です。メタデータの complianceType のオーバーライドを避けるため、デフォルト値は空 ({}) です。

policyDefaults.categories

任意

policy.open-cluster-management.io/categories アノテーションで使用されるカテゴリーの配列。デフォルト値は CM Configuration Management です。

policyDefaults.controls

任意

policy.open-cluster-management.io/controls アノテーションで使用されるコントロールの配列。デフォルト値は CM-2 Baseline Configuration です。

policyDefaults.standards

任意

policy.open-cluster-management.io/standards アノテーションで使用する標準の配列。デフォルト値は NIST SP 800-53 です。

policyDefaults.policyAnnotations

任意

ポリシーの metadata.annotations セクションに含まれるアノテーションです。ポリシーで指定されていない限り、すべてのポリシーに適用されます。デフォルト値は空です ({}).。

policyDefaults.configurationPolicyAnnotations

任意

生成された設定ポリシーに設定するアノテーションのキーと値のペアです。たとえば、{"policy.open-cluster-management.io/disable-templates": "true"} というパラメーターを定義することで、ポリシーテンプレートを無効にすることができます。デフォルト値は空です ({}).。

policyDefaults.copyPolicyMetadata

任意

すべてのポリシーのラベルとアノテーションをコピーし、レプリカポリシーに追加します。デフォルトでは true に設定されます。false に設定すると、ポリシーフレームワーク固有のポリシーラベルとアノテーションのみがレプリケートされたポリシーにコピーされます。

policyDefaults.severity

任意

ポリシー違反の重大度。デフォルト値は low です。

policyDefaults.disabled

任意

ポリシーが無効になっているかどうか、つまり、ポリシーが伝播されておらず、結果としてステータスがないことを意味します。ポリシーを有効にするデフォルト値は false です。

policyDefaults.remediationAction

任意

ポリシーの修復メカニズム。パラメーターの値は enforce および inform です。デフォルト値は inform です。

policyDefaults.namespaceSelector

namespace が指定されていない namespace 付きオブジェクトに必要

オブジェクトが適用されるマネージドクラスター内の namespace を決定します。include パラメーターと exclude パラメーターは、ファイルパス式を受け入れて、名前で namespace を含めたり除外したりします。matchExpressions および matchLabels パラメーターは、ラベルによって含める namespace を指定します。Kubernetes のラベルとセレクター のドキュメントを読んでください。結果のリストは、すべてのパラメーターからの結果の共通部分を使用してコンパイルされます。

policyDefaults.evaluationInterval

任意

特定のコンプライアンス状態にある場合にポリシーが評価される頻度を指定するには、パラメーター compliant および noncompliant を使用します。マネージドクラスターの CPU リソースが少ない場合は、評価間隔を長くして Kubernetes API の CPU 使用率を減らすことができます。これらは期間を表す形式です。たとえば、"1h25m3s" は 1 時間 25 分 3 秒を表します。これらは、特定のコンプライアンス状態になった後にポリシーを評価しないように、"never" に設定することもできます。

policyDefaults.pruneObjectBehavior

任意

ポリシーが削除されたときに、ポリシーによって作成または監視されているオブジェクトを削除するかどうかを決定します。プルーニングは、ポリシーの修復アクションが enforce に設定されている場合にのみ行われます。値の例は、DeleteIfCreatedDeleteAll、または None です。デフォルト値は None です。

policyDefaults.dependencies

任意

このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。policyDefaults.orderPoliciestrue に設定されている場合は指定できません。

policyDefaults.dependencies[].name

必須

依存しているオブジェクトの名前。

policyDefaults.dependencies[].namespace

任意

依存しているオブジェクトの namespace。デフォルトは、ポリシージェネレーターに設定されたポリシーの namespace です。

policyDefaults.dependencies[].compliance

任意

オブジェクトが必要とするコンプライアンス状態。デフォルト値は Compliant です。

policyDefaults.dependencies[].kind

任意

オブジェクトの種類。デフォルトでは、種類は Policy に設定されていますが、ConfigurationPolicy などのコンプライアンス状態を持つ他の種類にすることもできます。

policyDefaults.dependencies[].apiVersion

任意

オブジェクトの API バージョン。デフォルト値は policy.open-cluster-management.io/v1 です。

policyDefaults.extraDependencies

任意

このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。定義した依存関係は、dependencies リストとは別に各ポリシーテンプレート (ConfigurationPolicy など) に追加されます。policyDefaults.orderManifeststrue に設定されている場合は指定できません。

policyDefaults.extraDependencies[].name

必須

依存しているオブジェクトの名前。

policyDefaults.extraDependencies[].namespace

任意

依存しているオブジェクトの namespace。デフォルトでは、値はポリシージェネレーターに設定されたポリシーの namespace 間に設定されます。

policyDefaults.extraDependencies[].compliance

任意

オブジェクトが必要とするコンプライアンス状態。デフォルト値は Compliant です。

policyDefaults.extraDependencies[].kind

任意

オブジェクトの種類。デフォルト値は Policy ですが、ConfigurationPolicy など、コンプライアンス状態を持つ他の種類にすることもできます。

policyDefaults.extraDependencies[].apiVersion

任意

オブジェクトの API バージョン。デフォルト値は policy.open-cluster-management.io/v1 です。

policyDefaults.ignorePending

任意

ポリシージェネレーターがその依存関係が目的の状態に達するのを待機しているときに、コンプライアンスステータスチェックをバイパスします。デフォルト値は false です。

policyDefaults.orderPolicies

任意

ポリシーの dependencies を自動的に生成して、ポリシーリストで定義した順序で適用されるようにします。デフォルトでは、値は false に設定されています。policyDefaults.dependencies と同時に指定することはできません。

policyDefaults.orderManifests

任意

ポリシーテンプレートに extraDependencies を自動的に生成して、そのポリシーのマニフェストリストで定義した順序で適用されるようにします。policyDefaults.consolidateManifeststrue に設定されている場合は指定できません。policyDefaults.extraDependencies と同時に指定することはできません。

policyDefaults.consolidateManifests

任意

これは、ポリシーでラップされるすべてのマニフェストに対して設定ポリシーを 1 つ生成するかどうかを決定します。false に設定すると、マニフェストごとの設定ポリシーが生成されます。デフォルト値は true です。

policyDefaults.informGatekeeperPolicies (非推奨)

任意

Gatekeeper マニフェストを設定ポリシーで定義せずに直接使用するには、informGatekeeperPolicies を false に設定します。ポリシーが違反した Gatekeeper ポリシーマニフェストを参照している場合は、Red Hat Advanced Cluster Management でポリシー違反を受け取るために追加の設定ポリシーが生成されます。デフォルト値は true です。

policyDefaults.informKyvernoPolicies

任意

このポリシーが Kyverno ポリシーマニフェストを参照すると、Kyverno ポリシーの違反時に Red Hat Advanced Cluster Management でポリシー違反を受け取るために、設定ポリシーを追加で生成するかどうかが決定されます。デフォルト値は true です。

policyDefaults.policySets

任意

ポリシーが参加するポリシーセットの配列。ポリシーセットの詳細は、policySets セクションで定義できます。ポリシーがポリシーセットの一部であると、配置バインディングはそのセットに対して生成されるため、ポリシーに対しては生成されません。policies[].generatePlacementWhenInSet または policyDefaults.generatePlacementWhenInSet を設定して、policyDefaults.policySets をオーバーライドします。

policyDefaults.generatePolicyPlacement

任意

ポリシーの配置マニフェストを生成します。デフォルトでは true に設定されます。false に設定すると、placement が指定されている場合でも、プレースメントマニフェストの生成はスキップされます。

policyDefaults.generatePlacementWhenInSet

任意

ポリシーがポリシーセットの一部である場合、デフォルトでは、ポリシーセットの配置が生成されるため、ジェネレーターはこのポリシーの配置を生成しません。ポリシーの配置とポリシーセットの配置の両方でポリシーをデプロイするには、generatePlacementWhenInSettrue に設定します。デフォルト値は false です。

policyDefaults.placement

任意

ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。

policyDefaults.placement.name

任意

同じクラスターセレクターが含まれる配置ルールを統合するための名前を指定します。

policyDefaults.placement.labelSelector

任意

key:value を使用してクラスターセレクターを定義するか、matchExpressionsmatchLabels、またはその両方に適切な値を指定して、placement ルールを指定します。既存のファイルを指定するには、placementPath を参照してください。

policyDefaults.placement.placementName

任意

クラスターにすでに存在する配置を使用するには、このパラメーターを定義します。Placement は作成されませんが、PlacementBinding はポリシーをこの Placement にバインドします。

policyDefaults.placement.placementPath

任意

既存の配置を再利用するには、kustomization.yaml ファイルの場所を基準とした相対パスを指定します。指定した場合は、デフォルトですべてのポリシーがこの配置ルールを使用します。新しい Placement を生成するには、labelSelector 参照してください。

policyDefaults.placement.clusterSelector (非推奨)

任意

PlacementRule は非推奨になりました。代わりに labelSelector を使用して placement を生成します。key:value を使用してクラスターセレクターを定義するか、matchExpressionsmatchLabels、またはその両方を適切な値で指定することにより、配置ルールを指定します。既存のファイルを指定する場合は、placementRulePath を参照してください。

policyDefaults.placement.placementRuleName (非推奨)

任意

PlacementRule は非推奨になりました。あるいは、placementName を使用して placement を指定します。クラスター上で既存の配置ルールを使用するには、このパラメーターの名前を指定します。PlacementRule は作成されませんが、PlacementBinding によってポリシーが既存の PlacementRule にバインドされます。

policyDefaults.placement.placementRulePath (非推奨)

任意

PlacementRule は非推奨になりました。あるいは、placementPath を使用して配置を指定します。既存の配置ルールを再利用するには、kustomization.yaml ファイルの場所に対する相対パスを指定します。指定した場合は、デフォルトですべてのポリシーがこの配置ルールを使用します。新しい PlacementRule を生成するには、clusterSelector を参照してください。

policySetDefaults

任意

ポリシーセットのデフォルト値。このパラメーターにリストされているデフォルト値は、policySets 配列のエントリーによってオーバーライドされます。

policySetDefaults.placement

任意

ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。このフィールドの説明は、policyDefaults.placement を参照してください。

policySetDefaults.generatePolicySetPlacement

任意

ポリシーセットの配置マニフェストを生成します。デフォルトでは true に設定されます。false に設定すると、配置が指定されている場合でも、配置マニフェストの生成はスキップされます。

policies

必須

デフォルト値または policyDefaults で設定される値のいずれかを上書きする値と合わせて作成するポリシーのリスト。追加のフィールドと説明は、policyDefaults を参照してください。

policies[].name

必須

作成するポリシーの名前。

policies[].manifests

必須

デフォルト値、この policies 項目に設定された値、または policyDefaults に設定された値のいずれかへのオーバーライドとともに、ポリシーに含める Kubernetes オブジェクトマニフェストのリスト。追加のフィールドと説明については、policyDefaults を参照してください。consolidateManifeststrue に設定されている場合、policies.manifests レベルでオーバーライドできるのは、complianceTypemetadataComplianceType のみです。

policies[].manifests[].path

必須

単一のファイル、ファイルのフラットディレクトリー、または kustomization.yaml ファイルに関連する Kustomize ディレクトリーへのパス。ディレクトリーが Kustomize ディレクトリーの場合、ジェネレーターは、ポリシーを生成する前にディレクトリーに対して Kustomize を実行します。

policies[].manifests[].patches

任意

パスのマニフェストに適用する Kustomize パッチのリスト。複数のマニフェストがある場合は、Kustomize がパッチの適用先のマニフェストを特定できるように、パッチに apiVersionkindmetadata.name、および metadata.namespace (該当する場合) フィールドを設定する必要があります。マニフェストが 1 つの場合には、metadata.name および metadata.namespace フィールドにパッチを適用できます。

policySets

任意

作成するポリシーセットのリストと、デフォルト値または policySetDefaults に設定されている値のいずれかへのオーバーライド。ポリシーセットにポリシーを含めるには、policyDefaults.policySetspolicies[].policySets、または policySets.policies を使用します。追加のフィールドと説明は、policySetDefaults を参照してください。

policySets[].name

必須

作成するポリシーセットの名前です。

policySets[].description

任意

作成するポリシーセットの説明です。

policySets[].policies

任意

ポリシーセットに含まれるポリシーのリストです。policyDefaults.policySets または policies[].policySets も指定されていると、リストがマージされます。

2.11.2.4. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.