Richten Sie eine wechselnde Benutzerrotation ein für AWS Secrets Manager - AWS Secrets Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Richten Sie eine wechselnde Benutzerrotation ein für AWS Secrets Manager

In diesem Lernprogramm erfahren Sie, wie Sie die Drehung von wechselnden Benutzern für ein Geheimnis einrichten, das Datenbank-Anmeldeinformationen enthält. Drehung wechselnder Benutzer ist eine Drehungsstrategie, bei der Secrets Manager den Benutzer klont und dann wechselt, welche Anmeldeinformationen des Benutzers aktualisiert werden. Diese Strategie ist eine gute Wahl, wenn Sie eine hohe Verfügbarkeit für Ihr Secret benötigen, da einer der alternierenden Benutzer über aktuelle Anmeldeinformationen für die Datenbank verfügt, während der andere aktualisiert wird. Weitere Informationen finden Sie unter Rotationsstrategie: wechselnde Benutzer.

Um die Drehung alternativer Benutzer einzurichten, benötigen Sie zwei Geheimnisse:

  • Ein Geheimnis mit den Anmeldeinformationen, die Sie drehen möchten.

  • Ein zweites Secret mit Administratoranmeldeinformationen.

    Dieser Benutzer ist berechtigt, den ersten Benutzer zu klonen und das Passwort des ersten Benutzers zu ändern. In diesem Tutorial lassen Sie Amazon dieses Geheimnis für einen Admin-Benutzer RDS erstellen. Amazon verwaltet RDS auch die Admin-Passwortrotation. Weitere Informationen finden Sie unter Verwaltete Rotation von AWS Secrets Manager Geheimnissen.

Im ersten Teil dieses Tutorials geht es um das Einrichten einer realistischen Umgebung. Um Ihnen zu zeigen, wie die Rotation funktioniert, wird in diesem Tutorial eine Amazon RDS SQL My-Beispieldatenbank verwendet. Aus Sicherheitsgründen befindet sich die Datenbank in einerVPC, die den eingehenden Internetzugang einschränkt. Um von Ihrem lokalen Computer aus über das Internet eine Verbindung zur Datenbank herzustellen, verwenden Sie einen Bastion-Host, einen Server im SystemVPC, der eine Verbindung zur Datenbank herstellen kann, aber auch SSH Verbindungen aus dem Internet ermöglicht. Der Bastion-Host in diesem Tutorial ist eine EC2 Amazon-Instance, und die Sicherheitsgruppen für die Instance verhindern andere Arten von Verbindungen.

Nachdem Sie das Tutorial abgeschlossen haben, empfehlen wir, dass Sie die Ressourcen aus dem Tutorial bereinigen. Verwenden Sie sie nicht in einer Produktionsumgebung.

Die Secrets Manager Manager-Rotation verwendet eine AWS Lambda Funktion zur Aktualisierung des Secrets und der Datenbank. Hinweise zu den Kosten der Verwendung einer Lambda-Funktion finden Sie unter Preisgestaltung.

Berechtigungen

Um die Voraussetzungen für das Tutorial erfüllen zu können, benötigen Sie Administratorrechte für AWS-Konto. In einer Produktionsumgebung ist es eine bewährte Methode, für jeden der Schritte unterschiedliche Rollen zu verwenden. Beispielsweise würde eine Rolle mit Datenbankadministratorberechtigungen die RDS Amazon-Datenbank erstellen, und eine Rolle mit Netzwerkadministratorberechtigungen würde die VPC Sicherheitsgruppen einrichten. Für die Tutorial-Schritte empfehlen wir Ihnen, weiterhin dieselbe Identität zu verwenden.

Informationen zum Einrichten von Berechtigungen in einer Produktionsumgebung finden Sie unter Authentifizierung und Zugriffskontrolle für AWS Secrets Manager.

Voraussetzungen

Voraussetzung A: Amazon VPC

