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
RDS Proxy in Amazon RDS verwendet AWS Secrets Manager , um Datenbankanmeldedaten sicher zu speichern und zu verwalten. Anstatt Anmeldeinformationen in Ihre Anwendung einzubetten, verknüpfen Sie einen Proxy mit einem Secrets Manager Manager-Geheimnis, das die erforderlichen Authentifizierungsdetails enthält. Sie erstellen ein separates Secrets Manager Manager-Geheimnis für jedes Datenbankbenutzerkonto, mit dem sich der Proxy auf dem Aurora DB-Cluster der verbindet.
Geheimnisse zur Verwendung mit RDS Proxy erstellen
Bevor Sie einen Proxy erstellen, müssen Sie zunächst mindestens einen geheimen Schlüssel erstellen, in dem Ihre Datenbankanmeldedaten gespeichert werden.
So erstellen Sie ein Secret
Öffnen Sie die Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/
. -
Wählen Sie Store a new secret (Ein neues Secret speichern).
-
Wählen Sie Credentials for Amazon RDS database aus.
-
Geben Sie einen Benutzernamen und ein Passwort ein. Die von Ihnen eingegebenen Anmeldeinformationen müssen mit den Anmeldeinformationen eines Datenbankbenutzers übereinstimmen, der in der zugehörigen RDS-Datenbank vorhanden ist. RDS Proxy verwendet diese Anmeldeinformationen, um im Namen von Anwendungen Verbindungen zur Datenbank zu authentifizieren und herzustellen.
Bei Nichtübereinstimmung können Sie das Geheimnis so aktualisieren, dass es mit dem Datenbankkennwort übereinstimmt. Solange Sie den geheimen Schlüssel nicht aktualisieren, schlagen Versuche fehl, eine Verbindung über den Proxy herzustellen, aber Verbindungen, die andere gültige geheime Schlüssel verwenden, funktionieren trotzdem.
Anmerkung
Für RDS for SQL Server erfordert RDS Proxy unabhängig von den Sortierungseinstellungen der DB-Instance einen geheimen Schlüssel in Secrets Manager, bei dem Groß- und Kleinschreibung beachtet wird. Wenn Ihre Anwendung Benutzernamen mit unterschiedlichen Groß- und Kleinschreibung zulässt, z. B. „Admin“ und „admin“, müssen Sie für jeden Benutzer separate geheime Schlüssel erstellen. RDS Proxy unterstützt keine Benutzernamenauthentifizierung zwischen Client und Proxy, bei der Groß- und Kleinschreibung nicht berücksichtigt wird.
Weitere Informationen über die Sortierung in SQL Server finden Sie in der Dokumentation für Microsoft SQL Server
. -
Wählen Sie für Datenbank die Amazon RDS-Datenbank aus, auf die das Secret zugreifen soll.
-
Geben Sie weitere Einstellungen für das Geheimnis ein und wählen Sie dann Speichern. Umfassende Anweisungen finden Sie im AWS Secrets Manager Benutzerhandbuch unter Ein AWS Secrets Manager Geheimnis erstellen.
Wenn Sie über den einen Proxy erstellen AWS CLI, 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.
-
Verwenden Sie den Befehl create-secret, 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.
aws kms create-key --description "
test-key
" --policy '{ "Id":"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 den Befehl list-secrets, um die Geheimnisse zu sehen, die Ihrem AWS Konto gehören:
aws secretsmanager list-secrets
Wenn Sie mit der CLI einen Proxy erstellen, übergeben Sie die Amazon-Ressourcennamen (ARNs) eines oder mehrerer Secrets an den --auth
Parameter. Das folgende 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 --output table
Parameter 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 den get-secret-valueBefehl, um zu überprüfen, ob der geheime Schlüssel die richtigen Anmeldeinformationen im richtigen Format enthält.
Ersetzen Sie es durch den Kurznamen oder den ARN des Geheimnisses.your_secret_name
aws secretsmanager get-secret-value --secret-id
your_secret_name
Die Ausgabe enthält eine Zeile mit einem JSON-codierten Wert, der dem folgenden ähnelt:
... "SecretString": "{\"username\":\"
your_username
\",\"password\":\"your_password
\"}", ...