IAM sicher verwenden

Einführung

Auf dieser Seite werden Best Practices zur Sicherheit empfohlen, die Sie berücksichtigen sollten, wenn Sie IAM nutzen.

Diese Seite richtet sich an Nutzer, die mit IAM vertraut sind. Wenn Sie IAM erst seit Kurzem nutzen, erfahren Sie in dieser Anleitung nicht, wie Sie IAM verwenden. Neue Nutzer sollten stattdessen mit der IAM-Kurzanleitung beginnen.

Geringste Berechtigung

❑  
Einfache Rollen umfassen Tausende von Berechtigungen für alle Google Cloud-Dienste. In Produktionsumgebungen sollten Sie einfache Rollen nur zuweisen, wenn es keine Alternative gibt. Gewähren Sie stattdessen vordefinierte Rollen mit den größten Einschränkungen oder benutzerdefinierte Rollen, die Ihren Anforderungen entsprechen.

In den folgenden Fällen kann es sinnvoll sein, einfache Rollen zuzuweisen:

  • Wenn der Google Cloud-Dienst keine vordefinierte Rolle bereitstellt. Die Tabelle mit den vordefinierten Rollen enthält eine Liste der verfügbaren vordefinierten Rollen.
  • Wenn Sie umfassendere Berechtigungen für ein Projekt gewähren möchten. Dies ist oft der Fall, wenn Sie Berechtigungen in Entwicklungs- oder Testumgebungen gewähren.
  • Wenn Sie in einem kleinen Team arbeiten, in dem für die Teammitglieder keine umfassenden Berechtigungen erforderlich sind.
❑  
Betrachten Sie jede Komponente Ihrer Anwendung als separate Vertrauensgrenze. Wenn Sie mehrere Dienste haben, für die unterschiedliche Berechtigungen erforderlich sind, erstellen Sie ein separates Dienstkonto für jeden Dienst und gewähren Sie dann jedem Dienstkonto nur die erforderlichen Berechtigungen.
❑  
Denken Sie daran, dass die Richtlinien für untergeordnete Ressourcen von den Richtlinien für ihre übergeordneten Ressourcen übernommen werden. Wenn beispielsweise die Richtlinie für ein Projekt einem Nutzer die Berechtigung erteilt, Compute Engine-VM-Instanzen zu verwalten, kann der Nutzer jede Compute Engine-VM in diesem Projekt unabhängig von der Richtlinie verwalten, die Sie für jede VM festgelegt haben.
❑  
Weisen Sie Rollen im kleinstmöglichen Bereich zu. Wenn ein Nutzer beispielsweise nur Zugriff zum Veröffentlichen von Pub/Sub-Themen benötigt, weisen Sie ihm die Rolle Publisher für dieses Thema zu.
❑  
Geben Sie an, welche Mitglieder als Dienstkonten fungieren können. Nutzer, denen die Rolle "Dienstkontonutzer" für ein Dienstkonto zugewiesen ist, können auf alle Ressourcen zugreifen, auf die das Konto Zugriff hat. Gehen Sie deshalb mit Bedacht vor, wenn Sie einem Nutzer die Rolle "Dienstkontonutzer" zuweisen.
❑  
Geben Sie an, wer in Ihrem Projekt Dienstkonten erstellen und verwalten darf.
❑  
Durch Zuweisen der vordefinierten Rollen Projekt-IAM-Administrator und Ordner-IAM-Administrator wird der Zugriff auf Änderungen an IAM-Richtlinien ermöglicht, ohne zu direktem Lese-, Schreib- und Administratorzugriff auf alle Ressourcen zu berechtigen.

Die Zuweisung der Inhaberrolle (roles/owner) zu einem Mitglied ermöglicht es ihm, auf fast alle Ressourcen zuzugreifen und sie zu ändern. Dazu gehört auch, dass das Mitglied IAM-Richtlinien ändern kann. Dieses Ausmaß an Privilegien ist potenziell riskant. Weisen Sie die Inhaberrolle (roles/owner) nur dann zu, wenn ein (fast) vollständiger Zugriff erforderlich ist.

Dienstkonten und Dienstkontoschlüssel

❑  
Rotieren Sie die Dienstkontoschlüssel mit der IAM Service Account API. Zum Rotieren eines Schlüssels gehen Sie so vor: Erstellen Sie zuerst einen neuen Schlüssel, wechseln Sie dann die Anwendungen, um den neuen Schlüssel anzuwenden, und löschen Sie anschließend den alten Schlüssel. Verwenden Sie die Methode serviceAccount.keys.create() und die Methode serviceAccount.keys.delete() zusammen, um die Rotation zu automatisieren.
❑  
Implementieren Sie Prozesse zum Verwalten von Dienstkontoschlüsseln, die von Nutzern verwaltet werden.
❑  
Verwechseln Sie die Verschlüsselungsschlüssel nicht mit den Dienstkontoschlüsseln. Verschlüsselungsschlüssel werden in der Regel zum Verschlüsseln von Daten verwendet und Dienstkontoschlüssel werden für den sicheren Zugriff auf Google Cloud APIs verwendet.
❑  
Löschen Sie keine Dienstkonten, die von aktiven Instanzen verwendet werden. Dies kann dazu führen, dass alle oder Teile Ihrer Anwendung nicht funktionieren, wenn Sie nicht zuerst dazu übergegangen sind, ein alternatives Dienstkonto zu verwenden.
❑  
Verwenden Sie den Anzeigenamen eines Dienstkontos, um zu verfolgen, wofür sie verwendet werden und welche Berechtigungen sie haben sollten.
❑  
Nehmen Sie die Dienstkontoschlüssel nicht in den Quellcode auf und belassen Sie sie nicht im Downloadverzeichnis.

Audit

❑  
Mit Logs aus Cloud-Audit-Logs können Sie regelmäßig Änderungen an Ihrer IAM-Richtlinie prüfen.
❑  
Exportieren Sie Audit-Logs in den Cloud-Speicher, um Ihre Logs über einen längeren Zeitraum zu speichern.
❑  
Prüfen Sie, wer die Möglichkeit hat, Ihre IAM-Richtlinien in Ihren Projekten zu ändern.
❑  
Schränken Sie den Zugriff auf Logs mit Logging-Rollen ein.
❑  
Wenden Sie auf die Google Cloud-Ressource dieselben Zugriffsrichtlinien an, die Sie auch zum Exportieren von Logs aus der Loganzeige verwenden.
❑  
Prüfen Sie mit Logs aus Cloud-Audit-Logs regelmäßig den Zugriff auf Dienstkontoschlüssel.

Richtlinienverwaltung

❑  
Definieren Sie IAM-Richtlinien auf Organisationsebene so, dass Zugriff auf alle Projekte in Ihrer Organisation gewährt wird.
❑  
Weisen Sie Rollen nach Möglichkeit einer Google-Gruppe (in Google Groups) anstelle von einzelnen Nutzern zu. Es ist einfacher, Mitglieder zu einer Google-Gruppe hinzuzufügen und aus dieser zu entfernen, als IAM-Richtlinien so zu ändern, dass Nutzer hinzugefügt oder entfernt werden.
❑  
Wenn Sie mehrere Rollen zuweisen müssen, um eine bestimmte Aufgabe zu ermöglichen, erstellen Sie eine Google-Gruppe, weisen dieser Gruppe die Rollen zu und fügen ihr anschließend Nutzer hinzu.