In diesem Schritt erstellen Sie eineVPC, in der Sie eine RDS Amazon-Datenbank und eine EC2 Amazon-Instance starten können. In einem späteren Schritt verwenden Sie Ihren Computer, um über das Internet eine Verbindung zur Bastion und dann zur Datenbank herzustellen. Sie müssen also den VPC Datenverkehr von zulassen. Zu diesem Zweck VPC fügt Amazon ein Internet-Gateway an das an VPC und fügt der Routentabelle eine Route hinzu, sodass Datenverkehr, der für außerhalb von bestimmt VPC ist, an das Internet-Gateway gesendet wird.

Innerhalb von erstellen Sie einen Secrets Manager Manager-Endpunkt und einen RDS Amazon-Endpunkt. VPC Wenn Sie in einem späteren Schritt die automatische Rotation einrichten, erstellt Secrets Manager eine Lambda-Rotationsfunktion innerhalb des, VPC sodass es auf die Datenbank zugreifen kann. Die Lambda-Rotationsfunktion ruft auch Secrets Manager auf, um das Geheimnis zu aktualisieren, und sie ruft Amazon RDS auf, um die Datenbankverbindungsinformationen abzurufen. Durch die Erstellung von Endpunkten innerhalb von stellen Sie sicherVPC, dass Aufrufe von der Lambda-Funktion an Secrets Manager und Amazon RDS nicht verlassen AWS Infrastruktur. Stattdessen werden sie an die Endpunkte innerhalb von weitergeleitet. VPC

Um eine zu erstellen VPC
  1. Öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie Erstellen VPC.

  3. Wählen Sie auf der VPC Seite Erstellen eine Auswahl VPCund mehr.

  4. Geben Sie unter Name tag auto-generation (Automatische Generierung des Nametags) unter Auto-generate (Automatisch generieren) SecretsManagerTutorial ein.

  5. Wählen Sie für DNSOptionen Enable DNS hostnames sowohl als auchEnable DNS resolution.

  6. Wählen Sie „Erstellen VPC“.

Um einen Secrets Manager-Endpunkt in der VPC
  1. Wählen Sie in der VPC Amazon-Konsole unter Endpoints die Option Create Endpoint aus.

  2. Geben Sie unter Endpoint settings (Endpunkt-Einstellungen) als Name (Name) SecretsManagerTutorialEndpoint ein.

  3. Geben Sie unter Dienste ein, secretsmanager um die Liste zu filtern, und wählen Sie dann den Secrets Manager Manager-Endpunkt in Ihrem AWS-Region. Wählen Sie beispielsweise im Osten der USA (Nord-Virginia)com.amazonaws.us-east-1.secretsmanager.

  4. Für VPC, wählen Sievpc**** (SecretsManagerTutorial).

  5. Wählen Sie für Subnets (Subnetze) alle Availability Zones aus und wählen Sie dann für jede einzelne eine einzuschließende Subnetz-ID aus.

  6. Wählen Sie für IP address type (Typ der IP-Adresse) die Option IPv4 aus.

  7. Wählen Sie unter Security groups (Sicherheitsgruppen) die Standard-Sicherheitsgruppe aus.

  8. Wählen Sie für Policy (Richtlinie) Full access aus.

  9. Wählen Sie Endpunkt erstellen aus.

Um einen RDS Amazon-Endpunkt in der VPC
  1. Wählen Sie in der VPC Amazon-Konsole unter Endpoints die Option Create Endpoint aus.

  2. Geben Sie unter Endpoint settings (Endpunkt-Einstellungen) als Name (Name) RDSTutorialEndpoint ein.

  3. Geben Sie unter Services ein, rds um die Liste zu filtern, und wählen Sie dann den RDS Amazon-Endpunkt in Ihrem AWS-Region. Wählen Sie beispielsweise im Osten der USA (Nord-Virginia)com.amazonaws.us-east-1.rds.

  4. Für VPC, wählen Sievpc**** (SecretsManagerTutorial).

  5. Wählen Sie für Subnets (Subnetze) alle Availability Zones aus und wählen Sie dann für jede einzelne eine einzuschließende Subnetz-ID aus.

  6. Wählen Sie für IP address type (Typ der IP-Adresse) die Option IPv4 aus.

  7. Wählen Sie unter Security groups (Sicherheitsgruppen) die Standard-Sicherheitsgruppe aus.

  8. Wählen Sie für Policy (Richtlinie) Full access aus.

  9. Wählen Sie Endpunkt erstellen aus.

