Verschieben Sie hartcodierte Geheimnisse nach 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.

Verschieben Sie hartcodierte Geheimnisse nach AWS Secrets Manager

Wenn Sie Klartext-Secrets in Ihrem Code haben, empfehlen wir Ihnen, sie zu drehen und in Secrets Manager zu speichern. Das Verschieben des Secrets in Secrets Manager löst das Problem, dass das Secret für jeden sichtbar ist, der den Code sieht, da Ihr Code in Zukunft das Secret direkt aus Secrets Manager abruft. Durch Drehen des Secret wird das aktuelle fest codierte Secret widerrufen, sodass es nicht mehr gültig ist.

Informationen zu Secrets für Datenbankanmeldeinformationen finden Sie unter Verschieben Sie hartcodierte Datenbankanmeldedaten nach AWS Secrets Manager.

Bevor Sie beginnen, müssen Sie ermitteln, wer Zugriff auf das Secret benötigt. Wir empfehlen, zwei IAM Rollen zu verwenden, um den Zugriff auf Ihr Geheimnis zu verwalten:

  • Eine Rolle, die die Secrets in der Organisation verwaltet. Weitere Informationen finden Sie unter Administratorberechtigungen für den Secrets Manager. Mit dieser Rolle erstellen und drehen Sie das Secret.

  • Eine Rolle, die das Geheimnis zur Laufzeit verwenden kann. In diesem Tutorial verwenden Sie beispielsweise RoleToRetrieveSecretAtRuntime. Ihr Code übernimmt diese Rolle beim Abrufen des Geheimnisses. In diesem Tutorial erteilen Sie der Rolle nur die Berechtigung, einen Secret-Wert abzurufen, und Sie erteilen die Berechtigung mithilfe der Ressourcenrichtlinie des Secret. Weitere Alternativen finden Sie unter Nächste Schritte.

Schritt 1: Das Secret erstellen

Der erste Schritt besteht darin, das vorhandene fest codierte Secret in Secrets Manager zu kopieren. Wenn sich das Geheimnis auf eine AWS Ressource bezieht, speichern Sie es in derselben Region wie die Ressource. Andernfalls speichern Sie es in der Region, die für Ihren Anwendungsfall die niedrigste Latenz aufweist.

Ein Secret erstellen (Konsole)
  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. Als Secret-Typ wählen Sie Anderer Secret-Typ aus.

    2. Geben Sie Ihr Secret als Schlüssel/Wert-Paare oder in Klartext an. Hier einige Beispiele:

      API key

      Geben Sie als Schlüssel/Wert-Paare ein:

      ClientID : my_client_id

      ClientSecret : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

      OAuth token

      Geben Sie als Klartext ein:

      AKIAI44QH8DHBEXAMPLE

      Digital certificate

      Geben Sie als Klartext ein:

      -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
      Private key

      Geben Sie als Klartext ein:

      –--- BEGIN PRIVATE KEY ---- EXAMPLE ––-- END PRIVATE KEY –---
    3. Wählen Sie für Encryption key (Verschlüsselungsschlüssel) aws/secretsmanager aus, um den Von AWS verwalteter Schlüssel für Secrets Manager zu benutzen. Für die Verwendung dieses Schlüssels fallen keine Kosten an. Sie können auch Ihren eigenen vom Kunden verwalteten Schlüssel verwenden, z. B. um von einem anderen AWS-Konto aus auf das Secret zuzugreifen. Informationen zu den Kosten der Verwendung eines vom Kunden verwalteten Schlüssels finden Sie unter Preisgestaltung.

    4. Wählen Sie Weiter.

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

    1. Geben Sie einen beschreibenden Secret-Namen und eine Beschreibung ein.

    2. Unter Resource permissions (Ressourcenberechtigungen) wählen Sie Edit permissions (Berechtigungen bearbeiten) aus. Fügen Sie die folgende Richtlinie ein, die Folgendes ermöglicht RoleToRetrieveSecretAtRuntime um das Geheimnis abzurufen, und wählen Sie dann Speichern.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/RoleToRetrieveSecretAtRuntime" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
    3. Wählen Sie unten auf der Seite Next (Weiter) aus.

  5. Lassen Sie auf der Seite Configure rotation (Drehung konfigurieren) die Drehung deaktiviert. Wählen Sie Weiter.

  6. Prüfen Sie auf der Seite Review (Prüfen) die Secret-Details und wählen Sie Store (Speichern).

