Autorisieren des Zugriffs auf die Amazon-RDS-Daten-API
Benutzer können die Amazon-RDS-Daten-API (Daten-API) nur aufrufen, wenn sie dazu autorisiert sind. Sie können einem Benutzer die Berechtigung zur Verwendung der Daten-API erteilen, indem Sie eine AWS Identity and Access Management (IAM)-Richtlinie anfügen, die ihre Berechtigungen definiert. Sie können die Richtlinie auch einer Rolle anfügen, wenn Sie IAM-Rollen verwenden. Eine verwaltete AWS-Richtlinie, AmazonRDSDataFullAccess, enthält Berechtigungen für die Daten-API.
Die Richtlinie AmazonRDSDataFullAccess enthält auch Berechtigungen für den Abruf des Werts für einen geheimen Schlüssel aus AWS Secrets Manager für den Benutzer. Benutzer müssen Secrets Manager zum Speichern von Geheimnissen verwenden, die sie in ihren Aufrufen der Daten-API verwenden können. Die Verwendung von Geheimnissen bedeutet, dass Benutzer keine Datenbank-Anmeldeinformationen für die Ressourcen einschließen müssen, die das Ziel ihrer Aufrufe an die Daten-API sind. Die Daten-API ruft Secrets Manager transparent auf, wodurch die Anforderung des Geheimnisses durch den Benutzer zugelassen (oder abgelehnt) wird. Informationen zum Einrichten von Geheimnissen zur Verwendung mit der Daten-API finden Sie unter Speichern von Datenbankanmeldeinformationen in AWS Secrets Manager.
Die Richtlinie AmazonRDSDataFullAccess ermöglicht den vollständigen Zugriff (über die Daten-API) auf Ressourcen. Sie können den Geltungsbereich einschränken, indem Sie eigene Richtlinien definieren, die den Amazon-Ressourcennamen (ARN) einer Ressource angeben.
Die folgende Richtlinie zeigt beispielsweise ein Beispiel für die Mindestberechtigungen, die ein Benutzer für den Zugriff auf die Daten-API für den durch den ARN identifizierten DB-Cluster benötigt. Die Richtlinie enthält die nötigen Berechtigungen, um auf Secrets Manager zuzugreifen und die Autorisierung für die DB-Instance für den Benutzer zu erhalten.
Sie sollten für das Element „Ressourcen“ in Ihren Richtlinienanweisungen (wie im Beispiel gezeigt) einen spezifischen ARN anstelle eines Platzhalters (*) verwenden.
Arbeiten mit der Tag-basierten Autorisierung
Die RDS-Daten-API (Daten-API) und Secrets Manager unterstützen beide die Tag-basierte Autorisierung. Tags sind Schlüssel-Wert-Paare, die eine Ressource, z. B. einen RDS-Cluster, mit einem zusätzlichen Zeichenfolgenwert kennzeichnen, z. B.
environment:productionenvironment:development
Sie können auf Ihre Ressourcen Tags zum Zweck der Kostenzuweisung, der Ausführungsunterstützung, der Zugriffskontrolle und zu vielen weiteren Zwecken anwenden. (Wenn Sie noch keine Tags für Ihre Ressourcen anwenden und Tags anwenden möchten, finden Sie weitere Informationen unter Markieren von Amazon-RDS-Ressourcen.) Sie können die Tags in Ihren Richtlinienanweisungen verwenden, um den Zugriff auf die RDS-Cluster einzuschränken, die mit diesen Tags gekennzeichnet sind. Ein Aurora-DB-Cluster könnte beispielsweise Tags besitzen, die die Umgebung als Produktions- oder Entwicklungsumgebung kennzeichnen.
Das folgende Beispiel zeigt, wie Sie in Ihren Richtlinienanweisungen Tags verwenden können. Diese Anweisung erfordert, dass sowohl der Cluster als auch der in der Daten-API-Anforderung übergebene Schlüssel das Tag environment:production enthalten.
So wird die Richtlinie angewendet: Wenn ein Benutzer einen Aufruf über die Daten-API ausführt, wird die Anforderung an den Service gesendet. Die Daten-API überprüft zunächst, ob der in der Anforderung übergebene Cluster-ARN mit environment:production markiert ist. Anschließend wird Secrets Manager aufgerufen, um den Wert des Geheimnisses des Benutzers in der Anforderung abzurufen. Secrets Manager überprüft auch, ob das Geheimnis des Benutzers mit environment:production markiert ist. Wenn ja, verwendet die Daten-API den abgerufenen Wert für das DB-Passwort des Benutzers. Wenn dieser ebenfalls korrekt ist, wird die Daten-API-Anforderung für den Benutzer erfolgreich aufgerufen.
Das Beispiel zeigt separate Aktionen für rds-data und secretsmanager für die Daten-API und Secrets Manager. Sie können jedoch Aktionen kombinieren und Tag-Bedingungen auf viele verschiedene Arten definieren, um Ihre spezifischen Anwendungsfälle zu unterstützen. Weitere Informationen finden Sie unter Verwenden identitätsbasierter Richtlinien (IAM-Richtlinien) für Secrets Manager.
Im Element „Bedingung“ der Richtlinie können Sie Tag-Schlüssel aus den folgenden Optionen auswählen:
aws:TagKeysaws:ResourceTag/${TagKey}
Weitere Informationen zu Ressourcen-Tags und zur Verwendung von aws:TagKeys finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen über Ressourcen-Tags.
Anmerkung
Sowohl die Daten-API als auch AWS Secrets Manager autorisieren Benutzer. Wenn Sie nicht für alle in einer Richtlinie definierten Aktionen Berechtigungen besitzen, erhalten Sie den Fehler AccessDeniedException.
Speichern von Datenbankanmeldeinformationen in AWS Secrets Manager
Wenn Sie die Daten-API von Amazon RDS (Daten-API) aufrufen, können Sie die Anmeldeinformationen für die Datenbank unter Verwendung eines Geheimnisses in Secrets Manager übergeben. Zum Übermitteln der Anmeldeinformationen auf diese Weise geben Sie den Namen des Secrets oder den Amazon-Ressourcennamen (ARN) des Secrets an.
So speichern Sie DB-Cluster-Anmeldeinformationen in einem Secret
-
Sie können in Secrets Manager einen geheimen Schlüssel erstellen, der Anmeldeinformationen für den Aurora-DB-Cluster enthält.
Anweisungen finden Sie unter Erstellen eines Datenbank-Secrets im AWS Secrets Manager-Benutzerhandbuch.
-
Sie können die Details des von Ihnen erstellten geheimen Schlüssel über die Secrets Manager-Konsole oder den
aws secretsmanager describe-secret-Befehl AWS CLI anzeigen.Notieren Sie sich den Namen und den ARN des Secrets. Sie können sie in Aufrufen an die Daten-API verwenden.
Weitere Informationen zur Verwendung von Secrets Manager finden Sie im AWSSecrets-Manager-Benutzerhandbuch.
Informationen dazu, wie Amazon Aurora die Identitäts- und Zugriffsverwaltung steuert, finden Sie unter So funktioniert Amazon Aurora mit IAM.
Informationen zum Erstellen einer IAM-Richtlinie finden Sie unter Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch. Informationen zum Hinzufügen einer IAM-Richtlinie zu einem Benutzer finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.