Erweitertes Monitoring für Amazon RDS aktivieren
Amazon RDS bietet eine erweiterte Überwachungsfunktion für Datenbanken. Mit dieser Funktion kann Amazon RDS Datenbankmetriken überwachen und in Amazon CloudWatch Logs protokollieren. Um diese Funktion zu aktivieren, muss dem Amazon RDS jedoch eine Rolle zugewiesen werden, und diese wiederum erfordert, dass der Benutzer die PassRole-Berechtigung hat.
Was werden wir hier sehen?
In diesem Lernprogramm erfährst du, wie du die „IAM Passrole“-Berechtigung nutzen kannst, um eine erweiterte Überwachung für Amazon RDS zu aktivieren. Wir werden dies anhand eines einfachen Beispiels demonstrieren.
Was ist die Passrole-Berechtigung?
Bei der Konfiguration vieler AWS-Services muss der Benutzer/Administrator dem jeweiligen Service eine Rolle zuweisen. Der Service nimmt dann diese Rolle an, um die Aktionen durchzuführen, die in dieser Rolle erlaubt sind. In den meisten Fällen wird die Rolle nur einmal bei der Einrichtung des Service an den Service übergeben und nicht jedes Mal, wenn die Rolle vom Service übernommen wird.
Ein Nutzer muss Rechte haben, um eine Rolle an einen Dienst zu übergeben. Dies ist ein starker Sicherheitsaspekt, da nur autorisierte Benutzer eine Rolle an einen Dienst weitergeben dürfen. Außerdem können die Administratoren kontrollieren, welche Art von Rolle ein Benutzer an den Dienst weitergeben kann.
Voraussetzungen für die Weitergabe einer Rolle an einen Dienst
Ein IAM-Benutzer kann eine Rolle an einen AWS-Service weitergeben, wenn er die folgenden drei Voraussetzungen erfüllt:
- Erstens eine Richtlinie für die zu erstellende Rolle, die die Berechtigungsgrenze oder den Geltungsbereich der IAM-Rolle festlegt.
- Als Nächstes eine mit dieser Rolle verbundene Vertrauensrichtlinie, die es dem AWS-Service (in unserem Fall RDS) grundsätzlich erlaubt, die Rolle zu übernehmen und die mit der Rolle verbundenen Berechtigungen zu nutzen.
- Schließlich wird dem IAM-Benutzer eine IAM-Berechtigungsrichtlinie zugewiesen, die es ihm erlaubt, die Rollen weiterzugeben, zu denen er berechtigt ist.
Erstellen der Rolle
In diesem Abschnitt erstellen wir eine Rolle mit dem Namen „RDS-Monitoring-Rolle“ und fügen ihr eine von AWS verwaltete Richtlinie „AmazonRDSEnhancedMonitoringRole“ hinzu.
Schritt 1. Gehe mit dem Administrator- oder Root-Konto zum IAM-Dashboard und wähle „Rollen“ unter der Option Zugriffsverwaltung. Klicke auf die Schaltfläche „Rolle erstellen“.
Schritt 2. Im Abschnitt „Vertrauenswürdige Entität auswählen“ siehst du den „Typ der vertrauenswürdigen Entität“, wähle hier die Option „AWS Service“. Suche nun unter „Anwendungsfälle für andere AWS-Services“ nach „RDS“ und wähle die Option „RDS – Enhanced Monitoring“.
Schritt 3. Im nächsten Abschnitt „Berechtigungen hinzufügen“ fügst du die Richtlinie „AmazonRDSEnhancedMonitoringRole“ hinzu und klickst dann auf „Weiter“:
Schritt 4. Gib hier einen Namen für die Rolle ein: „RDS-Monitoring-Role“ und eine optionale Beschreibung für sie. Beachte, dass eine Vertrauensrichtlinie automatisch mit dieser Rolle verknüpft wird:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "monitoring.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Schritt 5. Klicke abschließend auf die Schaltfläche „Rolle erstellen“, um die oben genannte Rolle zu erstellen:
Hinzufügen einer IAM-Richtlinie für den IAM-Benutzer
Bis jetzt haben wir eine Rolle erstellt und ihr eine Richtlinie zugewiesen und eine vertrauenswürdige Richtlinie erstellt. Damit haben wir zwei unserer Voraussetzungen erfüllt. Nun gehen wir zur dritten Voraussetzung über und erstellen eine Richtlinie für den IAM-Benutzer selbst. In dieser Richtlinie haben wir dem Benutzer die Berechtigung für den vollen EC2- und RDS-Zugriff gegeben und auch die Erlaubnis, die oben genannte „RDS-Monitoring-Rolle“ mit unserer RDS-Instanz zu verknüpfen. Du kannst die IAM-Berechtigungsstufe für EC2 und RDS selbst kontrollieren, uns geht es nur darum, die PassRole-Berechtigung zu demonstrieren:
Schritt 1. Gehe wieder mit dem Administrator- oder Root-Konto zum IAM-Dashboard, wähle „Richtlinien“ und klicke auf die Schaltfläche „Richtlinie erstellen“.
Schritt 2. Im Assistenten zum Erstellen von Richtlinien klickst du auf die Registerkarte JSON und fügst einfach den folgenden JSON-Code für diese Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account_number:role/RDS-Monitoring-Role" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "rds:*", "logs:Describe*", "logs:List*", "logs:StartQuery", "ec2:*", "iam:ListRoles", "logs:StopQuery", "logs:TestMetricFilter", "logs:FilterLogEvents", "logs:Get*", "cloudwatch:GetMetricData" ], "Resource": "*" } ] }
Ersetze im obigen Code ‚IAM_User_ID‚ durch die Kontonummer oder ID des IAM-Benutzers und ‚RDS-Monitoring-Role‚ durch den Namen der Rolle in deinem Fall. Klicke auf ‚Weiter:Tags‘.
Schritt 3. Gib alle optionalen „Tags“ an, die du verwenden möchtest, und klicke auf „Weiter:Überprüfen“:
Schritt 4. Gib einen Namen für die Richtlinie ein (in unserem Fall „RDS-Monitoring-User-Policy“) und klicke auf die Schaltfläche „Richtlinie erstellen“, um die Richtlinie zu erstellen:
Schritt 5. Verknüpfe die oben erstellte Richtlinie mit dem IAM-Benutzer:
Datenbank ohne Rolle
Unten sehen wir das Szenario der Datenbankkonfiguration ohne die oben erstellte Rolle (RDS-Monitoring-Rolle). Hier sehen wir, dass wir einen Fehler von cloudwatch:GetMetricData erhalten.
Anhängen der Rolle an die Datenbank
Jetzt verbinden wir die „RDS-Monitoring-Rolle“ mit der Datenbank und prüfen, ob der oben genannte CloudWatch-Fehler verschwindet oder nicht. Eine Rolle kann mit einer RDS-Instanz entweder bei der Erstellung oder nach der Erstellung verknüpft werden. Falls du die Datenbank bereits erstellt hast, musst du die DB-Instanz ändern. In jedem Fall gehst du zur RDS-Konsole und öffnest den Block „Zusätzliche Konfiguration“ unter den Einstellungen der Zieldatenbank. Suche nach dem Abschnitt „Überwachung“ und aktiviere das Kontrollkästchen „Erweiterte Überwachung aktivieren“. Wähle unter „Überwachungsrolle“ deine Rolle aus dem Dropdown-Menü und klicke auf „Weiter“:
Im nächsten Fenster wählst du die Aktion, mit der die Änderungen übernommen werden sollen, und klickst auf „DB-Instanz ändern“:
Wenn du jetzt die Details der Datenbankkonfiguration siehst, sollte der CloudWatch-Fehler verschwunden sein:
Fazit
In dieser Anleitung haben wir gelernt, wie man die PassRole-Berechtigung verwendet, um die erweiterte Überwachungsfunktion für RDS zu aktivieren. PassRole ist eine großartige Funktion, um einem IAM-Benutzer die geringsten Privilegien für den Zugriff auf andere AWS-Services zu gewähren, für die er nicht berechtigt ist.