Datenbankanmeldedaten AWS Secrets Manager für RDS Proxy einrichten - 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 AWS Secrets Manager für RDS Proxy einrichten

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 der Proxy eine Verbindung auf dem herstellt.

In der Secrets Manager Manager-Konsole erstellen Sie diese Geheimnisse mit Werten für die password Felder username und. Dadurch kann der Proxy eine Verbindung zu den entsprechenden Datenbankbenutzern auf einem herstellen, den Sie dem Proxy zuordnen. Dazu können Sie die Einstellung Anmeldeinformationen für andere Datenbanken, Anmeldeinformationen für RDS Datenbank oder Andere Arten von Geheimnissen 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

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

Weitere Informationen zur Sortierung in SQL Server finden Sie in der Microsoft SQL Server-Dokumentation.

Wenn Sie einen Proxy über das AWS CLI oder erstellen RDSAPI, 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.

  • Verwenden Sie einen Befehl wie den folgenden, CLI um ein Secrets Manager-Geheimnis für die Verwendung mit RDS Proxy zu erstellen.

    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 dem erstellenCLI, übergeben Sie die Amazon-Ressourcennamen (ARNs) eines oder mehrerer Geheimnisse an den --auth Parameter. Das folgende Linux-Beispiel zeigt, wie Sie einen Bericht erstellen, der nur den Namen und 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 Geheimnisses durchyour_secret_name.

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

Die Ausgabe sollte eine Zeile enthalten, in der ein JSON -codierter Wert wie der folgende angezeigt wird.

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