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
" --regionregion_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 \ --namesecret_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 \ --namesecret_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 durch
. your_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
\"}",