Voraussetzung B: Amazon-Instanz EC2

Die RDS Amazon-Datenbank, die Sie in einem späteren Schritt erstellenVPC, befindet sich in der. Um darauf zugreifen zu können, benötigen Sie also einen Bastion-Host. Der Bastion-Host befindet sich ebenfalls in derVPC, aber in einem späteren Schritt konfigurieren Sie eine Sicherheitsgruppe, mit der Ihr lokaler Computer eine Verbindung zum Bastion-Host herstellen kann. SSH

Um eine EC2 Instanz für einen Bastion-Host zu erstellen
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Instances und dann Launch instances (Instances launchen) aus.

  3. Geben Sie unter Name and tags (Name und Tags) als Name den Namen SecretsManagerTutorialInstance ein.

  4. Behalten Sie unter Application and OS Images (Anwendungs- und Betriebssystemabbilder) die Standardeinstellung Amazon Linux 2 AMI (HMV) Kernel 5.10 bei.

  5. Behalten Sie unter Instance type (Typ der Instance) die Standardeinstellung t2.micro bei.

  6. Wählen Sie unter Key pair (Schlüsselpaar) die Option Create key pair (Schlüsselpaar erstellen) aus.

    Geben Sie im Dialogfeld Create Key Pair (Schlüsselpaar erstellen) im Feld Key pair name (Schlüsselpaarname) als Namen SecretsManagerTutorialKeyPair ein und klicken Sie auf Create key pair (Schlüsselpaar erstellen).

    Das Schlüsselpaar wird automatisch heruntergeladen.

  7. Wählen Sie unter Network settings (Netzwerkeinstellungen) die Option Edit (Bearbeiten) und gehen Sie wie folgt vor:

    1. Für VPC, wählen Sievpc-**** SecretsManagerTutorial.

    2. Wählen Sie für Auto-assign public IP (Öffentliche IP automatisch zuweisen) Enable aus.

    3. Wählen Sie bei Firewall (Firewall) Select existing security group (Vorhandene Sicherheitsgruppe auswählen) aus.

    4. Wählen Sie bei Common security groups (Allgemeine Sicherheitsgruppen) default aus.

  8. Wählen Sie Launch Instance (Instance starten) aus.

Voraussetzung C: RDS Amazon-Datenbank und ein Secrets Manager Manager-Geheimnis für die Administratoranmeldedaten

In diesem Schritt erstellen Sie eine Amazon RDS SQL My-Datenbank und konfigurieren sie so, dass Amazon ein Geheimnis RDS erstellt, das die Administratoranmeldedaten enthält. Dann verwaltet Amazon RDS automatisch die Rotation des Administratorgeheimnisses für Sie. Weitere Informationen finden Sie unter Verwaltete Rotation.

Im Rahmen der Erstellung Ihrer Datenbank geben Sie den Bastion-Host an, den Sie im vorherigen Schritt erstellt haben. Dann RDS richtet Amazon Sicherheitsgruppen ein, sodass die Datenbank und die Instance aufeinander zugreifen können. Sie fügen der Sicherheitsgruppe, die an die Instance angehängt ist, eine Regel hinzu, damit auch Ihr lokaler Computer eine Verbindung zu ihr herstellen kann.

Um eine RDS Amazon-Datenbank mit einem Secrets Manager Manager-Geheimnis zu erstellen, das die Administratoranmeldedaten enthält
  1. Wählen Sie in der RDS Amazon-Konsole Create database aus.

  2. Wählen Sie im Abschnitt Engine options (Engine-Optionen) bei Engine type (Engine-Typ) die Option MySQL aus.

  3. Wählen Sie im Abschnitt Templates (Vorlagen) die Option Free tier aus.

  4. Gehen Sie im Abschnitt Settings (Einstellungen) wie folgt vor:

    1. Geben Sie als DB instance identifier (DB-Instance-ID) SecretsManagerTutorial ein.

    2. Wählen Sie unter Einstellungen für Anmeldeinformationen die Option Master-Anmeldeinformationen verwalten in AWS Secrets Manager.

  5. Wählen Sie im Abschnitt Konnektivität für Computerressource die Option Mit einer EC2 Computerressource Connect und dann für EC2Instanz die OptionSecretsManagerTutorialInstance.

  6. Wählen Sie Datenbank erstellen aus.

Voraussetzung D: Erlauben Sie Ihrem lokalen Computer, eine Verbindung mit der Instanz herzustellen EC2

In diesem Schritt konfigurieren Sie die EC2 Instanz, die Sie in Voraussetzung B erstellt haben, so, dass Ihr lokaler Computer eine Verbindung zu ihr herstellen kann. Dazu bearbeiten Sie die Sicherheitsgruppe, die Amazon in Voraussetzung C RDS hinzugefügt hat, sodass sie eine Regel enthält, mit der die IP-Adresse Ihres Computers eine Verbindung herstellen kann. SSH Die Regel ermöglicht es Ihrem lokalen Computer (identifiziert durch Ihre aktuelle IP-Adresse), SSH über das Internet eine Verbindung zum Bastion-Host herzustellen.

Damit Ihr lokaler Computer eine Verbindung mit der EC2 Instanz herstellen kann
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie auf der EC2 Instance SecretsManagerTutorialInstanceauf der Registerkarte Sicherheit unter Sicherheitsgruppen die Optionsg-*** (ec2-rds-X).

  3. Wählen Sie auf der Registerkarte Inbound rules (Regeln für eingehenden Datenverkehr) die Option Edit inbound rules (Regeln für eingehenden Datenverkehr bearbeiten) aus.

  4. Wählen Sie Add rule (Regel hinzufügen) und gehen Sie wie folgt vor:

    1. Wählen Sie für Type (Typ) die Option SSH aus.

    2. Wählen Sie im Feld Source type (Quelltyp) die Option My IP aus.

Schritt 1: Erstellen Sie einen RDS Amazon-Datenbankbenutzer

Zuerst benötigen Sie einen Benutzer, dessen Anmeldeinformationen im Geheimnis gespeichert werden. Um den Benutzer zu erstellen, melden Sie sich mit Administratoranmeldedaten bei der RDS Amazon-Datenbank an. Der Einfachheit halber erstellen Sie im Tutorial einen Benutzer mit voller Berechtigung für eine Datenbank. In einer Produktionsumgebung ist dies nicht typisch, und wir empfehlen, dem Prinzip der geringsten Berechtigung zu folgen.

Um eine Verbindung zur Datenbank herzustellen, verwenden Sie ein My SQL Client-Tool. In diesem Tutorial verwenden Sie My SQL Workbench, eine GUI basierte Anwendung. Informationen zur Installation von My SQL Workbench finden Sie unter My SQL Workbench herunterladen.

Um eine Verbindung zur Datenbank herzustellen, erstellen Sie eine Verbindungskonfiguration in My SQL Workbench. Für die Konfiguration benötigen Sie einige Informationen von Amazon EC2 und AmazonRDS.

