Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker, Django et Postgres Secrets

Comment inclure les secrets postgres dans django

Sujet résolu
    21 décembre 2023 à 20:27:35

    Bonjour à vous.

    J'essaye de mettre à jour, mon docker. Je me suis aperçu que Django est obsolète. Je dois créer un Dockerfile. Ce qui n'est pas un problème.

    Le problème vient du fait, que mon POSTGRESQL, utilise des secrets. Tandis que Django, puisqu'il est bâti (build), n'utilise plus de variables d'environement. Si oui, je ne peux pas mettre de /run/secrets/... puisqu'il prend cela comme une string.

    Je ne peux plus inclure de secrets.

    Comme ceci:

    • SECRET_KEY
    • POSTGRES_DB
    • POSTGRES_USER
    • POSTGRES_PASSWORD

    Dois-je passer par le fichier .env? (J'aime pas trop mettre de mot de passe dans ce fichier)

    Voici un Exemple de code:

    secrets:
      django_secret_key:
         file: $SECRETSDIR/django/django_secret_key
      postgres_db:
        file: $SECRETSDIR/postgres/postgres_db
      postgres_user:
        file: $SECRETSDIR/postgres/postgres_user
      postgres_password:
        file: $SECRETSDIR/postgres/postgres_password
    
    services:
      postgres:
        environment:
          - POSTGRES_DB_FILE=/run/secrets/postgres_db
          - POSTGRES_USER_FILE=/run/secrets/postgres_user
          - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
        secrets:
          - postgres_db
          - postgres_user
          - postgres_password
    
    
      django:
        build: .
        environment:
          - SECRET_KEY_FILE=/run/secrets/django_secret_key
          - POSTGRES_NAME=/run/secrets/postgres_db
          - POSTGRES_USER=/run/secrets/postgres_user
          - POSTGRES_PASSWORD=/run/secrets/postgres_password
        secrets:
          - django_secret_key
          - postgres_db
          - postgres_user
          - postgres_password
    
    

    C'est comme si POSTGRESQL utilise comme user et mot de passe la string "/run/secrets/postgres_user" et non pas le secret qu'il contient.

    Y a t-il un moyen d'avoir les secrets dans le os.environ de django?

    Merci de votre aide.

    NLT

    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2023 à 2:56:25

      Salut.

      Dans le service Django. J'ai oublié, mais j'ai mis _FILE pour les postgresql.

      De toute façon, j'obtiens tjrs cette erreur: 

      unsupported external secret postgres_db

      J'essaye de trouvé le moyen de prendre les secrets et de les mettre dans l'environement de django.

      • Partager sur Facebook
      • Partager sur Twitter
        27 décembre 2023 à 20:56:20

        Re-Salut.

        Si je fais l'inverse.

        Comment les images, comme postgres, authelia, etc.., peuvent inclure des secrets? Es-ce dans leur build?

        Comment ont-il accès? Si c'est dans la mémoire..

        Un fois que l'image est créer et que le container est démarré, comment peuvent-ils y avoir accès?

        • Partager sur Facebook
        • Partager sur Twitter

        Docker, Django et Postgres Secrets

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown