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.
Beschränken des Zugriffs auf Geheimnisse
Sicherheit hat bei oberste Priorität AWS. Im AWS Well-Architected Framework empfiehlt die bewährte Methode zum sicheren Speichern und Verwenden von Geheimnissen, dass Sie den Zugriff auf Geheimnisse einschränken, den Zugriff auf Geheimnisse protokollieren und prüfen und dass Sie den Zugriff über eine API erhalten, anstatt einer Person Zugriff zu gewähren. Dies bezieht sich auf das Generieren zufälliger Passwörter mithilfe von AWS Secrets Manager, das bereits in diesem Handbuch behandelt wurde.
In der Vergangenheit waren Anmeldeinformationen, die zur Authentifizierung bei Datenbanken, Drittanbietern APIs, Token und anderen Geheimnissen verwendet wurden, möglicherweise in Quellcode oder Umgebungsdateien eingebettet. In vielen Organisationen können Datenbankadministratoren immer noch auf alle Anmeldeinformationen von Datenbankbenutzern zugreifen. Es ist jedoch sicherer, wenn sie dies nicht tun. Wir empfehlen Ihnen:
-
Beschränken Sie den Zugriff auf Secrets Manager über eine AWS Identity and Access Management (IAM-) Richtlinie, die an eine AWS Service- oder IAM-Rolle für Benutzer angehängt ist.
-
Erweitern Sie den programmatischen Zugriff auf Secrets Manager nur durch API-Aufrufe an Secrets Manager.
-
Vermeiden Sie die Verwendung von fest codierten Geheimnissen.
-
Übergeben Sie keine Werte für Anmeldeinformationen in Variablen.
-
Stellen Sie sicher, dass Geheimnisse direkt von der Anwendung oder Infrastruktur und nicht von einem menschlichen Benutzer verwendet werden.
Das folgende Codebeispiel zeigt einen Ansatz, mit dem Sie vertrauliche Daten beim Erstellen einer Datenbank schützen können. Wenn Sie die Datenbank erstellen, können Sie Benutzereingaben als Passwort verlangen und dann das Passwort wechseln, oder Sie können von Anfang an ein zufälliges Passwort verwenden. Wenn Sie von Anfang an ein zufälliges Passwort generieren, können Sie Anmeldeinformationen sicherer handhaben und verwalten.
Der folgende Codeausschnitt erstellt eine Datenbankressource und password =
local.passwddata
ruft das Passwort aus einer lokalen Variablen ab.
resource "aws_db_instance" "default" { count = var.createdb == true ? 1 : 0 allocated_storage = 20 identifier = var.identifier db_name = var.databasename engine = "mysql" engine_version = "8.0.32" instance_class = "db.t3.micro" username = "admin" password = local.passwddata skip_final_snapshot = true publicly_accessible = false vpc_security_group_ids = [aws_security_group.db.id] db_subnet_group_name = aws_db_subnet_group.db.0.name }
Der folgende Codeausschnitt erstellt ein zufälliges Passwort oder akzeptiert das vom Benutzer angegebene Passwort. Terraformspeichert dieses Passwort als lokale Variable, sodass Sie diese Kennwortvariable später im Code verwenden können.
locals { passwddata = var.passwddata != null ? var.passwddata : data.aws_secretsmanager_random_password.test.random_secrets }