Schritt 2: Ihren Code aktualisieren

Ihr Code muss die IAM Rolle übernehmen RoleToRetrieveSecretAtRuntime um das Geheimnis abrufen zu können. Weitere Informationen finden Sie unter Zu einer IAM Rolle wechseln (AWS API).

Als Nächstes aktualisieren Sie Ihren Code, um das Secret aus Secrets Manager mit dem von Secrets Manager bereitgestellten Beispielcode abzurufen.

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

  2. Wählen Sie auf der Seite Secrets Ihr Secret aus.

  3. Scrollen Sie nach unten zu Sample code (Beispielcode). Wählen Sie Ihre Programmiersprache aus und kopieren Sie dann das Code-Snippet.

Entfernen Sie in Ihrer Anwendung das fest codierte Secret und fügen Sie das Code-Snippet ein. Abhängig von Ihrer Codesprache müssen Sie im Snippet möglicherweise einen Aufruf der Funktion oder Methode hinzufügen.

Testen Sie, ob Ihre Anwendung mit dem Secret anstelle des fest codierten Secret wie erwartet funktioniert.

Schritt 3: Das Secret aktualisieren

Der letzte Schritt besteht darin, das fest codierte Secret zu widerrufen und zu aktualisieren. Beziehen Sie sich auf die Quelle des Secret, um Anweisungen zum Widerrufen und Aktualisieren des Secret zu finden. Sie müssen beispielsweise möglicherweise das aktuelle Secret deaktivieren und ein neues Secret generieren.

So aktualisieren Sie das Secret mit dem neuen Wert
  1. Öffnen Sie die Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie Secrets und dann das gewünschte Secret aus.

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

  4. Aktualisieren Sie das Secret und wählen Sie dann Save (Speichern) aus.

Testen Sie anschließend, ob Ihre Anwendung mit dem neuen Secret wie erwartet funktioniert.

Nächste Schritte

Nachdem Sie ein fest codiertes Secret aus Ihrem Code entfernt haben, sind hier einige Vorschläge für die nächsten Schritte:

  • Um hartcodierte Geheimnisse in Ihren Java- und Python-Anwendungen zu finden, empfehlen wir Amazon CodeGuru Reviewer.

  • Sie können die Leistung verbessern und Kosten senken, indem Sie Secrets zwischenspeichern. Weitere Informationen finden Sie unter Hol dir Geheimnisse von AWS Secrets Manager.

  • Für Secrets, auf die Sie aus mehreren Regionen zugreifen, sollten Sie erwägen, Ihr Secret zu replizieren, um die Latenz zu verbessern. Weitere Informationen finden Sie unter Replizieren Sie AWS Secrets Manager Geheimnisse in allen Regionen.

  • In diesem Tutorial haben Sie RoleToRetrieveSecretAtRuntime nur die Erlaubnis, den geheimen Wert abzurufen. Unter Ressourcenbasierte Richtlinien erfahren Sie, wie Sie der Rolle mehr Berechtigungen erteilen, z. B. zum Abrufen von Metadaten über das Secret oder Anzeigen einer Liste von Secrets.

  • In diesem Tutorial haben Sie die Erlaubnis erteilt RoleToRetrieveSecretAtRuntime indem Sie die Ressourcenrichtlinie des Geheimnisses verwenden. Weitere Möglichkeiten zum Erteilen von Berechtigungen finden Sie unter Identitätsbasierte Richtlinien.