Um eine Datenbankverbindung in My SQL Workbench herzustellen
  1. Wählen Sie in My SQL Workbench neben Meine SQL Verbindungen die Schaltfläche (+).

  2. Gehen Sie im Dialogfeld Setup New Connection (Neue Verbindung einrichten) wie folgt vor:

    1. Geben Sie für Connection name (Verbindungsname) SecretsManagerTutorial ein.

    2. Wählen Sie für Connection method (Verbindungsmethode) Standard TCP/IP over SSH aus.

    3. Gehen Sie auf der Registerkarte Parameters (Parameter) folgendermaßen vor:

      1. Geben Sie für SSHHostname die öffentliche IP-Adresse der EC2 Amazon-Instance ein.

        Sie finden die IP-Adresse auf der EC2 Amazon-Konsole, indem Sie die Instance auswählen SecretsManagerTutorialInstance. Kopieren Sie die IP-Adresse unter Öffentlich IPv4 DNS.

      2. Geben Sie als SSHBenutzername einec2-user.

      3. Wählen Sie für SSHKeyfile die Schlüsselpaardatei SecretsManagerTutorialKeyPair.pem aus, die Sie in der vorherigen Voraussetzung heruntergeladen haben.

      4. Geben Sie für My SQL Hostname die RDS Amazon-Endpunktadresse ein.

        Sie finden die Endpunktadresse auf der RDS Amazon-Konsole, indem Sie die Datenbank-Instance secretsmanagertutorialdb auswählen. Kopieren Sie die Adresse unter Endpoint (Endpunkt).

      5. Geben Sie für Username (Benutzername) admin ein.

    4. Wählen Sie OK aus.

So rufen Sie das Admin-Passwort ab
  1. Navigieren Sie in der RDS Amazon-Konsole zu Ihrer Datenbank.

  2. Wählen Sie auf der Registerkarte Konfiguration unter Master Credentials ARN die Option Manage in Secrets Manager aus.

    Die Secrets-Manager-Konsole wird geöffnet.

  3. Wählen Sie auf der Seite „Secret details“ (Secret-Details) die Option Retrieve secret value (Secret-Wert abrufen) aus.

  4. Das Passwort wird im Abschnitt Secret value (Secret-Wert) angezeigt.

So erstellen Sie einen Datenbankbenutzer
  1. Wählen Sie in My SQL Workbench die Verbindung SecretsManagerTutorialaus.

  2. Geben Sie das Admin-Passwort ein, das Sie aus dem Secret abgerufen haben.

  3. Geben Sie in My SQL Workbench im Abfragefenster die folgenden Befehle ein (einschließlich eines sicheren Kennworts) und wählen Sie dann Ausführen. Die Rotationsfunktion testet das aktualisierte Geheimnis mithilfe vonSELECT, sodass Sie mindestens über dieses Recht verfügen appuser müssen.

    CREATE DATABASE myDB; CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD'; GRANT SELECT ON myDB . * TO 'appuser'@'%';

    Im Fenster Output (Ausgabe) sehen Sie, dass die Befehle erfolgreich sind.

Schritt 2: Erstellen Sie ein Geheimnis für die Benutzer-Anmeldeinformationen

Als Nächstes erstellen Sie ein Geheimnis zum Speichern der Anmeldeinformationen des gerade erstellten Benutzers. Das ist das Geheimnis, das Sie drehen werden. Sie aktivieren die automatische Drehung und, um die Strategie für alternative Benutzer anzugeben, wählen Sie ein separates Superuser-Geheimnis aus, das berechtigt ist, das Passwort des ersten Benutzers zu ändern.

  1. Öffnen Sie die Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie Store a new secret (Ein neues Secret speichern).

  3. Führen Sie auf der Seite Choose secret type (Secret-Typ auswählen) die folgenden Schritte aus:

    1. Wählen Sie für Secret type die Option Credentials for Amazon RDS database aus.

    2. Geben Sie unter Anmeldeinformationen den Benutzernamen appuser und das Passwort ein, die Sie für den Datenbankbenutzer eingegeben haben, den Sie mit My SQL Workbench erstellt haben.

    3. Wählen Sie für Database (Datenbank) secretsmanagertutorialdb aus.

    4. Wählen Sie Weiter.

  4. Geben Sie auf der Seite Configure secret (Secret konfigurieren) für Secret name (Secret-Name) SecretsManagerTutorialAppuser ein und wählen Sie dann Next (Weiter) aus.

  5. Führen Sie auf der Seite Configure rotation (Drehung konfigurieren) die folgenden Schritte aus:

    1. Schalten Sie die automatische Rotation ein.

    2. Legen Sie für Rotation schedule (Drehungsplan) einen Zeitplan von Days (Tagen) fest: 2 Tage mit Duration (Dauer): 2h. Behalten Sie die Auswahl Rotate immediately (Sofort drehen) bei.

    3. Wählen Sie für Rotation function (Drehungsfunktion) Create a rotation function (Drehungsfunktion erstellen) und geben Sie dann als Funktionsnamen tutorial-alternating-users-rotation ein.

    4. Wählen Sie für Rotationsstrategie die Option Alternierende Benutzer aus und wählen Sie dann unter Administrator-Anmeldeinformations-Secret das Secret mit dem Namen rds!cluster… aus, dessen Beschreibung den Namen der Datenbank enthält, die Sie in diesem Tutorial secretsmanagertutorial erstellt haben, z. B. Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial.

    5. Wählen Sie Weiter.

  6. Wählen Sie auf der Seite Review (Überprüfung) Store (Speichern) aus.

    Secrets Manager kehrt zur Seite mit den geheimen Details zurück. Oben auf der Seite sehen Sie den Status der Drehungskonfiguration. Secrets Manager erstellt CloudFormation damit Ressourcen wie die Lambda-Rotationsfunktion und eine Ausführungsrolle, die die Lambda-Funktion ausführt. Wenn der Vorgang CloudFormation abgeschlossen ist, wechselt das Banner zu Secret, das zur Rotation geplant ist. Die erste Drehung ist abgeschlossen.

