Sicher ausliefern

AWS-Sicherheit für Entwickler:innen nutzen

Rahul Singh

Technical Product Manager

Wofür die Checkliste da ist

Zwei Karten nebeneinander über einer Deploy-Leiste in voller Breite. Die linke Karte, „setting", zeigt drei Konfigurationswerte, jeweils mit grünem Haken, mit der Beschriftung one right value. Die rechte Karte, „question", zeigt drei Fragezeichen neben gestrichelten leeren Antwortfeldern, mit der Beschriftung your answer. Pfeile führen von beiden Karten nach unten in die Deploy-Leiste.

  • Sechs Fragen, bevor du auslieferst
  • Nicht sechs Settings, die du umlegst
AWS-Sicherheit für Entwickler:innen nutzen

Sechs Fragen in Aufruf-Reihenfolge

Frag in dieser Reihenfolge

  1. Wer prüft das Token des Aufrufers?
  2. Welche Identität prüft AWS?

Der Tenant-Report-Service als vertikaler Pfad: Mandanten-User, dann API Gateway, dann die Report-Funktion. Nummernmarken eins und zwei markieren die Stellen, an denen eine Frage gilt.

AWS-Sicherheit für Entwickler:innen nutzen

Sechs Fragen in Aufruf-Reihenfolge

Frag in dieser Reihenfolge

  1. Wer prüft das Token des Aufrufers?
  2. Welche Identität prüft AWS?
  3. Was verhindert, dass ein Mandant fremde Zeilen liest?
  4. Wo liegt das Datenbankpasswort?

Der Tenant-Report-Service als vertikaler Pfad: Mandanten-User, API Gateway, Report-Funktion und DynamoDB, mit Secrets Manager seitlich angebunden. Nummernmarken eins bis vier markieren die Stellen, an denen eine Frage gilt.

AWS-Sicherheit für Entwickler:innen nutzen

Sechs Fragen in Aufruf-Reihenfolge

Frag in dieser Reihenfolge

  1. Wer prüft das Token des Aufrufers?
  2. Welche Identität prüft AWS?
  3. Was verhindert, dass ein Mandant fremde Zeilen liest?
  4. Wo liegt das Datenbankpasswort?
  5. Wer hält den Schlüssel – und wer hat ihn genutzt?
  6. Hinterlässt der Download morgen einen Nachweis?

Der Tenant-Report-Service als vertikaler Pfad: Mandanten-User, API Gateway, Report-Funktion, DynamoDB und S3-Reports, mit Secrets Manager und einem KMS-Schlüssel seitlich angebunden. Sechs Nummernmarken markieren die Stellen, an denen eine Frage gilt. Eine gestrichelte Umrandung umfasst den gesamten Service und führt zu einer gestrichelten CloudTrail-Box darunter.

AWS-Sicherheit für Entwickler:innen nutzen

Haken ist nicht gleich sicher

Drei aus diesem Service

  1. Rolle, kein Schlüssel: liest jedes Objekt

Drei nummerierte Fragmente des Report-Services. 1: Die Report-Funktion hat einen grünen Haken, und eine orange gestrichelte Umrandung reicht über alle drei Mandantenpräfixe im Bucket. 2: Ein grüner Mandantenfilter sitzt in der Funktion, während ein leerer orangefarbener Gate auf dem Anforderungspfad außerhalb liegt. 3: Der Bucket hat einen grünen Haken, und ein orange gestrichelter Pfad von einem Auditor zum von AWS verwalteten Schlüssel endet davor.

AWS-Sicherheit für Entwickler:innen nutzen

Haken ist nicht gleich sicher

Drei aus diesem Service

  1. Rolle, kein Schlüssel: liest jedes Objekt
  2. Mandantenspalte: Filter sitzt in deinem Code
  3. Verschlüsselung an: Schlüssel ist nicht teilbar

Drei nummerierte Fragmente des Report-Services. 1: Die Report-Funktion hat einen grünen Haken, und eine orange gestrichelte Umrandung reicht über alle drei Mandantenpräfixe im Bucket. 2: Ein grüner Mandantenfilter sitzt in der Funktion, während ein leerer orangefarbener Gate auf dem Anforderungspfad außerhalb liegt. 3: Der Bucket hat einen grünen Haken, und ein orange gestrichelter Pfad von einem Auditor zum von AWS verwalteten Schlüssel endet davor.

