Kann das Speichern einer Api-Key in .EnV-Datei für eine Container-Python-App als sicher angesehen werden?Python

Python-Programme
Guest
 Kann das Speichern einer Api-Key in .EnV-Datei für eine Container-Python-App als sicher angesehen werden?

Post by Guest »

Der Titel ist die Frage: Kann das Speichern einer Api-Key in .Env-Datei für eine Container-Python-App als sicher angesehen werden? Unten. Alles ist hobby und zielt darauf ab, Branchenpraktiken zu lernen. Daher habe ich die Web-App in der Produktionsumgebung im Gegensatz zur Entwicklung betrachtet. Speichern im selben Verzeichnis wie .env . (Mock-up-Beispiel kann unvollständig sein): < /p>

Code: Select all

import os
from dotenv import load_dotenv

load_dotenv()
api_key = os.getenv('Super_Private_API_key')

class MyClass:
def __init__(self, foo: str):
self.api_answer = _api_call(foo, api_key)

def _api_call(foo, key) -> str:
# Make API call with foo and api_key and convert to string
return string
< /code>
Und die App sieht aus wie: < /p>
import streamlit as st

import MyClass as mc

string = st.text_input(placeholder="put 'foo' or 'bar' here", label="input")
my_variable = mc.MyClass(string)

# Return the API answer
st.write(my_variable.api_answer)
< /code>
Das Setup wäre ein Ubuntu-Server mit einem Docker-Container. Der Behälter würde auch Ubuntu oder Alpine (für Lightweigth), Nginx und Python 3.12 enthalten. Ich würde das richtige Netzwerk für die Außenwelt einrichten. BR/> [*] Wenn der API-Key, der in einem .Env 
-file platziert ist und in demselben Verzeichnis wie MyClass.py platziert wird, in einem virtuellen (benötigten in Container benötigt?) Python platziert Umgebung, um meine App auszuführen, kann dies als sicher angesehen werden? Z.B. ~/myapp/app.py und ~/my_scripts/myclass.py und machen Sie die Klasse global zugänglich. /Code> -File im Basislinux und lassen Sie ihn den Container nur lesen? Obwohl das gleichem Unterschied für mich anfühlt. >
Mit dem Ziel, kleine Apps zu erstellen, scheint es klüger, Nginx auf der Basis-Linux (Ubuntu) zu installieren und Alpinbehälter nur Python-Apps auszuführen und sie mit Nginx außerhalb des Behälters zu verbinden. Verbessert/schwächt dieser Ansatz die Sicherheit oder ist es gleicher Unterschied , wenn man bedenkt, dass ein isolierter Ansatz Securer fühlt.

Ich bin mir bewusst, dass es geheime Manager wie Vault oder Secret Manager gibt, aber für mich ist es einen Schritt nach dem anderen. Ich versuche auch, mich in die Mechanik und Sicherheiten /Schwachstellen der von mir verwendeten Tools einzutauchen. Do und Was ist nicht zu tun mit Tools, die Sie verwenden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post