Schritt 3: Testen des gedrehten Geheimnisses

Nachdem das Secret rotiert wurde, können Sie überprüfen, ob es gültige Anmeldeinformationen enthält. Das Passwort im Geheimnis hat sich gegenüber den ursprünglichen Anmeldeinformationen geändert.

So rufen Sie das neue Passwort aus dem Geheimnis ab
  1. Öffnen Sie die Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie Secrets (Geheimnisse) und dann das Geheimnis SecretsManagerTutorialAppuser aus.

  3. Scrollen Sie auf der Seite Secret details (Geheimnis-Details) nach unten und wählen Sie Retrieve secret value (Geheimnis-Wert abrufen) aus.

  4. Kopieren Sie in der Tabelle Key/value (Schlüssel/Wert) den Secret value (Geheimnis-Wert) für password.

So testen Sie die Anmeldeinformationen
  1. Klicken Sie in My SQL Workbench mit der rechten Maustaste auf die Verbindung SecretsManagerTutorialund wählen Sie dann Verbindung bearbeiten.

  2. Geben Sie im Dialogfeld Manage Server Connections (Serververbindungen verwalten) für Username (Benutzername) appuser ein und wählen Sie dann Close (Schließen) aus.

  3. Zurück in My SQL Workbench wählen Sie die Verbindung aus. SecretsManagerTutorial

  4. Fügen Sie im Dialogfeld „SSHVerbindung öffnen“ unter Passwort das Passwort ein, das Sie aus dem Secret abgerufen haben, und wählen Sie dann OK.

    Wenn die Anmeldeinformationen gültig sind, wird My SQL Workbench mit der Entwurfsseite für die Datenbank geöffnet.

Dies zeigt, dass die Geheimnis-Drehung erfolgreich ist. Die Anmeldeinformationen im Geheimnis wurden aktualisiert und es ist ein gültiges Passwort für die Verbindung mit der Datenbank vorhanden.

Schritt 4: Bereinigen von Ressourcen

Wenn Sie eine andere Rotationsstrategie ausprobieren möchten, single user rotation (Rotation eines einzelnen Benutzers), überspringen Sie die Bereinigung von Ressourcen und gehen Sie zu Richten Sie die Einzelbenutzerrotation ein für AWS Secrets Manager.

Löschen Sie andernfalls die folgenden Ressourcen, die Sie in diesem Tutorial erstellt haben, und die erforderlichen Komponenten, um mögliche Kosten zu vermeiden und die EC2 Instanz zu entfernen, die Zugriff auf das Internet hat:

Nächste Schritte