AWS-Sicherheit für Entwickler:innen nutzen

Die Lücke, die Config nicht zeigt

Ein äußerer Kasten „granted" enthält zwei sich nicht überlappende innere Kästen. Ein grüner Vollkasten „used" zeigt drei IAM-Aktionen, die die Rolle aufrief. Ein orange gestrichelter Kasten „never called" zeigt drei IAM-Aktionen, die sie nie aufrief.

  • Damals korrekt: alle Aktionen, die der Service dann aufrief
AWS-Sicherheit für Entwickler:innen nutzen

Die Lücke, die Config nicht zeigt

Ein äußerer Kasten „granted" enthält zwei sich nicht überlappende innere Kästen. Ein grüner Vollkasten „used" zeigt drei IAM-Aktionen, die die Rolle aufrief. Ein orange gestrichelter Kasten „never called" zeigt drei IAM-Aktionen, die sie nie aufrief.

  • Damals korrekt: alle Aktionen, die der Service dann aufrief
  • Heute zu breit: die Hälfte, die er nicht mehr aufruft
  • Die Lösung: gewähre, was 90 Tage Trail als genutzt zeigen
AWS-Sicherheit für Entwickler:innen nutzen

Schreib den Grund, nicht das Setting

Zwei Hälften einer Entscheidung

  • Der Wert, den dein Code setzt
  • Der Grund, warum du ihn setzt

Eine Konfigurationszeile, im Repository beschriftet, steht über einem leeren gestrichelten Kasten „why" mit der Beschriftung not written down. Ein Pfeil führt hinunter zu einer grünen Entscheidungskarte mit vier Feldern: chose, rejected, would change if und date.

AWS-Sicherheit für Entwickler:innen nutzen

Schreib den Grund, nicht das Setting

Zwei Hälften einer Entscheidung

  • Der Wert, den dein Code setzt
  • Der Grund, warum du ihn setzt

 

  • Dokumentiert und angenommen: eine Entscheidung
  • Undokumentiert gelassen: eine böse Überraschung

Eine Konfigurationszeile, im Repository beschriftet, steht über einem leeren gestrichelten Kasten „why" mit der Beschriftung not written down. Ein Pfeil führt hinunter zu einer grünen Entscheidungskarte mit vier Feldern: chose, rejected, would change if und date.

AWS-Sicherheit für Entwickler:innen nutzen

Gleiche Fragen, neue Caller

Drei Reihen unter zwei Überschriften, actor und caller, jede paart einen Akteur mit dem von ihm ausgelösten Caller: eine Person mit einer Browsersitzung (abgeblendet als der vertraute Fall), ein Commit mit einer Pipeline und eine Anfrage mit einem Agent. Alle drei laufen auf ein einziges blaues Gate zu, „one gate", mit drei Nummernmarken.

  • Workload-Identität: eine Identität für einen Caller, der keine Person ist
AWS-Sicherheit für Entwickler:innen nutzen

Gleiche Fragen, neue Caller

Drei Reihen unter zwei Überschriften, actor und caller, jede paart einen Akteur mit dem von ihm ausgelösten Caller: eine Person mit einer Browsersitzung (abgeblendet als der vertraute Fall), ein Commit mit einer Pipeline und eine Anfrage mit einem Agent. Alle drei laufen auf ein einziges blaues Gate zu, „one gate", mit drei Nummernmarken.

  • Workload-Identität: eine Identität für einen Caller, der keine Person ist
  • Die gleichen drei Fragen: eine Identität, die AWS prüfen kann; ein Scope, nicht breiter als der Job; ein Nachweis dessen, was er tat
  • Was sich änderte: der Caller
AWS-Sicherheit für Entwickler:innen nutzen

Wie es weitergeht

Zwei gestapelte Bereiche. Der obere, „the account", enthält vier gleich große Kästen: GuardDuty, Security Hub, AWS Config und Organizations. Unter einer gestrichelten Trennlinie zeigt der untere Bereich, „your service", die gleichen sechs Nummernmarken wie zuvor.

  • Dein Service: die sechs Fragen
  • Das darüberliegende Konto: GuardDuty, Security Hub, AWS Config, Organizations
AWS-Sicherheit für Entwickler:innen nutzen

Lass uns üben!

AWS-Sicherheit für Entwickler:innen nutzen

Preparing Video For Download...