Cluster Security

Introduction

Muppy gère la sécurité de toutes les ressources des mClusters.

La sécurité est définie par des Tasks appelées pour chaque Resource du Cluster afin d'ajuster la configuration du Firewall.

Le paramètre Security Setup Task permet de sélectionner une Task qui sera appelées par défaut pour toutes les Resources du Cluster.

Il est possible de définir une Task spécifique au niveau de chaque Muppy Cluster Resource.

Muppy est livrée avec une Task nommée Muppy Default Cluster Security Setup.

Muppy Default Cluster Security Setup Task

Cette Task configure la sécurité des Muppy Cluster Resources de la manière suivante:

  • Reverse Proxy ; les ports 443 et 80 sont globalement ouverts.

  • Computes Nodes ; les Reverse Proxies ont accès à tous les ports et tous les protocoles (Trusted Hosts) des Computes Nodes

  • PostgreSQL Cluster ; les Computes Nodes peuvent se connecter à tous les Clusters PostgreSQL sur le port du Cluster (5432). Le fichier pg_hba.conf du Cluster PostgreSQL est ajusté en conséquence.

Ces règles sont adaptées à la mise au point d'un cluster et constituent un point de départ. Nous encourageons les Utilisateurs à créer des Security Setup Tasks plus restrictives.

Actuellement la Muppy Default Cluster Security Setup Task ne sait gérer que des resources PostgreSQL Clusters qui utilisent le port 5432.

Si vous utilisez un autre port vous devrez écrire une Security Setup Task spécialisée.

Application de la sécurité

Custom Security Setup Tasks

Les utilisateurs peuvent créer leur propre Task de configuration de sécurité des Clusters.

Voici un template de Task de Security Setup.

@fabric_task()
def acme_megacluster_security_setup(
    cnx, host_obj, m_cluster_resource_obj:OdooModelType, _imq_logger=None
):
    """ Acme Megacluster Security Setup Task
    :param host_obj: Host of the m_cluster_resource
    :param m_cluster_resource_obj: The cluster resource whose security needs to 
        be reconfigured.

    :returns: No value is expected. The Task must raise in case of errror.
    """
    _task_logger = _imq_logger or _logger
    odoo_env = (host_obj or mpk_pack_obj).env
    _commit = odoo_env.cr.commit
    # ...
    return None

Les Custom Security Task doivent être idempotentes !!!!!

Nous vous invitons à analyser le code source de la Task mpk_default_cluster_security_setup (muppy_pack__security.py) qui peut constituer un point de départ pour vos Cluster Security Task.

Last updated