Datenbankanmeldedaten einrichten in AWS Secrets Manager - Amazon Relational Database Service

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.

Datenbankanmeldedaten einrichten in AWS Secrets Manager

Für jeden von Ihnen erstellten Proxy verwenden Sie zunächst den Service Secrets Manager, um Gruppen von Anmeldeinformationen aus Benutzername und Passwort zu speichern. Sie erstellen ein separates Secrets Manager Manager-Geheimnis für jedes Datenbankbenutzerkonto, mit dem sich der Proxy auf dem verbindet.

In der Secrets Manager Manager-Konsole erstellen Sie diese Geheimnisse mit Werten für die password Felder username und. Auf diese Weise kann der Proxy eine Verbindung zu den entsprechenden Datenbankbenutzern auf einem herstellen, den Sie dem Proxy zuordnen. Hierfür können Sie die Einstellung Credentials for other database (Anmeldeinformationen für andere Datenbank), Credentials for RDS database (Anmeldeinformationen für die RDS-Datenbank) oder Other type of secrets (Andere Art von Secret) verwenden. Geben Sie die entsprechenden Werte für die Felder Benutzername und Passwort sowie Werte für alle anderen Pflichtfelder ein. Der Proxy ignoriert andere Felder wie Host und Port, wenn sie im Secret vorhanden sind. Diese Details werden automatisch vom Proxy bereitgestellt.

Sie können auch Andere Arten von Geheimnissen wählen. In diesem Fall erstellen Sie das Secret mit den Schlüsseln namens username und password.

Um eine Verbindung über den Proxy als bestimmter Datenbankbenutzer herzustellen, stellen Sie sicher, dass das mit einem geheimen Schlüssel verknüpfte Passwort mit dem Datenbankkennwort für diesen Benutzer übereinstimmt. Wenn eine Unstimmigkeit vorliegt, können Sie das zugehörige Geheimnis in Secrets Manager aktualisieren. In diesem Fall können Sie weiterhin eine Verbindung zu anderen Konten herstellen, bei denen die geheimen Anmeldeinformationen und die Datenbankpasswörter übereinstimmen.

Anmerkung

Für RDS for SQL Server benötigt RDS Proxy ein Geheimnis in Secrets Manager, das unabhängig von den Sortierungseinstellungen der DB-Instance zwischen Groß- und Kleinschreibung unterscheidet. Wenn Ihre Anwendung beispielsweise beide Benutzernamen „Admin“ oder „admin“ verwenden kann, konfigurieren Sie den Proxy mit Geheimnissen für „Admin“ und „admin“. RDS Proxy berücksichtigt bei der Authentifizierung zwischen Client und Proxy nicht die Groß- und Kleinschreibung von Benutzernamen.

Weitere Informationen über die Sortierung in SQL Server finden Sie in der Dokumentation für Microsoft SQL Server.

Wenn Sie einen Proxy über die AWS CLI oder RDS-API erstellen, geben Sie die Amazon-Ressourcennamen (ARNs) der entsprechenden Geheimnisse an. Diesen Vorgang führen Sie für alle DB-Benutzerkonten aus, auf die der Proxy zugreifen kann. In der AWS Management Console wählen Sie die Geheimnisse anhand ihrer aussagekräftigen Namen aus.

Anweisungen zum Erstellen von Secrets in Secrets Manager finden Sie auf der Seite Erstellen eines Secrets in der Secrets Manager-Dokumentation. Verwenden Sie eine der folgenden Techniken:

  • Verwenden Sie Secrets Manager in der Konsole.

  • Wenn Sie die CLI zum Erstellen eines Secrets Manager-Secrets für die Verwendung mit RDS Proxy verwenden möchten, verwenden Sie einen Befehl wie den folgenden.

    aws secretsmanager create-secret --name "secret_name" --description "secret_description" --region region_name --secret-string '{"username":"db_user","password":"db_user_password"}'
  • Sie können auch einen benutzerdefinierten Schlüssel erstellen, um Ihr Secrets Manager Manager-Geheimnis zu verschlüsseln. Der folgende Befehl erstellt einen Beispielschlüssel.

    PREFIX=my_identifier aws kms create-key --description "$PREFIX-test-key" --policy '{ "Id":"$PREFIX-kms-policy", "Version":"2012-10-17", "Statement": [ { "Sid":"Enable IAM User Permissions", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::account_id:root"}, "Action":"kms:*","Resource":"*" }, { "Sid":"Allow access for Key Administrators", "Effect":"Allow", "Principal": { "AWS": ["$USER_ARN","arn:aws:iam:account_id::role/Admin"] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource":"*" }, { "Sid":"Allow use of the key", "Effect":"Allow", "Principal":{"AWS":"$ROLE_ARN"}, "Action":["kms:Decrypt","kms:DescribeKey"], "Resource":"*" } ] }'

Mit den folgenden Befehlen werden beispielsweise Secrets Manager Manager-Geheimnisse für zwei Datenbankbenutzer erstellt:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}'

Verwenden Sie die folgenden Befehle, um diese mit Ihrem benutzerdefinierten AWS KMS Schlüssel verschlüsselten Geheimnisse zu erstellen:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}' --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

Verwenden Sie einen Befehl wie den folgenden, um die Geheimnisse zu sehen, die Ihrem AWS Konto gehören.

aws secretsmanager list-secrets

Wenn Sie einen Proxy mit der CLI erstellen, übergeben Sie die Amazon-Ressourcennamen (ARNs) von einem oder mehreren Secrets an den --auth-Parameter. Das folgende Linux-Beispiel zeigt, wie Sie einen Bericht erstellen, der nur den Namen und den ARN jedes Geheimnisses enthält, das Ihrem AWS Konto gehört. In diesem Beispiel wird der Parameter --output table verwendet, der in AWS CLI Version 2 verfügbar ist. Wenn Sie AWS CLI Version 1 verwenden, verwenden Sie --output text stattdessen.

aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table

Verwenden Sie einen Befehl wie den folgenden, um zu überprüfen, ob Sie die richtigen Anmeldeinformationen im richtigen Format im Secret gespeichert haben. Ersetzen Sie den Kurznamen oder den ARN des Secrets für your_secret_name.

aws secretsmanager get-secret-value --secret-id your_secret_name

Die Ausgabe sollte eine Zeile enthalten, die einen JSON-codierten Wert wie den folgenden anzeigt.

"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",