Ein Schlüssel im Code, eine Rechnung über Nacht
Jemand im Entwicklungsteam legt den Zugangsschlüssel des Programms im Code ab und lädt ihn in ein öffentliches Repository. Der Schlüssel darf alles. Innerhalb einer Nacht startet jemand fremde Server auf Kosten der Firma.
Zwei Gewohnheiten hätten das verhindert: nur nötige Rechte vergeben und die Kosten beobachten.
Am Ende dieser Lektion
Notiz
Ich kann einem Dienst nur die nötigen Rechte geben und Kosten im Blick behalten.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Identität | wer oder was etwas anfragt | das Rechnungsprogramm |
| Recht | die Erlaubnis für eine Aktion an einer Ressource | |
| Mindestrechte | nur die Rechte, die wirklich nötig sind | |
| Geheimnis | ein Passwort oder Schlüssel, den niemand sehen darf | |
| Budget | der Betrag, den Sie ausgeben wollen | |
| Alarm | eine Meldung, wenn eine Grenze erreicht ist |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Geben Sie nur so viele Rechte wie nötig
Jeder Dienst und jede Person ist eine Identität. Ein Recht erlaubt einer Identität eine Aktion an einer Ressource, zum Beispiel „Rechnungen schreiben“.
Das Prinzip heißt Mindestrechte: Geben Sie nur, was gebraucht wird. Alles andere ist verboten. Wird ein Schlüssel gestohlen, ist der Schaden dann klein.
Ausprobieren: Rechte prüfen
# Die Rechte des Rechnungsprogramms: eine Liste erlaubter Paare.
regeln = [
{"aktion": "lesen", "ressource": "rechnungen"},
{"aktion": "schreiben", "ressource": "rechnungen"},
]
def ist_erlaubt(aktion, ressource):
for regel in regeln:
if regel["aktion"] == aktion and regel["ressource"] == ressource:
return True
return False
print("Rechnung schreiben:", ist_erlaubt("schreiben", "rechnungen"))
print("Rechnung löschen:", ist_erlaubt("loeschen", "rechnungen"))
print("Fotos lesen:", ist_erlaubt("lesen", "fotos"))
# Das Programm soll Rechnungen auch löschen dürfen? Nein. Es braucht das nicht.
# Fügen Sie stattdessen eine Regel zum Lesen von "vorlagen" hinzu und drücken Sie Run.
Beispiel: Rechte des Rechnungsprogramms
| Aktion | Ressource | Nötig? |
|---|---|---|
| Schreiben | Rechnungen | Ja |
| Lesen | Rechnungen | Ja |
| Löschen | Rechnungen | Nein |
| Alles | Alle Buckets | Nein, viel zu weit |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele geben „alles erlaubt“, weil es dann sofort läuft, und wollen es später einschränken. Später passiert selten. Fangen Sie mit wenig an und fügen Sie nur hinzu, was eine Fehlermeldung wirklich verlangt. So bleibt die Liste kurz und prüfbar.
Geheimnisse gehören nicht in den Code
Ein Schlüssel oder Passwort ist ein Geheimnis. Es steht nie im Code und nie in einem Repository, auch nicht in einem privaten. Jede Kopie ist eine Stelle, an der es abfließen kann.
Der Dienst, in dem das Programm läuft, bekommt seine Identität vom Anbieter. Dann braucht das Programm gar keinen Schlüssel im Code.
Behalten Sie die Kosten im Blick
Die Rechnung kommt am Monatsende, aber die Kosten entstehen jeden Tag. Legen Sie ein Budget fest und richten Sie einen Alarm ein, der schon bei 80 Prozent warnt. Ein Alarm warnt nur und stoppt nichts, und die Zahlen kommen oft erst nach Stunden.
Die häufigste Ursache für Überraschungen sind vergessene Dinge: ein Testserver, der noch läuft, oder ein Bucket voller alter Daten. Geben Sie Ressourcen darum einen Namen mit Zweck und Besitzer.
Fünf Gewohnheiten gegen hohe Kosten
| Gewohnheit | Wirkung |
|---|---|
| Budget und Alarm einrichten | Sie erfahren es sofort |
| Testserver abends ausschalten | Sie zahlen Rechenzeit nur für die Arbeitsstunden |
| Ressourcen mit Zweck und Besitzer benennen | Vergessenes fällt auf |
| Alte Daten in eine Archivklasse legen | Der Platz wird billiger |
| Größe prüfen, nicht raten | Kein Server ist zu groß bestellt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.