

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.

# Identity and Access Management für Amazon RDS
<a name="UsingWithRDS.IAM"></a>





AWS Identity and Access Management (IAM) hilft einem Administrator AWS-Service , den Zugriff auf AWS Ressourcen sicher zu kontrollieren. IAM-Administratoren steuern, wer *authenticated* (angemeldet) und *authorized* (autorisiert) (im Besitz von Berechtigungen) ist, um Amazon-RDS-Ressourcen zu nutzen. IAM ist ein Programm AWS-Service , das Sie ohne zusätzliche Kosten nutzen können.

**Topics**
+ [Zielgruppe](#security_iam_audience)
+ [Authentifizierung mit Identitäten](#security_iam_authentication)
+ [Verwalten des Zugriffs mit Richtlinien](#security_iam_access-manage)
+ [Funktionsweise von Amazon RDS mit IAM](security_iam_service-with-iam.md)
+ [Beispiele für identitätsbasierte Amazon-RDS-Richtlinien](security_iam_id-based-policy-examples.md)
+ [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md)
+ [Änderungen von Amazon RDS an von AWS verwalteten Richtlinien](rds-manpol-updates.md)
+ [Vermeidung des dienstübergreifenden Confused-Deputy-Problems](cross-service-confused-deputy-prevention.md)
+ [IAM-Datenbankauthentifizierungfür MariaDB, MySQL und PostgreSQL](UsingWithRDS.IAMDBAuth.md)
+ [Fehlerbehebung für Amazon RDS-Identität und -Zugriff](security_iam_troubleshoot.md)

## Zielgruppe
<a name="security_iam_audience"></a>

Wie Sie AWS Identity and Access Management (IAM) verwenden, hängt von der Arbeit ab, die Sie in Amazon RDS Amazon .

**Service-Benutzer** – Wenn Sie den Amazon RDS-Service verwenden, stellt Ihnen Ihr Administrator die erforderlichen Anmeldeinformationen und Berechtigungen bereit. Wenn Sie für Ihre Arbeit weitere Amazon RDS-Funktionen ausführen, benötigen Sie möglicherweise zusätzliche Berechtigungen. Wenn Sie die Funktionsweise der Zugriffskontrolle verstehen, kann Ihnen dies helfen, die richtigen Berechtigungen von Ihrem Administrator anzufordern. Unter [Fehlerbehebung für Amazon RDS-Identität und -Zugriff](security_iam_troubleshoot.md) finden Sie nützliche Informationen für den Fall, dass Sie keinen Zugriff auf eine Funktion in Amazon RDS haben.

**Service-Administrator** – Wenn Sie in Ihrem Unternehmen die Verantwortung für Amazon RDS-Ressourcen haben, haben Sie wahrscheinlich vollständigen Zugriff auf Amazon RDS. Ihre Aufgabe besteht darin, die Amazon RDS-Funktionen und -Ressourcen festzulegen, auf die Mitarbeiter zugreifen können sollten. Sie müssen anschließend bei Ihrem -Administrator entsprechende Änderungen für die Berechtigungen Ihrer Service-Benutzer anfordern. Lesen Sie die Informationen auf dieser Seite, um die Grundkonzepte von IAM nachzuvollziehen. Weitere Informationen dazu, wie Ihr Unternehmen IAM mit Amazon RDS verwenden kann, finden Sie unter [Funktionsweise von Amazon RDS mit IAM](security_iam_service-with-iam.md).

**Administrator** – Wenn Sie als Administrator fungieren, sollten Sie Einzelheiten dazu kennen, wie Sie Richtlinien zur Verwaltung des Zugriffs auf Amazon RDS verfassen können. Beispiele für identitätsbasierte Amazon RDS-Richtlinien, die Sie in IAM verwenden können, finden Sie unter [Beispiele für identitätsbasierte Amazon-RDS-Richtlinien](security_iam_id-based-policy-examples.md).

## Authentifizierung mit Identitäten
<a name="security_iam_authentication"></a>

Authentifizierung ist die Art und Weise, wie Sie sich AWS mit Ihren Identitätsdaten anmelden. Sie müssen sich als IAM-Benutzer authentifizieren oder eine IAM-Rolle annehmen. Root-Benutzer des AWS-Kontos

Sie können sich als föderierte Identität anmelden, indem Sie Anmeldeinformationen aus einer Identitätsquelle wie AWS IAM Identity Center (IAM Identity Center), Single Sign-On-Authentifizierung oder Anmeldeinformationen verwenden. Google/Facebook Weitere Informationen zum Anmelden finden Sie unter [So melden Sie sich bei Ihrem AWS-Konto an](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) im *Benutzerhandbuch für AWS-Anmeldung *.

 AWS Bietet für den programmatischen Zugriff ein SDK und eine CLI zum kryptografischen Signieren von Anfragen. Weitere Informationen finden Sie unter [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) im *IAM-Benutzerhandbuch*.

### AWS Konto (Root-Benutzer)
<a name="security_iam_authentication-rootuser"></a>

 Wenn Sie einen erstellen AWS-Konto, beginnen Sie mit einer Anmeldeidentität, dem sogenannten AWS-Konto *Root-Benutzer*, der vollständigen Zugriff auf alle AWS-Services Ressourcen hat. Wir raten ausdrücklich davon ab, den Root-Benutzer für Alltagsaufgaben zu verwenden. Eine Liste der Aufgaben, für die Sie sich als Root-Benutzer anmelden müssen, finden Sie unter [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) im *IAM-Benutzerhandbuch*. 

### Verbundidentität
<a name="security_iam_authentication-federatedidentity"></a>

Es hat sich bewährt, dass menschliche Benutzer für den Zugriff AWS-Services mithilfe temporärer Anmeldeinformationen einen Verbund mit einem Identitätsanbieter verwenden müssen.

Eine *föderierte Identität* ist ein Benutzer aus Ihrem Unternehmensverzeichnis, Ihrem Directory Service Web-Identitätsanbieter oder der AWS-Services mithilfe von Anmeldeinformationen aus einer Identitätsquelle zugreift. Verbundidentitäten übernehmen Rollen, die temporäre Anmeldeinformationen bereitstellen.

Für die zentrale Zugriffsverwaltung empfehlen wir AWS IAM Identity Center. Weitere Informationen finden Sie unter [Was ist IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

### IAM-Benutzer und -Gruppen
<a name="security_iam_authentication-iamuser"></a>

Ein *[IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* ist eine Identität mit bestimmten Berechtigungen für eine einzelne Person oder Anwendung. Verwenden Sie möglichst temporäre Anmeldeinformationen statt IAM-Benutzer mit langfristigen Anmeldeinformationen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erfordern, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden müssen, um AWS mithilfe temporärer Anmeldeinformationen darauf zugreifen zu](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) können.

Eine [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) gibt eine Sammlung von IAM-Benutzern an und vereinfacht die Verwaltung von Berechtigungen bei großer Benutzerzahl. Weitere Informationen finden Sie unter [Use cases for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) im *IAM-Benutzerhandbuch*.

Sie können sich mit der IAM-Datenbankauthentifizierung bei Ihrem DB-Instance- authentifizieren.

Die IAM-Datenbankauthentifizierung funktioniert mit den folgenden DB-Engines:
+ RDS für MariaDB
+ RDS für MySQL
+ RDS für PostgreSQL

Weitere Informationen zur Authentifizierung bei Ihrem DB-Instance- mit IAM finden Sie unter [IAM-Datenbankauthentifizierungfür MariaDB, MySQL und PostgreSQL](UsingWithRDS.IAMDBAuth.md).

### IAM-Rollen
<a name="security_iam_authentication-iamrole"></a>

Eine *[IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* ist eine Identität innerhalb Ihres Unternehmens, für AWS-Konto die bestimmte Berechtigungen gelten. Sie ist mit einem Benutzer vergleichbar, jedoch nicht mit einer bestimmten Person verknüpft. Sie können vorübergehend eine IAM-Rolle in der übernehmen, AWS-Managementkonsole indem Sie die Rollen [wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html). Sie können eine Rolle übernehmen, indem Sie eine AWS CLI oder AWS API-Operation aufrufen oder eine benutzerdefinierte URL verwenden. Weitere Informationen zu Methoden für die Verwendung von Rollen finden Sie unter [Verwenden von IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) im *IAM-Benutzerhandbuch*.

IAM-Rollen mit temporären Anmeldeinformationen sind in folgenden Situationen hilfreich:
+ **Temporäre Benutzerberechtigungen** – Ein Benutzer kann eine IAM-Rolle übernehmen, um vorübergehend andere Berechtigungen für eine bestimmte Aufgabe zu erhalten. 
+ **Verbundbenutzerzugriff** – Um einer Verbundidentität Berechtigungen zuzuweisen, erstellen Sie eine Rolle und definieren Berechtigungen für die Rolle. Wird eine Verbundidentität authentifiziert, so wird die Identität der Rolle zugeordnet und erhält die von der Rolle definierten Berechtigungen. Informationen zu Rollen für den Verbund finden Sie unter [Erstellen von Rollen für externe Identitätsanbieter (Verbund)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) im *IAM-Benutzerhandbuch*. Wenn Sie IAM Identity Center verwenden, konfigurieren Sie einen Berechtigungssatz. Wenn Sie steuern möchten, worauf Ihre Identitäten nach der Authentifizierung zugreifen können, korreliert IAM Identity Center den Berechtigungssatz mit einer Rolle in IAM. Informationen zu Berechtigungssätzen finden Sie unter [ Berechtigungssätze](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) im *AWS IAM Identity Center -Benutzerhandbuch*. 
+ **Kontoübergreifender Zugriff** – Sie können eine IAM-Rolle verwenden, um einem vertrauenswürdigen Prinzipal in einem anderen Konto den Zugriff auf Ressourcen in Ihrem Konto zu ermöglichen. Rollen stellen die primäre Möglichkeit dar, um kontoübergreifendem Zugriff zu gewähren. Bei einigen können Sie AWS-Services jedoch eine Richtlinie direkt an eine Ressource anhängen (anstatt eine Rolle als Proxy zu verwenden). Informationen zu den Unterschieden zwischen Rollen und ressourcenbasierten Richtlinien für den kontoübergreifenden Zugriff finden Sie unter [So unterscheiden sich IAM-Rollen von ressourcenbasierten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html) im *IAM-Benutzerhandbuch*.
+ **Serviceübergreifender Zugriff** — Einige AWS-Services verwenden Funktionen in anderen AWS-Services. Wenn Sie beispielsweise in einem Service einen Anruf tätigen, ist es üblich, dass dieser Service Anwendungen in Amazon ausführt EC2 oder Objekte in Amazon S3 speichert. Ein Dienst kann dies mit den Berechtigungen des aufrufenden Prinzipals mit einer Servicerolle oder mit einer serviceverknüpften Rolle tun. 
  + **Forward-Access-Sitzungen** — Forward-Access-Sitzungen (FAS) verwenden die Berechtigungen des Principals, der einen aufruft AWS-Service, kombiniert mit der Anfrage, Anfragen AWS-Service an nachgelagerte Dienste zu stellen. Einzelheiten zu den Richtlinien für FAS-Anfragen finden Sie unter [Zugriffssitzungen weiterleiten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 
  + **Servicerolle** – Eine Servicerolle ist eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html), die ein Service übernimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*. 
  + **Dienstbezogene Rolle** — Eine dienstbezogene Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Servicebezogene Rollen erscheinen in Ihrem Dienst AWS-Konto und gehören dem Dienst. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten. 
+ **Auf Amazon ausgeführte Anwendungen EC2** — Sie können eine IAM-Rolle verwenden, um temporäre Anmeldeinformationen für Anwendungen zu verwalten, die auf einer EC2 Instance ausgeführt werden und AWS API-Anfragen stellen AWS CLI . Dies ist dem Speichern von Zugriffsschlüsseln innerhalb der EC2 Instance vorzuziehen. Um einer EC2 Instanz eine AWS Rolle zuzuweisen und sie allen ihren Anwendungen zur Verfügung zu stellen, erstellen Sie ein Instanzprofil, das an die Instanz angehängt ist. Ein Instanzprofil enthält die Rolle und ermöglicht Programmen, die auf der EC2 Instanz ausgeführt werden, temporäre Anmeldeinformationen abzurufen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Verwenden einer IAM-Rolle, um Berechtigungen für Anwendungen zu gewähren, die auf EC2 Amazon-Instances ausgeführt](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) werden. 

Informationen dazu, wann Sie IAM-Rollen verwenden sollten, finden Sie unter [Wann Sie eine IAM-Rolle (statt eines Benutzers) erstellen sollten](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role) im *IAM-Benutzerhandbuch*.

## Verwalten des Zugriffs mit Richtlinien
<a name="security_iam_access-manage"></a>

Sie kontrollieren den Zugriff, AWS indem Sie Richtlinien erstellen und diese an IAM-Identitäten oder -Ressourcen anhängen. AWS Eine Richtlinie ist ein Objekt, AWS das, wenn es einer Identität oder Ressource zugeordnet ist, deren Berechtigungen definiert. AWS wertet diese Richtlinien aus, wenn eine Entität (Root-Benutzer, Benutzer oder IAM-Rolle) eine Anfrage stellt. Die Berechtigungen in den Richtlinien legen fest, ob eine Anforderung zugelassen oder abgelehnt wird. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert. Weitere Informationen zu Struktur und Inhalten von JSON-Richtliniendokumenten finden Sie unter [Übersicht über JSON-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) im *IAM-Benutzerhandbuch*.

Ein Administrator kann mithilfe von Richtlinien angeben, wer Zugriff auf AWS Ressourcen hat und welche Aktionen er mit diesen Ressourcen ausführen kann. Eine IAM-Entität (Berechtigungssatz oder Rolle) besitzt zunächst keine Berechtigungen. Anders ausgedrückt, können Benutzer standardmäßig keine Aktionen ausführen und nicht einmal ihr Passwort ändern. Um einem Benutzer die Berechtigung für eine Aktion zu erteilen, muss ein Administrator einem Benutzer eine Berechtigungsrichtlinie zuweisen. Alternativ kann der Administrator den Benutzer zu einer Gruppe hinzufügen, die über die gewünschten Berechtigungen verfügt. Wenn ein Administrator einer Gruppe Berechtigungen erteilt, erhalten alle Benutzer in dieser Gruppe diese Berechtigungen.

IAM-Richtlinien definieren Berechtigungen für eine Aktion unabhängig von der Methode, die Sie zur Ausführung der Aktion verwenden. Angenommen, es gibt eine Richtlinie, die Berechtigungen für die `iam:GetRole`-Aktion erteilt. Ein Benutzer mit dieser Richtlinie kann Rolleninformationen von der AWS-Managementkonsole AWS CLI, der oder der AWS API abrufen.

### Identitätsbasierte Richtlinien
<a name="security_iam_access-manage-id-based-policies"></a>

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. ein Berechtigungssatz oder eine Rolle. Diese Richtlinien steuern, welche Aktionen diese Identität für welche Ressourcen und unter welchen Bedingungen ausführen kann. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Erstellen von IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Identitätsbasierte Richtlinien können weiter als *Inline-Richtlinien* oder *verwaltete Richtlinien* kategorisiert werden. Inline-Richtlinien sind direkt in einen einzelnen Berechtigungssatz oder eine einzelne Rolle eingebettet. Verwaltete Richtlinien sind eigenständige Richtlinien, die Sie mehreren Berechtigungssätzen und Rollen in Ihrem AWS Konto zuordnen können. Zu den verwalteten Richtlinien gehören AWS verwaltete Richtlinien und vom Kunden verwaltete Richtlinien. Informationen dazu, wie Sie zwischen einer verwalteten Richtlinie und einer eingebundenen Richtlinie wählen, finden Sie unter [Auswahl zwischen verwalteten und eingebundenen Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#choosing-managed-or-inline) im *IAM-Benutzerhandbuch*.

Informationen zu AWS verwalteten Richtlinien, die speziell für Amazon RDS Amazon , finden Sie unter[AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md).

### Weitere Richtlinientypen
<a name="security_iam_access-manage-other-policies"></a>

AWS unterstützt zusätzliche, weniger verbreitete Richtlinientypen. Mit diesen Richtlinientypen können Sie die maximalen Berechtigungen festlegen, die Ihnen durch die gängigeren Richtlinientypen gewährt werden. 
+ **Berechtigungsgrenzen** – Eine Berechtigungsgrenze ist eine erweiterte Funktion, mit der Sie die maximalen Berechtigungen festlegen können, die eine identitätsbasierte Richtlinie einer IAM-Entität (Berechtigungssatz oder Rolle) erteilen kann. Sie können eine Berechtigungsgrenze für eine Entität festlegen. Die daraus resultierenden Berechtigungen stellen die Schnittmenge zwischen den identitätsbasierten Richtlinien der Entität und ihren Berechtigungsgrenzen dar. Ressourcenbasierte Richtlinien, die den Berechtigungssatz oder die Rolle im Feld `Principal` angeben, werden nicht durch Berechtigungsgrenzen eingeschränkt. Eine explizite Zugriffsverweigerung in einer dieser Richtlinien setzt eine Zugriffserlaubnis außer Kraft. Weitere Informationen über Berechtigungsgrenzen finden Sie unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) im *IAM-Benutzerhandbuch*.
+ **Dienststeuerungsrichtlinien (SCPs)** — SCPs sind JSON-Richtlinien, die die maximalen Berechtigungen für eine Organisation oder Organisationseinheit (OU) festlegen. AWS Organizations AWS Organizations ist ein Dienst zur Gruppierung und zentralen Verwaltung mehrerer AWS Konten, die Ihrem Unternehmen gehören. Wenn Sie alle Funktionen in einer Organisation aktivieren, können Sie Richtlinien zur Servicesteuerung (SCPs) auf einige oder alle Ihre Konten anwenden. Das SCP schränkt die Berechtigungen für Entitäten in Mitgliedskonten ein, einschließlich der einzelnen Root-Benutzer des AWS-Kontos Entitäten. Weitere Informationen zu Organizations und SCPs finden Sie unter [So SCPs arbeiten](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html) Sie im *AWS Organizations Benutzerhandbuch*.
+ **Sitzungsrichtlinien** – Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben, wenn Sie eine temporäre Sitzung für eine Rolle oder einen verbundenen Benutzer programmgesteuert erstellen. Die resultierenden Sitzungsberechtigungen sind eine Schnittmenge der auf der Identität des Berechtigungssatzes oder der Rolle basierenden Richtlinien und der Sitzungsrichtlinien. Berechtigungen können auch aus einer ressourcenbasierten Richtlinie stammen. Eine explizite Zugriffsverweigerung in einer dieser Richtlinien setzt eine Zugriffserlaubnis außer Kraft. Weitere Informationen finden Sie unter [Sitzungsrichtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) im *IAM-Benutzerhandbuch*. 

### Mehrere Richtlinientypen
<a name="security_iam_access-manage-multiple-policies"></a>

Wenn für eine Anfrage mehrere Arten von Richtlinien gelten, sind die sich daraus ergebenden Berechtigungen schwieriger zu verstehen. Informationen darüber, wie AWS bestimmt wird, ob eine Anfrage zulässig ist, wenn mehrere Richtlinientypen betroffen sind, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*.

# Funktionsweise von Amazon RDS mit IAM
<a name="security_iam_service-with-iam"></a>

Bevor Sie IAM zum Verwalten des Zugriffs auf Amazon RDS verwenden, sollten Sie verstehen, welche IAM-Funktionen für die Verwendung mit Amazon RDS verfügbar sind.

In der folgenden Tabelle sind die IAM-Funktionen aufgelistet, die mit Amazon RDS verwendet werden können:


| IAM-Feature | Unterstützung von Amazon-RDS | 
| --- | --- | 
|  [Identitätsbasierte Richtlinien](#security_iam_service-with-iam-id-based-policies)  |  Ja  | 
|  [Ressourcenbasierte Richtlinien](#security_iam_service-with-iam-resource-based-policies)  |  Nein  | 
|  [Richtlinienaktionen](#security_iam_service-with-iam-id-based-policies-actions)  |  Ja  | 
|  [Richtlinienressourcen](#security_iam_service-with-iam-id-based-policies-resources)  |  Ja  | 
|  [Richtlinienbedingungsschlüssel (servicespezifisch)](#UsingWithRDS.IAM.Conditions)  |  Ja  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |  Nein  | 
|  [Attributbasierte Zugriffssteuerung (Attribute-Based Access Control, ABAC) (Tags in Richtlinien)](#security_iam_service-with-iam-tags)  |  Ja  | 
|  [Temporäre Anmeldeinformationen](#security_iam_service-with-iam-roles-tempcreds)  |  Ja  | 
|  [Forward Access Sessions](#security_iam_service-with-iam-principal-permissions)  |  Ja  | 
|  [Servicerollen](#security_iam_service-with-iam-roles-service)  |  Ja  | 
|  [Service-verknüpfte Rollen](#security_iam_service-with-iam-roles-service-linked)  |  Ja  | 

Einen allgemeinen Überblick darüber, wie Amazon RDS, und andere AWS Services mit IAM zusammenarbeiten, finden Sie im [IAM-Benutzerhandbuch unter AWS Services, die mit *IAM* funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

**Topics**
+ [Identitätsbasierte Amazon RDS-Richtlinien](#security_iam_service-with-iam-id-based-policies)
+ [Ressourcenbasierte Richtlinien in Amazon RDS](#security_iam_service-with-iam-resource-based-policies)
+ [Richtlinienaktionen für Amazon RDS](#security_iam_service-with-iam-id-based-policies-actions)
+ [Richtlinienressourcen für Amazon RDS](#security_iam_service-with-iam-id-based-policies-resources)
+ [Richtlinien-Bedingungsschlüssel für Amazon RDS](#UsingWithRDS.IAM.Conditions)
+ [Zugriffskontrolllisten (ACLs) in Amazon RDS](#security_iam_service-with-iam-acls)
+ [Attributbasierte Zugriffssteuerung (Attribute-Based Access Control, ABAC) in Richtlinien mit Amazon-RDS-Tags](#security_iam_service-with-iam-tags)
+ [Verwenden temporärer Anmeldeinformationen mit Amazon RDS](#security_iam_service-with-iam-roles-tempcreds)
+ [Forward Access Sessions für Amazon RDS](#security_iam_service-with-iam-principal-permissions)
+ [Servicerollen für Amazon RDS](#security_iam_service-with-iam-roles-service)
+ [Serviceverknüpfte Rollen für Amazon RDS](#security_iam_service-with-iam-roles-service-linked)

## Identitätsbasierte Amazon RDS-Richtlinien
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Unterstützt Richtlinien auf Identitätsbasis:** Ja

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. IAM-Benutzern, -Benutzergruppen oder -Rollen. Diese Richtlinien steuern, welche Aktionen die Benutzer und Rollen für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der [IAM-Referenz für JSON-Richtlinienelemente](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) im *IAM-Benutzerhandbuch*.

### Beispiele für identitätsbasierte Amazon-RDS-Richtlinien
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Beispiele für identitätsbasierte Amazon RDS-Richtlinien finden Sie unter [Beispiele für identitätsbasierte Amazon-RDS-Richtlinien](security_iam_id-based-policy-examples.md).

## Ressourcenbasierte Richtlinien in Amazon RDS
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Unterstützt ressourcenbasierte Richtlinien:** Nein

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele für ressourcenbasierte Richtlinien sind IAM-*Rollen-Vertrauensrichtlinien* und Amazon-S3-*Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Für die Ressource, an welche die Richtlinie angehängt ist, legt die Richtlinie fest, welche Aktionen ein bestimmter Prinzipal unter welchen Bedingungen für diese Ressource ausführen kann. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). Zu den Prinzipalen können Konten, Benutzer, Rollen, Verbundbenutzer oder gehören. AWS-Services

Um kontoübergreifenden Zugriff zu ermöglichen, können Sie ein gesamtes Konto oder IAM-Entitäten in einem anderen Konto als Prinzipal in einer ressourcenbasierten Richtlinie angeben. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Richtlinienaktionen für Amazon RDS
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Unterstützt Richtlinienaktionen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Action` einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Nehmen Sie Aktionen in eine Richtlinie auf, um Berechtigungen zur Ausführung des zugehörigen Vorgangs zu erteilen.

Richtlinienaktionen in Amazon RDS verwenden das folgende Präfix vor der Aktion: `rds:`. Um beispielsweise jemandem die Berechtigung zu erteilen, DB-Instances mit der API-Operation Amazon RDS `DescribeDBInstances` zu beschreiben, nehmen Sie die Aktion `rds:DescribeDBInstances` in die Richtlinie auf. Richtlinienanweisungen müssen entweder ein `Action`- oder ein `NotAction`-Element enthalten. Amazon RDS definiert eine eigene Gruppe von Aktionen, die Aufgaben beschreiben, die Sie mit diesem Service durchführen können.

Um mehrere -Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie folgendermaßen durch Kommas.

```
"Action": [
      "rds:action1",
      "rds:action2"
```

Sie können auch Platzhalter (\$1) verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort `Describe` beginnen, einschließlich der folgenden Aktion:

```
"Action": "rds:Describe*"
```



Um eine Liste von Amazon-RDS-Aktionen finden Sie unter [Von Amazon RDS definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) in der *Service-Autorisierungs-Referenz*

## Richtlinienressourcen für Amazon RDS
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Unterstützt Richtlinienressourcen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das JSON-Richtlinienelement `Resource` gibt die Objekte an, auf welche die Aktion angewendet wird. Als Best Practice geben Sie eine Ressource mit dem zugehörigen [Amazon-Ressourcennamen (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) an. Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, einen Platzhalter (\$1), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

```
"Resource": "*"
```

Die DB-Instance-Ressource hat den folgenden Amazon-Ressourcennamen (ARN).

```
arn:${Partition}:rds:${Region}:${Account}:{ResourceType}/${Resource}
```

Weitere Informationen zum Format von ARNs finden Sie unter [Amazon Resource Names (ARNs) und AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

Wenn Sie beispielsweise die `dbtest`-DB-Instance in Ihrer Anweisung angeben möchten, verwenden Sie den folgenden ARN.

```
"Resource": "arn:aws:rds:us-west-2:123456789012:db:dbtest"
```

Wenn Sie alle DB-Instances angeben möchten, die einem bestimmten Konto angehören, verwenden Sie den Platzhalter (\$1).

```
"Resource": "arn:aws:rds:us-east-1:123456789012:db:*"
```

Einige RDS-API-Operationen, z. B. das Erstellen von Ressourcen, können nicht für eine bestimmte Ressource durchgeführt werden. Verwenden Sie in diesen Fällen den Platzhalter (\$1).

```
"Resource": "*"
```

Viele Amazon-RDS-API-Operationen umfassen mehrere Ressourcen. `CreateDBInstance` erstellt beispielsweise eine DB-Instance. Sie können festlegen, dass ein -Benutzer beim Erstellen einer DB-Instance eine bestimmte Sicherheitsgruppe und Parametergruppe verwenden muss. Um mehrere Ressourcen in einer einzigen Anweisung anzugeben, trennen Sie sie durch Kommas. ARNs 

```
"Resource": [
      "resource1",
      "resource2"
```

Eine Liste der Amazon RDS und ihrer Eigenschaften ARNs finden Sie unter [Von Amazon RDS definierte Ressourcen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-resources-for-iam-policies) in der *Service Authorization Reference*. Informationen zu den Aktionen, mit denen Sie den ARN einzelner Ressourcen angeben können, finden Sie unter [Von Amazon RDS definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions).

## Richtlinien-Bedingungsschlüssel für Amazon RDS
<a name="UsingWithRDS.IAM.Conditions"></a>

**Unterstützt servicespezifische Richtlinienbedingungsschlüssel:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Condition` gibt an, wann Anweisungen auf der Grundlage definierter Kriterien ausgeführt werden. Sie können bedingte Ausdrücke erstellen, die [Bedingungsoperatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter [Kontextschlüssel für AWS globale Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.

Amazon RDS definiert einen eigenen Satz von Bedingungsschlüsseln und unterstützt auch einige globale Bedingungsschlüssel. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter [Kontextschlüssel für AWS globale Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.



 Alle RDS-API-Operationen unterstützen den Bedingungsschlüssel `aws:RequestedRegion`. 

Um eine Liste von Amazon-RDS-Bedingungsschlüsseln finden Sie unter [Bedingungsschlüssel für Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-policy-keys) in der *Service-Autorisierungs-Referenz*. Informationen dazu, mit welchen Aktionen und Ressourcen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter [Von Amazon RDS definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions).

## Zugriffskontrolllisten (ACLs) in Amazon RDS
<a name="security_iam_service-with-iam-acls"></a>

**Unterstützt Zugriffskontrolllisten (ACLs):** Nein

Zugriffskontrolllisten (ACLs) steuern, welche Principals (Kontomitglieder, Benutzer oder Rollen) Berechtigungen für den Zugriff auf eine Ressource haben. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.

## Attributbasierte Zugriffssteuerung (Attribute-Based Access Control, ABAC) in Richtlinien mit Amazon-RDS-Tags
<a name="security_iam_service-with-iam-tags"></a>

**Unterstützt Tags für die attributbasierte Zugriffssteuerung (Attribute-Based Access Control, ABAC)** in Richtlinien: Ja 

Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, bei der Berechtigungen basierend auf Attributen, auch als Tags bezeichnet, definiert werden. Sie können Tags an IAM-Entitäten und AWS Ressourcen anhängen und dann ABAC-Richtlinien so entwerfen, dass Operationen möglich sind, wenn das Tag des Prinzipals mit dem Tag auf der Ressource übereinstimmt.

Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer[ Richtlinie Tag-Informationen ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)an, indem Sie die Schlüssel `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`, oder Bedingung `aws:TagKeys` verwenden.

Wenn ein Service alle drei Bedingungsschlüssel für jeden Ressourcentyp unterstützt, lautet der Wert für den Service **Ja**. Wenn ein Service alle drei Bedingungsschlüssel für nur einige Ressourcentypen unterstützt, lautet der Wert **Teilweise**.

*Weitere Informationen zu ABAC finden Sie unter [Definieren von Berechtigungen mit ABAC-Autorisierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) im IAM-Benutzerhandbuch*. Um ein Tutorial mit Schritten zur Einstellung von ABAC anzuzeigen, siehe [Attributbasierte Zugriffskontrolle (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) verwenden im *IAM-Benutzerhandbuch*.

Weitere Informationen über das Markieren von Amazon RDS-Ressourcen mit Tags finden Sie unter [Festlegen von Bedingungen: Verwenden von benutzerdefinierten Tags](UsingWithRDS.IAM.SpecifyingCustomTags.md). Ein Beispiel für eine identitätsbasierte Richtlinie zur Einschränkung des Zugriffs auf eine Ressource auf der Grundlage der Tags dieser Ressource finden Sie unter [Erteilen von Berechtigungen für Aktionen in einer Ressource mit einem bestimmten Tag und zwei verschiedenen Tag-Werten](security_iam_id-based-policy-examples-create-and-modify-examples.md#security_iam_id-based-policy-examples-grant-permissions-tags).

## Verwenden temporärer Anmeldeinformationen mit Amazon RDS
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Unterstützt temporäre Anmeldeinformationen:** Ja

Temporäre Anmeldeinformationen ermöglichen den kurzfristigen Zugriff auf AWS Ressourcen und werden automatisch erstellt, wenn Sie einen Verbund verwenden oder die Rollen wechseln. AWS empfiehlt, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter [Temporäre Anmeldeinformationen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) und [AWS-Services , die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) im *IAM-Benutzerhandbuch*.

## Forward Access Sessions für Amazon RDS
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Unterstützt Forward Access Sessions (FAS):** Ja

 Forward Access Sessions (FAS) verwenden die Berechtigungen des Prinzipals, der einen aufruft AWS-Service, kombiniert mit der Anforderung, Anfragen AWS-Service an nachgeschaltete Dienste zu stellen. Einzelheiten zu den Richtlinien für FAS-Anforderungen finden Sie unter [Zugriffssitzungen weiterleiten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Servicerollen für Amazon RDS
<a name="security_iam_service-with-iam-roles-service"></a>

**Unterstützt Servicerollen:** Ja

 Eine Servicerolle ist eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html), die ein Service annimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*. 

**Warnung**  
Das Ändern der Berechtigungen für eine Servicerolle könnte die Amazon-RDS-Funktionalität beeinträchtigen. Bearbeiten Sie Servicerollen nur, wenn Amazon RDS dazu Anleitungen gibt.

## Serviceverknüpfte Rollen für Amazon RDS
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Unterstützt serviceverknüpfte Rollen:** Ja

 Eine dienstbezogene Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Dienstbezogene Rollen werden in Ihrem Dienst angezeigt AWS-Konto und gehören dem Dienst. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten. 

Details zum Verwenden von serviceverknüpften Amazon RDS-Rollen finden Sie unter [Verwenden von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md).

# Beispiele für identitätsbasierte Amazon-RDS-Richtlinien
<a name="security_iam_id-based-policy-examples"></a>

Standardmäßig besitzen Berechtigungssätze und Rollen keine Berechtigungen zum Erstellen oder Ändern von Amazon-RDS--Ressourcen. Sie können auch keine Aufgaben mit der AWS-Managementkonsole AWS CLI, oder AWS API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Berechtigungssätzen und Rollen die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcen gewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den Berechtigungssätzen oder Rollen anfügen, die diese Berechtigungen benötigen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter [Erstellen von Richtlinien auf der JSON-Registerkarte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) im *IAM-Benutzerhandbuch*.

**Topics**
+ [Best Practices für Richtlinien](#security_iam_service-with-iam-policy-best-practices)
+ [Verwenden der Amazon RDS-Konsole](#security_iam_id-based-policy-examples-console)
+ [Erforderliche Berechtigungen für die Verwendung der Konsole](#UsingWithRDS.IAM.RequiredPermissions.Console)
+ [Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Berechtigungsrichtlinien zum Erstellen, Ändern und Löschen von Ressourcen in Amazon RDS](security_iam_id-based-policy-examples-create-and-modify-examples.md)
+ [Beispielrichtlinien: Verwenden von Bedingungsschlüsseln](UsingWithRDS.IAM.Conditions.Examples.md)
+ [Festlegen von Bedingungen: Verwenden von benutzerdefinierten Tags](UsingWithRDS.IAM.SpecifyingCustomTags.md)
+ [Berechtigung zum Markieren von Amazon RDS-Ressourcen während der Erstellung erteilen](security_iam_id-based-policy-examples-grant-permissions-tags-on-create.md)

## Best Practices für Richtlinien
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identitätsbasierte Richtlinien können festlegen, ob jemand Amazon-RDS-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder daraus löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Wenn Sie identitätsbasierte Richtlinien erstellen oder bearbeiten, befolgen Sie diese Richtlinien und Empfehlungen:
+ **Erste Schritte mit AWS verwalteten Richtlinien und Umstellung auf Berechtigungen mit den geringsten Rechten** — Verwenden Sie die *AWS verwalteten Richtlinien*, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um damit zu beginnen, Ihren Benutzern und Workloads Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) oder [Von AWS verwaltete Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) im *IAM-Benutzerhandbuch*.
+ **Anwendung von Berechtigungen mit den geringsten Rechten** – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als *die geringsten Berechtigungen*. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter [ Richtlinien und Berechtigungen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs** – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. CloudFormation B. Weitere Informationen finden Sie unter [IAM-JSON-Richtlinienelemente: Bedingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten** – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter [Richtlinienvalidierung mit IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*.
+ **Multi-Faktor-Authentifizierung (MFA) erforderlich** — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter [Sicherer API-Zugriff mit MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter [Best Practices für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

## Verwenden der Amazon RDS-Konsole
<a name="security_iam_id-based-policy-examples-console"></a>

Um auf die Amazon RDS-Konsole zuzugreifen, müssen Sie über einen Mindestsatz von Berechtigungen verfügen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den Amazon RDS Amazon in Ihrem aufzulisten und anzuzeigen AWS-Konto. Wenn Sie eine identitätsbasierte Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Entitäten (Benutzer oder Rollen) mit dieser Richtlinie.

Sie müssen Benutzern, die nur die API AWS CLI oder die AWS API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die Sie ausführen möchten.

Um sicherzustellen, dass diese Entitäten weiterhin die Amazon RDS verwenden können, fügen Sie den Entitäten auch die folgende AWS verwaltete Richtlinie hinzu.

```
AmazonRDSReadOnlyAccess
```

Weitere Informationen finden Sie unter [Hinzufügen von Berechtigungen zu einem Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

## Erforderliche Berechtigungen für die Verwendung der Konsole
<a name="UsingWithRDS.IAM.RequiredPermissions.Console"></a>

Damit ein Benutzer mit der Konsole arbeiten kann, muss dieser Benutzer über einen Minimumsatz an Berechtigungen verfügen. Diese Berechtigungen ermöglichen es dem Benutzer, die Amazon RDS Amazon für sein AWS Konto zu beschreiben und andere verwandte Informationen bereitzustellen, einschließlich Amazon EC2-Sicherheits- und Netzwerkinformationen.

Wenn Sie eine IAM-Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Benutzer mit dieser IAM-Richtlinie. Um sicherzustellen, dass diese Benutzer die Konsole weiterhin verwenden können, fügen Sie dem Benutzer auch die verwaltete Richtlinie `AmazonRDSReadOnlyAccess` an. Einzelheiten dazu finden Sie unter [Verwalten des Zugriffs mit Richtlinien](UsingWithRDS.IAM.md#security_iam_access-manage).

Für Benutzer, die nur Aufrufe an die AWS CLI oder Amazon-RDS-API durchführen, müssen Sie keine Mindestberechtigungen in der Konsole erteilen. 

Die folgende Richtlinie gewährt vollen Zugriff auf alle Amazon RDS Amazon für das AWS Root-Konto:

```
AmazonRDSFullAccess             
```

## Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der API AWS CLI oder AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Berechtigungsrichtlinien zum Erstellen, Ändern und Löschen von Ressourcen in Amazon RDS
<a name="security_iam_id-based-policy-examples-create-and-modify-examples"></a>

Die folgenden Abschnitte enthalten Beispiele für Berechtigungsrichtlinien, mit denen der Zugriff auf Ressourcen gewährt und eingeschränkt werden kann:

## Erlauben Sie einem Benutzer, DB-Instances in einem AWS Konto zu erstellen
<a name="security_iam_id-based-policy-examples-create-db-instance-in-account"></a>

Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die es dem Konto mit der ID ermöglicht, DB-Instances für Ihr AWS Konto `123456789012` zu erstellen. Die Richtlinie setzt voraus, dass der Name der DB-Instance mit beginn `test`. Die neue DB-Instance muss auch die MySQL-Datenbank-Engine und die DB-Instance-Klasse `db.t2.micro` verwenden. Zusätzlich muss die neue DB-Instance eine Optionsgruppe und eine DB-Parametergruppe verwenden, die mit `default` beginnt und die Subnetzgruppe `default` verwendet.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowCreateDBInstanceOnly",
         "Effect": "Allow",
         "Action": [
            "rds:CreateDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:db:test*",
            "arn:aws:rds:*:123456789012:og:default*",
            "arn:aws:rds:*:123456789012:pg:default*",
            "arn:aws:rds:*:123456789012:subgrp:default"
         ],
         "Condition": {
            "StringEquals": {
               "rds:DatabaseEngine": "mysql",
               "rds:DatabaseClass": "db.t2.micro"
            }
         }
      }
   ]
}
```

------

Die Richtlinie ist ein einzelnes Statement, das die folgenden Berechtigungen für den -Benutzer bestimmt:
+ Die Richtlinie ermöglicht es dem Konto, mithilfe des Vorgangs [Create DBInstance API eine DB-Instance zu erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) (dies gilt auch für den [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI Befehl und den AWS-Managementkonsole).
+ Das Element `Resource` gibt an, dass der Benutzer auf oder mit Ressourcen Aktionen ausführen kann. Sie geben Ressourcen über einen Amazon Resources Name (ARN) an. Dieser ARN umfasst den Namen des Dienstes, zu dem die Ressource gehört (`rds`), die AWS Region (`*`gibt in diesem Beispiel eine beliebige Region an), die AWS Kontonummer (`123456789012`ist in diesem Beispiel die Kontonummer) und den Ressourcentyp. Weitere Informationen zum Erstellen finden ARNs Sie unter[Amazon-Ressourcennamen (ARN) in Amazon RDS](USER_Tagging.ARN.md).

  Das `Resource`-Element im Beispiel gibt für den Benutzer die folgenden richtlinienbezogenen Einschränkungen für die Ressourcen an:
  + Die DB-Instance-Kennung für die neue DB-Instance muss mit `test` beginnen (zum Beispiel `testCustomerData1`, `test-region2-data`).
  + Die Optionsgruppe für die neue DB-Instance muss mit beginne `default`.
  + Die DB-Parametergruppe für die neue DB-Instance muss mit beginne `default`.
  + Die Subnetzgruppe für die neue DB-Instance muss mit `default` beginnen.
+ Das `Condition`-Element gibt an, dass die DB-Engine MySQL sein muss und die DB-Instance-Klasse `db.t2.micro` sein muss. Das `Condition`-Element bestimmt die Bedingungen, wann eine Richtlinie wirksam sein soll. Sie können zusätzliche Berechtigungen oder Einschränkungen hinzufügen, indem Sie das `Condition`-Element verwenden. Weitere Informationen zur Angabe von Bedingungen finden Sie unter [Richtlinien-Bedingungsschlüssel für Amazon RDS](security_iam_service-with-iam.md#UsingWithRDS.IAM.Conditions). Dieses Beispiel zeigt die Bedingungen `rds:DatabaseEngine` und `rds:DatabaseClass`. Informationen zu den gültigen Bedingungswerten für `rds:DatabaseEngine` finden Sie in der Liste unter dem `Engine` Parameter in [Create DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Informationen zu den gültigen Bedingungswerten für `rds:DatabaseClass` finden Sie unter [Unterstützte DB-Engines für DB-Instance-Klassen](Concepts.DBInstanceClass.Support.md) . 

Das Element `Principal` ist in der Richtlinie nicht angegeben, da in identitätsbasierten Richtlinien die Angabe des Prinzipals als Empfänger der Berechtigung nicht erforderlich ist. Wenn Sie einem Benutzer eine Richtlinie zuweisen, ist der Benutzer automatisch der Prinzipal. Wird die Berechtigungsrichtlinie einer IAM-Rolle zugewiesen, erhält der in der Vertrauensrichtlinie der Rolle angegebene Prinzipal die Berechtigungen.

Um eine Liste von Amazon-RDS-Aktionen finden Sie unter [Von Amazon RDS definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) in der *Service-Autorisierungs-Referenz*

## Einem Benutzer eine beliebige Beschreibungsaktion für eine beliebige RDS-Ressource erlauben
<a name="IAMPolicyExamples-RDS-perform-describe-action"></a>

Die folgende Berechtigungsrichtlinie gewährt Berechtigungen für einen Benutzer, alle Aktionen auszuführen, die mit beginne `Describe`. Diese Aktionen zeigen Informationen zu einer RDS-Ressource, z. B. eine DB-Instance. Das Platzhalterzeichen (\$1) im `Resource`-Element zeigt an, dass die Aktionen für alle Amazon RDS-Ressourcen erlaubt sind, die dem Konto gehören. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowRDSDescribe",
         "Effect": "Allow",
         "Action": "rds:Describe*",
         "Resource": "*"
      }
   ]
}
```

------

## Einem Benutzer erlauben, eine DB-Instance zu erstellen, die spezifische DB-Parametergruppe und Subnetzgruppe verwendet.
<a name="security_iam_id-based-policy-examples-create-db-instance-specified-groups"></a>

Die folgenden Berechtigungsrichtlinien erteilen einem Benutzer die Erlaubnis, ausschließlich eine DB-Instance mit der DB-Parametergruppe `mydbpg` und der DB-Subnetzgruppe `mydbsubnetgroup` zu erstellen. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": "rds:CreateDBInstance",
         "Resource": [
            "arn:aws:rds:*:*:pg:mydbpg",
            "arn:aws:rds:*:*:subgrp:mydbsubnetgroup"
         ]
      }
   ]
}
```

------

## Erteilen von Berechtigungen für Aktionen in einer Ressource mit einem bestimmten Tag und zwei verschiedenen Tag-Werten
<a name="security_iam_id-based-policy-examples-grant-permissions-tags"></a>

Sie können in Ihrer identitätsbasierten Richtlinie Bedingungen für die Steuerung des Zugriffs auf Amazon RDS-Ressourcen auf der Basis von Tags verwenden. Die folgende Richtlinie erteilt die Berechtigung, die API-Operation `CreateDBSnapshot` auf DB-Instances durchzuführen, bei denen das Tag `stage` entweder auf `development` oder `test` festgelegt ist.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAnySnapshotName",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:snapshot:*"
      },
      {
         "Sid":"AllowDevTestToCreateSnapshot",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

Die folgende Richtlinie erteilt die Berechtigung, die API-Operation `ModifyDBInstance` auf DB-Instances durchzuführen, bei denen das Tag `stage` entweder auf `development` oder `test` festgelegt ist.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowChangingParameterOptionSecurityGroups",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:pg:*",
            "arn:aws:rds:*:123456789012:secgrp:*",
            "arn:aws:rds:*:123456789012:og:*"
         ]
      },
      {
         "Sid":"AllowDevTestToModifyInstance",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

## Verhindern, dass ein Benutzer eine DB-Instance löscht
<a name="IAMPolicyExamples-RDS-prevent-db-deletion"></a>

Die folgenden Berechtigungsrichtlinien erteilen Berechtigungen, um einen Benutzer davon abzuhalten, eine bestimmte DB-Instance zu löschen. Beispielsweise möchten Sie jedem Benutzer, der kein Administrator ist, verbieten, Ihre Produktions-DB-Instances zu löschen.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "DenyDelete1",
         "Effect": "Deny",
         "Action": "rds:DeleteDBInstance",
         "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance"
      }
   ]
}
```

------

## Verweigern des gesamten Zugriffs auf eine Ressource
<a name="IAMPolicyExamples-RDS-deny-all-access"></a>

Sie können den Zugriff auf eine Ressource explizit verweigern. Verweigerungsrichtlinien haben Vorrang vor Zulassungsrichtlinien. Die folgende Richtlinie verweigert einem Benutzer explizit die Möglichkeit, eine Ressource zu verwalten:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": "rds:*",
         "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb"
      }
   ]
}
```

------

# Beispielrichtlinien: Verwenden von Bedingungsschlüsseln
<a name="UsingWithRDS.IAM.Conditions.Examples"></a>

Im Folgenden finden Sie Beispiele für die Verwendung von Bedingungsschlüsseln in den IAM-Berechtigungsrichtlinien von Amazon RDS. 

## Beispiel 1: Erteilen der Berechtigung zum Erstellen einer DB-Instance mit einer bestimmten DB-Engine ohne Multi-AZ-Bereitstellung
<a name="w2aac58c48c33c21b5"></a>

Die folgende Richtlinie nutzt einen RDS-Bedingungsschlüssel und legt fest, dass ein Benutzer nur DB-Instances erstellen darf, die die MySQL-Datenbank-Engine und keine Multi-AZ-Bereitstellung verwenden. Das Element `Condition` gibt die Voraussetzung an, dass es sich um eine MySQL-Datenbank-Engine handeln muss. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowMySQLCreate",
         "Effect": "Allow",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "rds:DatabaseEngine": "mysql"
            },
            "Bool": {
               "rds:MultiAz": false
            }
         }
      }
   ]
}
```

------

## Beispiel 2: Explizites Verweigern der Berechtigung, DB-Instances für bestimmte DB-Instance-Klassen sowie DB-Instances, die bereitgestellte IOPS verwenden, zu erstellen
<a name="w2aac58c48c33c21b7"></a>

Die folgende Richtlinie verweigert explizit die Berechtigung, DB-Instances für die DB-Instance-Klassen `r3.8xlarge` und `m4.10xlarge` zu erstellen, die zu den größten und teuersten DB-Instance-Klassen gehören. Diese Richtlinie hält Benutzer ebenfalls davon ab, DB-Instances zu erstellen, die bereitgestellte IOPS verwenden, durch die zusätzliche Kosten entstehen. 

Eine explizit verweigerte Berechtigung überschreibt alle anderen erteilten Berechtigungen. So wird sichergestellt, dass Identitäten nicht aus Versehen eine Berechtigung erhalten, die Sie nie erteilen wollten.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "DenyLargeCreate",
         "Effect": "Deny",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "rds:DatabaseClass": [
                  "db.r3.8xlarge",
                  "db.m4.10xlarge"
               ]
            }
         }
      },
      {
         "Sid": "DenyPIOPSCreate",
         "Effect": "Deny",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "NumericNotEquals": {
               "rds:Piops": "0"
            }
         }
      }
   ]
}
```

------

## Beispiel 3: Einschränken des Satzes von Tag-Schlüsseln und Werten, mit dem eine Ressource mit einem Tag versehen werden kann
<a name="w2aac58c48c33c21b9"></a>

Die folgende Richtlinie verwendet einen RDS-Bedingungsschlüssel und erlaubt es, ein Tag mit dem Schlüssel `stage` einer Ressource mit den Werten `test`, `qa` und `production` hinzuzufügen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowTagEdits",
      "Effect": "Allow",
      "Action": [
        "rds:AddTagsToResource",
        "rds:RemoveTagsFromResource"
      ],
      "Resource": "arn:aws:rds:us-east-1:123456789012:db:db-123456",
      "Condition": {
        "StringEquals": {
          "rds:req-tag/stage": [
            "test",
            "qa",
            "production"
          ]
        }
      }
    }
  ]
}
```

------

# Festlegen von Bedingungen: Verwenden von benutzerdefinierten Tags
<a name="UsingWithRDS.IAM.SpecifyingCustomTags"></a>

Amazon RDS bietet Unterstützung für das Festlegen von Bedingungen in einer IAM-Richtlinie mithilfe von benutzerdefinierten Tags.

Angenommen, Sie fügen Ihren DB-Instances ein Tag namens `environment` mit Werten wie `beta`, `staging`, `production` und so weiter hinzu. Wenn dies der Fall ist, können Sie eine Richtlinie erstellen, die bestimmte Benutzer basierend auf dem Tag-Wert `environment` auf DB-Instances beschränkt.

**Anmerkung**  
Bei benutzerdefinierten Tag-Kennungen muss auf Groß- und Kleinschreibung geachtet werden.

In der folgenden Tabelle werden die RDS-Tag-Kennungen aufgeführt, die Sie in einem `Condition`-Element verwenden können. 

<a name="rds-iam-condition-tag-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.SpecifyingCustomTags.html)

Die Syntax für eine benutzerdefinierte Tag-Bedingung sieht wie folgt aus:

`"Condition":{"StringEquals":{"rds:rds-tag-identifier/tag-name": ["value"]} }` 

Beispielsweise gilt das folgende `Condition`-Element für DB-Instances mit dem Tag `environment` und dem Tag-Wert `production`. 

` "Condition":{"StringEquals":{"rds:db-tag/environment": ["production"]} } ` 

Weitere Informationen über die Erstellung von Tags finden Sie unter [Taggen von Amazon RDS-Ressourcen](USER_Tagging.md).

**Wichtig**  
Wenn Sie den Zugriff auf Ihre RDS-Ressourcen mithilfe von Tags verwalten, empfehlen wir, den Zugriff auf die Tags Ihrer RDS-Ressourcen zu sichern. Sie können den Zugriff auf Tags verwalten, indem Sie Richtlinien für die Aktionen `AddTagsToResource` und `RemoveTagsFromResource` erstellen. Beispielsweise verweigert die folgende Richtlinie den Benutzern das Hinzufügen und Entfernen von Tags für alle Ressourcen. Sie können anschließend Richtlinien erstellen, die es bestimmten Benutzern ermöglichen, Tags hinzuzufügen oder zu entfernen.   

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"DenyTagUpdates",
         "Effect":"Deny",
         "Action":[
            "rds:AddTagsToResource",
            "rds:RemoveTagsFromResource"
         ],
         "Resource":"*"
      }
   ]
}
```

Um eine Liste von Amazon-RDS-Aktionen finden Sie unter [Von Amazon RDS definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) in der *Service-Autorisierungs-Referenz*

## Beispielrichtlinien: Verwenden von benutzerdefinierten Tags
<a name="UsingWithRDS.IAM.Conditions.Tags.Examples"></a>

Im Folgenden finden Sie Beispiele für die Verwendung von benutzerdefinierten Tags in den IAM-Berechtigungsrichtlinien in Amazon RDS. Weitere Informationen zum Hinzufügen von Tags zu einer Amazon RDS-Ressource finden Sie unter [Amazon-Ressourcennamen (ARN) in Amazon RDS](USER_Tagging.ARN.md). 

**Anmerkung**  
Alle Beispiele verwenden die Region US-West-2 und enthalten ein fiktives Konto. IDs

### Beispiel 1: Erteilen von Berechtigungen für Aktionen in einer Ressource mit einem bestimmten Tag und zwei verschiedenen Tag-Werten
<a name="w2aac58c48c33c23c29b6"></a>

Die folgende Richtlinie erteilt die Berechtigung, die API-Operation `CreateDBSnapshot` auf DB-Instances durchzuführen, bei denen das Tag `stage` entweder auf `development` oder `test` festgelegt ist.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAnySnapshotName",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:snapshot:*"
      },
      {
         "Sid":"AllowDevTestToCreateSnapshot",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

Die folgende Richtlinie erteilt die Berechtigung, die API-Operation `ModifyDBInstance` auf DB-Instances durchzuführen, bei denen das Tag `stage` entweder auf `development` oder `test` festgelegt ist.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowChangingParameterOptionSecurityGroups",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
            ],
          "Resource": [
            "arn:aws:rds:*:123456789012:pg:*",
            "arn:aws:rds:*:123456789012:secgrp:*",
            "arn:aws:rds:*:123456789012:og:*"
            ]
       },
       {
         "Sid":"AllowDevTestToModifyInstance",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
            ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
               "rds:db-tag/stage":[
                  "development",
                  "test"
                  ]
               }
            }
       }
    ]
}
```

------

### Bespiel 2: Explizites Verweigern der Berechtigung zum Erstellen einer DB-Instance, die bestimmte DB-Parametergruppen verwendet
<a name="w2aac58c48c33c23c29b8"></a>

Die folgende Richtlinie verweigert explizit die Berechtigung, eine DB-Instance zu erstellen, die DB-Parametergruppen mit bestimmten Tag-Werten verwendet. Sie können diese Richtlinie anwenden, wenn stets eine bestimmte kundenseitig erstellte DB-Parametergruppe beim Erstellen von DB-Instances verwendet werden muss. Die Richtlinien mit `Deny` werden meist genutzt, um den von einer allgemeineren Richtlinie erteilten Zugriff einzuschränken.

Eine explizit verweigerte Berechtigung überschreibt alle anderen erteilten Berechtigungen. So wird sichergestellt, dass Identitäten nicht aus Versehen eine Berechtigung erhalten, die Sie nie erteilen wollten.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"DenyProductionCreate",
         "Effect":"Deny",
         "Action":"rds:CreateDBInstance",
         "Resource":"arn:aws:rds:*:123456789012:pg:*",
         "Condition":{
            "StringEquals":{
               "rds:pg-tag/usage":"prod"
            }
         }
      }
   ]
}
```

------

### Beispiel 3: Erteilen von Berechtigungen für Aktionen auf einer DB-Instance mit einem Instance-Namen, der den Benutzernamen als Präfix enthält
<a name="w2aac58c48c33c23c29c10"></a>

Die folgende Richtlinie erteilt die Berechtigung, eine beliebige API (mit Ausnahme von `AddTagsToResource` oder `RemoveTagsFromResource`) auf einer DB-Instance aufzurufen, deren Instance-Name den Benutzernamen als Präfix aufweist und das Tag `stage` mit dem Wert `devo` oder kein Tag `stage` enthält.

Die Zeile `Resource` in der Richtlinie kennzeichnet eine Ressource durch den Amazon-Ressourcennamen (ARN). Weitere Informationen zur Verwendung von Amazon RDS finden Sie unter[Amazon-Ressourcennamen (ARN) in Amazon RDS](USER_Tagging.ARN.md). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowFullDevAccessNoTags",
         "Effect":"Allow",
         "NotAction":[
            "rds:AddTagsToResource",
            "rds:RemoveTagsFromResource"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:${aws:username}*",
         "Condition":{
            "StringEqualsIfExists":{
               "rds:db-tag/stage":"devo"
            }
         }
      }
   ]
}
```

------

# Berechtigung zum Markieren von Amazon RDS-Ressourcen während der Erstellung erteilen
<a name="security_iam_id-based-policy-examples-grant-permissions-tags-on-create"></a>

Einige RDS-API-Vorgänge erlauben es Ihnen, bei der Erstellung der Ressource Tags anzugeben. Sie können Resource-Tags (Markierungen) verwenden, um eine attributbasierte Steuerung (ABAC) zu implementieren. Weitere Informationen finden Sie unter [Wozu dient ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)? AWS und [Steuern des Zugriffs auf AWS Ressourcen mithilfe von Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

Damit Benutzer Ressourcen bei der Erstellung kennzeichnen können, benötigen sie die Berechtigungen zum Verwenden der Aktion, die die Ressource wie `rds:CreateDBInstance` erstellt. Wenn Tags in der Erstellungsaktion angegeben werden, führt RDS eine zusätzliche Autorisierung für die Aktion `rds:AddTagsToResource` aus, um die Berechtigungen der Benutzer zum Erstellen von Tags zu überprüfen. Daher benötigen die Benutzer außerdem die expliziten Berechtigungen zum Verwenden der `rds:AddTagsToResource`-Aktion.

In der IAM-Richtliniendefinition für die `rds:AddTagsToResource`-Aktion können Sie mit dem Bedingungsschlüssel `aws:RequestTag` Tags in einer Anforderung zum Kennzeichnen einer Ressource anfordern.

Mithilfe der folgenden Richtlinie können Benutzer beispielsweise DB-Instances erstellen und Tags während der DB-Instance-Erstellung anwenden, jedoch nur mit bestimmten Tag-Schlüsseln (`environment` oder `project`):

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "rds:CreateDBInstance"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "rds:AddTagsToResource"
           ],
           "Resource": "*",
           "Condition": {
               "StringEquals": {
                   "aws:RequestTag/environment": ["production", "development"],
                   "aws:RequestTag/project": ["dataanalytics", "webapp"]
               },
               "ForAllValues:StringEquals": {
                   "aws:TagKeys": ["environment", "project"]
               }
           }
       }
   ]
}
```

------

Diese Richtlinie lehnt jede Anforderung zum Erstellen einer DB-Instance ab, die andere Tags als `environment` oder `project` enthält oder keines dieser Tags angibt. Darüber hinaus müssen Benutzer Werte für die Tags angeben, die den zulässigen Werten in der Richtlinie entsprechen.

Mit der folgenden Richtlinie können Benutzer DB-Cluster erstellen und dabei beliebige Tags anwenden, mit Ausnahme des Tags `environment=prod`:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "rds:CreateDBCluster"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "rds:AddTagsToResource"
           ],
           "Resource": "*",
           "Condition": {
               "StringNotEquals": {
                   "aws:RequestTag/environment": "prod"
               }
           }
       }
   ]
}
```

------

## Unterstützte RDS-API-Aktionen für das Tagging bei der Erstellung
<a name="security_iam_id-based-policy-examples-supported-rds-api-actions-tagging-creation"></a>

Die folgenden RDS-API-Aktionen unterstützen Tagging beim Erstellen einer Ressource. Für diese Aktionen können Sie beim Erstellen der Ressource Tags angeben:
+ `CreateBlueGreenDeployment`
+ `CreateCustomDBEngineVersion`
+ `CreateDBCluster`
+ `CreateDBClusterEndpoint`
+ `CreateDBClusterParameterGroup`
+ `CreateDBClusterSnapshot`
+ `CreateDBInstance`
+ `CreateDBInstanceReadReplica`
+ `CreateDBParameterGroup`
+ `CreateDBProxy`
+ `CreateDBProxyEndpoint`
+ `CreateDBSecurityGroup`
+ `CreateDBShardGroup`
+ `CreateDBSnapshot`
+ `CreateDBSubnetGroup`
+ `CreateEventSubscription`
+ `CreateGlobalCluster`
+ `CreateIntegration`
+ `CreateOptionGroup`
+ `CreateTenantDatabase`
+ `CopyDBClusterParameterGroup`
+ `CopyDBClusterSnapshot`
+ `CopyDBParameterGroup`
+ `CopyDBSnapshot`
+ `CopyOptionGroup`
+ `RestoreDBClusterFromS3`
+ `RestoreDBClusterFromSnapshot`
+ `RestoreDBClusterToPointInTime`
+ `RestoreDBInstanceFromDBSnapshot`
+ `RestoreDBInstanceFromS3`
+ `RestoreDBInstanceToPointInTime`
+ `PurchaseReservedDBInstancesOffering`

Wenn Sie die API AWS CLI oder verwenden, um eine Ressource mit Tags zu erstellen, wird der `Tags` Parameter verwendet, um während der Erstellung Tags auf Ressourcen anzuwenden.

Wenn das Tagging bei diesen API-Aktionen fehlschlägt, wird die Ressource nicht erstellt und die Anforderung schlägt mit einem Fehler fehl. Dadurch wird sichergestellt, dass Ressourcen entweder mit Tags oder gar nicht erstellt werden, was wiederum verhindert, dass Ressourcen ohne die vorgesehenen Tags erstellt werden.

# AWS verwaltete Richtlinien für Amazon RDS
<a name="rds-security-iam-awsmanpol"></a>

Um Berechtigungen zu Berechtigungssätzen und Rollen hinzuzufügen, ist es einfacher, AWS verwaltete Richtlinien zu verwenden, als Richtlinien selbst zu schreiben. Es erfordert Zeit und Fachwissen, um [von Kunden verwaltete IAM-Richtlinien zu erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html), die Ihrem Team nur die benötigten Berechtigungen bieten. Um schnell loszulegen, können Sie unsere AWS verwalteten Richtlinien verwenden. Diese Richtlinien decken allgemeine Anwendungsfälle ab und sind in Ihrem AWS-Konto verfügbar. Weitere Informationen zu AWS verwalteten Richtlinien finden Sie im *IAM-Benutzerhandbuch* unter [AWS Verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies).

AWS-Services verwalten und aktualisieren Sie AWS verwaltete Richtlinien. Sie können die Berechtigungen in AWS verwalteten Richtlinien nicht ändern. Dienste fügen einer AWS verwalteten Richtlinie gelegentlich zusätzliche Berechtigungen hinzu, um neue Funktionen zu unterstützen. Diese Art von Update betrifft alle Identitäten (Berechtigungssätze und Rollen), denen die Richtlinie angehängt ist. Es ist sehr wahrscheinlich, dass Dienste eine AWS verwaltete Richtlinie aktualisieren, wenn eine neue Funktion eingeführt wird oder wenn neue Operationen verfügbar werden. Dienste entfernen keine Berechtigungen aus einer AWS verwalteten Richtlinie, sodass durch Richtlinienaktualisierungen Ihre bestehenden Berechtigungen nicht beeinträchtigt werden.

 AWS Unterstützt außerdem verwaltete Richtlinien für Jobfunktionen, die sich über mehrere Dienste erstrecken. Die `ReadOnlyAccess` AWS verwaltete Richtlinie bietet beispielsweise nur Lesezugriff auf alle Ressourcen AWS-Services . Wenn ein Dienst eine neue Funktion startet, werden nur Leseberechtigungen für neue Operationen und Ressourcen AWS hinzugefügt. Eine Liste und Beschreibungen der Richtlinien für Auftragsfunktionen finden Sie in [Verwaltete AWS -Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) im *IAM-Leitfaden*.

**Topics**
+ [AWS verwaltete Richtlinie: Amazon RDSRead OnlyAccess](#rds-security-iam-awsmanpol-AmazonRDSReadOnlyAccess)
+ [AWS verwaltete Richtlinie: Amazon RDSFull Access](#rds-security-iam-awsmanpol-AmazonRDSFullAccess)
+ [AWS verwaltete Richtlinie: Amazon RDSData FullAccess](#rds-security-iam-awsmanpol-AmazonRDSDataFullAccess)
+ [AWS verwaltete Richtlinie: Amazon RDSEnhanced MonitoringRole](#rds-security-iam-awsmanpol-AmazonRDSEnhancedMonitoringRole)
+ [AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsReadOnly](#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly)
+ [AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsFullAccess](#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)
+ [AWS verwaltete Richtlinie: Amazon RDSDirectory ServiceAccess](#rds-security-iam-awsmanpol-AmazonRDSDirectoryServiceAccess)
+ [AWS verwaltete Richtlinie: Amazon RDSService RolePolicy](#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy)
+ [AWS verwaltete Richtlinie: Amazon RDSCustom ServiceRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSCustomServiceRolePolicy)
+ [AWS verwaltete Richtlinie: Amazon RDSCustom Instance ProfileRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy)
+ [AWS verwaltete Richtlinie: Amazon RDSPreview ServiceRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy)
+ [AWS verwaltete Richtlinie: Amazon RDSBeta ServiceRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy)

## AWS verwaltete Richtlinie: Amazon RDSRead OnlyAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSReadOnlyAccess"></a>

Diese Richtlinie ermöglicht den schreibgeschützten Zugriff auf Amazon RDS über die. AWS-Managementkonsole

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `rds` – Ermöglicht es Prinzipalen, Amazon-RDS-Ressourcen zu beschreiben und die Tags für Amazon-RDS-Ressourcen aufzulisten.
+ `cloudwatch`— Ermöglicht Prinzipalen das Abrufen von CloudWatch Amazon-Metrikstatistiken.
+ `ec2` – Ermöglicht es Prinzipalen, Availability Zones und Netzwerkressourcen zu beschreiben.
+ `logs`— Ermöglicht Prinzipalen, Logs, CloudWatch Log-Streams von Log-Gruppen zu beschreiben und CloudWatch Log-Log-Ereignisse abzurufen.
+ `devops-guru`— Ermöglicht Prinzipalen die Beschreibung von Ressourcen, die von Amazon DevOps Guru abgedeckt werden, was entweder durch CloudFormation Stacknamen oder Ressourcen-Tags spezifiziert wird.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSRead OnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSReadOnlyAccess.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSFull Access
<a name="rds-security-iam-awsmanpol-AmazonRDSFullAccess"></a>

Diese Richtlinie bietet vollen Zugriff auf Amazon RDS über die AWS-Managementkonsole.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `rds` – Ermöglicht Prinzipalen Vollzugriff auf alle Amazon RDS.
+ `application-autoscaling` – Ermöglicht es Prinzipalen, Ziele und Richtlinien zur Skalierung der automatischen Anwendungsskalierung zu beschreiben und zu verwalten.
+ `cloudwatch`— Ermöglicht es Schulleitern, CloudWatch metrische Statistiken abzurufen und Alarme zu verwalten CloudWatch .
+ `ec2` – Ermöglicht es Prinzipalen, Availability Zones und Netzwerkressourcen zu beschreiben.
+ `logs`— Ermöglicht Prinzipalen die Beschreibung von Logs, CloudWatch Log-Streams von Log-Gruppen und das Abrufen von CloudWatch Log-Log-Ereignissen.
+ `outposts`— Ermöglicht Prinzipalen das Abrufen von AWS Outposts Instanztypen.
+ `pi` – Ermöglicht es Prinzipalen, Performance-Insights-Metriken abzurufen.
+ `sns` – Ermöglicht es Prinzipalen, Amazon Simple Notification Service (Amazon SNS)-Abonnements und -Themen zu abonnieren und Amazon-SNS-Nachrichten zu veröffentlichen.
+ `devops-guru`— Ermöglicht Prinzipalen die Beschreibung von Ressourcen, die von Amazon DevOps Guru abgedeckt werden, was entweder durch CloudFormation Stacknamen oder Ressourcen-Tags spezifiziert wird.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie unter [Amazon RDSFull Access](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSFullAccess.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSData FullAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSDataFullAccess"></a>

Diese Richtlinie ermöglicht den vollen Zugriff auf die Nutzung der Daten-API und des Abfrage-Editors für Aurora Serverless Cluster in einem bestimmten Bereich AWS-Konto. Diese Richtlinie ermöglicht es AWS-Konto , den Wert eines Geheimnisses von abzurufen AWS Secrets Manager. 

Sie können die `AmazonRDSDataFullAccess`-Richtlinie an Ihre IAM-Identitäten anfügen.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `dbqms` – Ermöglicht es Prinzipalen, auf Abfragen zuzugreifen, Abfragen zu erstellen, zu löschen, zu beschreiben und zu aktualisieren. Der Database Query Metadata Service (`dbqms`) ist ein reiner Dienst für interne Daten. Es bietet Ihre letzten und gespeicherten Abfragen für den Abfrage-Editor auf dem AWS-Managementkonsole für mehrere AWS-Services, einschließlich Amazon RDS.
+ `rds-data` – Ermöglicht es Prinzipalen, SQL-Anweisungen in Aurora Serverless-Datenbanken auszuführen.
+ `secretsmanager`— Ermöglicht es Prinzipalen, den Wert eines Geheimnisses von AWS Secrets Manager abzurufen.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSData FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSDataFullAccess.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSEnhanced MonitoringRole
<a name="rds-security-iam-awsmanpol-AmazonRDSEnhancedMonitoringRole"></a>

Diese Richtlinie bietet Zugriff auf Amazon CloudWatch Logs for Amazon RDS Enhanced Monitoring.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `logs`— Ermöglicht es Prinzipalen, CloudWatch Protokollgruppen und Aufbewahrungsrichtlinien zu erstellen und Log-Log-Streams von CloudWatch Protokollgruppen zu erstellen und zu beschreiben. Außerdem können Prinzipale Logs und CloudWatch Protokollereignisse speichern und abrufen.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSEnhanced MonitoringRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSEnhancedMonitoringRole.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsReadOnly
<a name="rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly"></a>

Diese Richtlinie bietet schreibgeschützten Zugriff auf Erkenntnisse zur Amazon-RDS-Leistung für Amazon-RDS-DB-Instances und Amazon-Aurora-DB-Cluster.

Die Richtlinie enthält jetzt `Sid` (Anweisungs-ID) als Bezeichner für die Richtlinienanweisung. 

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `rds` – Ermöglicht es Prinzipalen, Amazon-RDS-DB-Instances und Amazon-Aurora-DB-Cluster zu beschreiben.
+ `pi` – Ermöglicht es Prinzipalen, Aufrufe an die Amazon-RDS-Performance-Insights-API zu tätigen und auf Performance-Insights-Metriken zuzugreifen

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSPerformance InsightsReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsFullAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess"></a>

Diese Richtlinie bietet Vollzugriff auf Erkenntnisse zur Amazon-RDS-Leistung für DB-Instances von Amazon RDS und DB-Clustern von Amazon Aurora.

Die Richtlinie enthält jetzt `Sid` (Anweisungs-ID) als Bezeichner für die Richtlinienanweisung. 

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `rds` – Ermöglicht es Prinzipalen, Amazon-RDS-DB-Instances und Amazon-Aurora-DB-Cluster zu beschreiben.
+ `pi` – Ermöglicht es Prinzipalen, die API von Erkenntnissen zur Amazon-RDS-Leistung aufzurufen und Leistungsanalyseberichte zu erstellen, anzusehen und zu löschen.
+ `cloudwatch`— Ermöglicht Prinzipalen, alle CloudWatch Amazon-Metriken aufzulisten und Metrikdaten und Statistiken abzurufen.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSPerformance InsightsFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSDirectory ServiceAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSDirectoryServiceAccess"></a>

Diese Richtlinie ermöglicht es Amazon RDS, Aufrufe an Directory Service zu tätigen.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgende Berechtigung:
+ `ds`— Ermöglicht es Prinzipalen, Directory Service Verzeichnisse zu beschreiben und die Autorisierung von Directory Service Verzeichnissen zu kontrollieren.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSDirectory ServiceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSDirectoryServiceAccess.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSService RolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy"></a>

Sie können die `AmazonRDSServiceRolePolicy`-Richtlinie Ihren IAM-Entitäten nicht anfügen. Diese Richtlinie ist mit einer servicegebundenen Rolle verknüpft, die es Amazon RDS ermöglicht, Aktionen in Ihrem Namen durchzuführen. Weitere Informationen finden Sie unter [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions).

## AWS verwaltete Richtlinie: Amazon RDSCustom ServiceRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSCustomServiceRolePolicy"></a>

Sie können die `AmazonRDSCustomServiceRolePolicy`-Richtlinie Ihren IAM-Entitäten nicht anfügen. Diese Richtlinie ist mit einer servicebezogenen Rolle verknüpft, die es Amazon RDS ermöglicht, AWS Dienste im Namen Ihrer RDS-DB-Ressourcen aufzurufen.

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `ec2`‐ Ermöglicht RDS Custom, Backup-Operationen auf der DB-Instance durchzuführen, die point-in-time Wiederherstellungsfunktionen bietet.
+ `secretsmanager` – Ermöglicht RDS Custom die Verwaltung von DB-Instance-spezifischen Secrets, die von RDS Custom erstellt wurden.
+ `cloudwatch`‐ Ermöglicht RDS Custom, Metriken und Protokolle der DB-Instance CloudWatch über den CloudWatch Agenten hochzuladen.
+ `events`, `sqs` – Ermöglicht RDS Custom das Senden und Empfangen von Statusinformationen über die DB-Instance.
+ `cloudtrail` – Ermöglicht RDS Custom, Änderungsereignisse über die DB-Instance zu empfangen
+ `servicequotas` – Ermöglicht RDS Custom das Lesen von Service Quotas, die sich auf die DB-Instance beziehen
+ `ssm` – Ermöglicht RDS Custom, die der DB-Instance zugrunde liegende EC2-Instance zu verwalten
+ `rds` – Ermöglicht RDS Custom, RDS-Ressourcen für Ihre DB-Instance zu verwalten
+ `iam`– Ermöglicht RDS Custom, das Instance-Profil zu validieren und an die einer DB-Instance zugrunde liegende EC2-Instance anzufügen.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSCustom ServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomServiceRolePolicy.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSCustom Instance ProfileRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy"></a>

Sie sollten `AmazonRDSCustomInstanceProfileRolePolicy` nicht an Ihre IAM-Entitäten anhängen. Eine Anfügung sollte nur an eine Instance-Profilrolle erfolgen, mit der Ihrer Amazon-RDS-Custom-DB-Instance Berechtigungen zur Durchführung verschiedener Automatisierungsaktionen und Datenbankverwaltungsaufgaben erteilt werden. Übergeben Sie das Instance-Profil während der Erstellung der benutzerdefinierten RDS-Instance als `custom-iam-instance-profile`-Parameter, und RDS Custom ordnet dieses Instance-Profil Ihrer DB-Instance zu.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `ssm`,`ssmmessages`, `ec2messages` – Ermöglicht RDS Custom die Kommunikation, Ausführung der Automatisierung und Wartung von Agenten auf der DB-Instance über Systems Manager.
+ `ec2`, `s3` ‐ Ermöglicht RDS Custom, Backup-Operationen auf der DB-Instance durchzuführen, die point-in-time Wiederherstellungsfunktionen bietet.
+ `secretsmanager` – Ermöglicht RDS Custom die Verwaltung von DB-Instance-spezifischen Secrets, die von RDS Custom erstellt wurden.
+ `cloudwatch`, `logs` ‐ Ermöglicht RDS Custom, Metriken und Protokolle der DB-Instance CloudWatch über den CloudWatch Agenten hochzuladen.
+ `events`, `sqs` – Ermöglicht RDS Custom das Senden und Empfangen von Statusinformationen über die DB-Instance.
+ `kms` – Ermöglicht RDS Custom die Verwendung eines Instance-spezifischen KMS-Schlüssels zur Verschlüsselung von Secrets und S3-Objekten, die von RDS Custom verwaltet werden.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie unter [Amazon RDSCustom Instance ProfileRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomInstanceProfileRolePolicy.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSPreview ServiceRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy"></a>

Sie sollten `AmazonRDSPreviewServiceRolePolicy` nicht an Ihre IAM-Entitäten anhängen. Diese Richtlinie ist mit einer servicebezogenen Rolle verknüpft, die es Amazon RDS ermöglicht, AWS Dienste im Namen Ihrer RDS-DB-Ressourcen aufzurufen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rolle für Amazon RDS Preview](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-rdspreview). 

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `ec2` – Ermöglicht es Prinzipalen, Availability Zones und Netzwerkressourcen zu beschreiben.
+ `secretsmanager`— Ermöglicht es Prinzipalen, den Wert eines Geheimnisses von abzurufen. AWS Secrets Manager
+ `cloudwatch`, `logs` ‐ Ermöglicht Amazon RDS das Hochladen von DB-Instance-Metriken und Protokollen CloudWatch über den CloudWatch Agenten.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSPreview ServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPreviewServiceRolePolicy.html) im *AWS Managed Policy Reference Guide*.

## AWS verwaltete Richtlinie: Amazon RDSBeta ServiceRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy"></a>

Sie sollten `AmazonRDSBetaServiceRolePolicy` nicht an Ihre IAM-Entitäten anhängen. Diese Richtlinie ist mit einer servicebezogenen Rolle verknüpft, die es Amazon RDS ermöglicht, AWS Dienste im Namen Ihrer RDS-DB-Ressourcen aufzurufen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Beta](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-rdsbeta).

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `ec2`‐ Ermöglicht Amazon RDS, Backup-Operationen auf der DB-Instance durchzuführen, die point-in-time Wiederherstellungsfunktionen bietet.
+ `secretsmanager` – Ermöglicht Amazon RDS die Verwaltung von DB-Instance-spezifischen Secrets, die von Amazon RDS erstellt wurden.
+ `cloudwatch`, `logs` ‐ Ermöglicht Amazon RDS das Hochladen von DB-Instance-Metriken und Protokollen CloudWatch über den CloudWatch Agenten.

Weitere Informationen zu dieser Richtlinie, einschließlich des JSON-Richtliniendokuments, finden Sie [bei Amazon RDSBeta ServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSBetaServiceRolePolicy.html) im *AWS Managed Policy Reference Guide*.

# Änderungen von Amazon RDS an von AWS verwalteten Richtlinien
<a name="rds-manpol-updates"></a>

Anzeigen von Details zu Aktualisierungen für AWS-verwaltete Richtlinien für Amazon RDS, seit dieser Dienst mit der Verfolgung dieser Änderungen begonnen hat. Um automatische Warnungen über Änderungen an dieser Seite zu erhalten, abonnieren Sie den RSS-Feed auf der Amazon-RDS-[Dokumentverlauf](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/WhatsNew.html)-Seite.




| Änderung | Beschreibung | Datum | 
| --- | --- | --- | 
| [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat neue Berechtigungen für die `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` aktualisiert. Die Aktualisierung entfernt `ec2:CopySnapshot` aus einer Anweisung und fügt zwei neue Anweisungen für Quell- und Ziel-Snapshot-Berechtigungen hinzu. Diese Updates entsprechen einer [Änderung des Autorisierungsverhaltens von EBS CopySnapshot](https://aws.amazon.com/blogs/storage/enhancing-resource-level-permissions-for-copying-amazon-ebs-snapshots/), wobei die effektiven Berechtigungen unverändert bleiben. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  | 7. August 2025 | 
| [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese Berechtigungen ermöglichen RDS Custom die Verwaltung von EC2-Schlüsselpaaren und die Integration von RDS Custom in Amazon SQS. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  | 25. März 2025 | 
|  [AWS verwaltete Richtlinie: Amazon RDSCustom Instance ProfileRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat der verwalteten Richtlinie `AmazonRDSCustomInstanceProfileRolePolicy` neue Berechtigungen hinzugefügt, um die Verwendung von verwalteten Geheimnissen in RDS Custom auf einer RDS-Custom-Instance zu ermöglichen. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Amazon RDSCustom Instance ProfileRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy).  | 20. März 2025 | 
| [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen erlauben RDS Custom, Secrets Manager aufzulisten und wiederherzustellen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  | 6. März 2025 | 
| [AWS verwaltete Richtlinie: Amazon RDSPreview ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat die Berechtigung `sns:Publish` aus der `AmazonRDSPreviewServiceRolePolicy` der serviceverknüpften Rolle `AWSServiceRoleForRDSPreview` entfernt. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Amazon RDSPreview ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy). | 7. August 2024 | 
| [AWS verwaltete Richtlinie: Amazon RDSBeta ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat die Berechtigung `sns:Publish` aus der `AmazonRDSBetaServiceRolePolicy` der serviceverknüpften Rolle `AWSServiceRoleForRDSBeta` entfernt. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Amazon RDSBeta ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy).  | 7. August 2024 | 
| [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Die Berechtigungen ermöglichen RDS Custom die Kommunikation mit Amazon-RDS-Services in einer anderen AWS-Region und zum Kopieren von EC2-Images. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  | 18. Juli 2024 | 
| [AWS verwaltete Richtlinie: Amazon RDSService RolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat die Berechtigung `sns:Publish` aus der `AmazonRDSServiceRolePolicy` der serviceverknüpften Rolle ` AWSServiceRoleForRDS` entfernt. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Amazon RDSService RolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy).  | 2. Juli 2024 | 
| [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neue Berechtigung ermöglicht es RDS Custom, einer RDS-Custom-Instance eine Service-Rolle als Instance-Profil zuzuordnen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  | 19. April 2024 | 
| [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Aktualisierung auf eine bestehende Richtlinie |  Amazon RDS hat der `AmazonRDSCustomServiceRolePolicy` der serviceverknüpften Rolle `AWSServiceRoleForRDSCustom` eine neue Berechtigung hinzugefügt, damit RDS Custom für SQL Server den zugrunde liegenden Datenbank-Host-Instance-Typ ändern kann. RDS hat außerdem die Berechtigung `ec2:DescribeInstanceTypes` hinzugefügt, Informationen zum Instance-Typ für den Datenbank-Host abzurufen. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md).  | 8. April 2024 | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Neue Richtlinie  | Amazon RDS hat die neue verwaltete Richtlinie AmazonRDSCustomInstanceProfileRolePolicy hinzugefügt, mit der RDS Custom Automatisierungsaktionen und Datenbankverwaltungsaufgaben über ein EC2-Instance-Profil ausführen kann. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md). | 27. Februar 2024 | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie | Amazon RDS hat neue Anweisungs-IDs zur `AmazonRDSServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDS` hinzugefügt. Weitere Informationen finden Sie unter [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions).  |  19. Januar 2024  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Aktualisierung auf bestehende Richtlinien  |  Die von `AmazonRDSPerformanceInsightsReadOnly` und `AmazonRDSPerformanceInsightsFullAccess` verwalteten Richtlinien enthalten jetzt `Sid` (Statement-ID) als Bezeichner in der Richtlinienerklärung.  Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsReadOnly](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly) und [AWS verwaltete Richtlinie: Amazon RDSPerformance InsightsFullAccess](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)   |  23. Oktober 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen erlauben RDS Custom für Oracle, verwaltete EventBridge-Regeln zu erstellen, zu ändern und zu löschen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  20. September 2023  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat der verwalteten `AmazonRDSFullAccess`-Richtlinie neue Berechtigungen hinzugefügt. Mit den Berechtigungen können Sie den Leistungsanalysebericht für einen bestimmten Zeitraum erstellen, anzeigen und löschen. Weitere Informationen zur Konfiguration von Zugriffsrichtlinien für Performance Insights finden Sie unter [Konfigurieren von Zugriffsrichtlinien für Performance Insights](USER_PerfInsights.access-control.md).  |  17. August 2023  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Neue Richtlinie und Aktualisierung der bestehenden Richtlinie  |  Amazon RDS hat der verwalteten `AmazonRDSPerformanceInsightsReadOnly`-Richtlinie neue Berechtigungen und eine neue verwaltete Richtlinie mit dem Namen `AmazonRDSPerformanceInsightsFullAccess` hinzugefügt. Diese Berechtigungen ermöglichen es Ihnen, Performance Insights für einen bestimmten Zeitraum zu analysieren, sich die Analyseergebnisse zusammen mit den Empfehlungen anzusehen und die Berichte zu löschen. Weitere Informationen zur Konfiguration von Zugriffsrichtlinien für Performance Insights finden Sie unter [Konfigurieren von Zugriffsrichtlinien für Performance Insights](USER_PerfInsights.access-control.md).  |  16. August 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen erlauben RDS Custom für Oracle, DB-Snapshots zu verwenden. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  23. Juni 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen erlauben RDS Custom für Oracle, DB-Snapshots zu verwenden. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  23. Juni 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen erlauben RDS Custom, Netzwerkschnittstellen zu erstellen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  30. Mai 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. Diese neuen Berechtigungen ermöglichen es RDS Custom, Amazon EBS aufzurufen, um das Speicherkontingent zu überprüfen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  18. April 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS Custom hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` zur Integration in Amazon SQS hinzugefügt. RDS Custom erfordert die Integration mit Amazon SQS, um SQS-Warteschlangen im Kundenkonto zu erstellen und zu verwalten. Die SQS-Warteschlangennamen folgen dem Format `do-not-delete-rds-custom-[identifier]` und sind mit `Amazon RDS Custom` getaggt. Die Berechtigung für `ec2:CreateSnapshot` wurde ebenfalls hinzugefügt, damit RDS Custom Backups für Volumes erstellen kann, die der Instance angefügt sind. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  06. April 2023  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat `AmazonRDSFullAccess` und `AmazonRDSReadOnlyAccess` einen neuen Amazon-CloudWatch-Namespace `ListMetrics` hinzugefügt. Dieser Namespace ist erforderlich, damit Amazon RDS spezifische Metriken zur Ressourcennutzung auflisten kann. Weitere Informationen finden Sie unter [Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre CloudWatch-Ressourcen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html) im *Amazon-CloudWatch-Benutzerhandbuch*.  |  4. April 2023  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat den verwalteten Richtlinien `AmazonRDSFullAccess` und `AmazonRDSReadOnlyAccess` eine neue Berechtigung hinzugefügt, mit der Sie Ergebnisse von Amazon DevOps Guru in der RDS-Konsole anzeigen können. Diese Berechtigung ist erforderlich, um die Anzeige der DevOps-Guru-Ergebnisse zu ermöglichen. Weitere Informationen finden Sie unter [Änderungen von Amazon RDS an von AWS verwalteten Richtlinien](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-manpol-updates.html).  |  30. März 2023  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDS` zur Integration in AWS Secrets Manager hinzugefügt. RDS erfordert die Integration mit Secrets Manager für die Verwaltung von Hauptbenutzerpasswörtern in Secrets Manager. Das Secret verwendet eine reservierte Namenskonvention und schränkt Kundenaktualisierungen ein. Weitere Informationen finden Sie unter [Passwortverwaltung mit Amazon RDS, und AWS Secrets Manager](rds-secrets-manager.md).  |  22. Dezember 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur `AmazonRDSCustomServiceRolePolicy` der serviceverknüpftem Rolle `AWSServiceRoleForRDSCustom` hinzugefügt. RDS Custom unterstützt DB-Cluster. Diese neuen Berechtigungen in der Richtlinie ermöglichen es RDS Custom, AWS-Services im Namen Ihrer DB-Cluster aufzurufen. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom).  |  9. November 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur serviceverknüpfte Rolle `AWSServiceRoleForRDS` zur Integration in AWS Secrets Manager hinzugefügt. Die Integration in Secrets Manager ist erforderlich, damit SQL Server Reporting Services (SSRS)-E-Mail auf RDS funktioniert. SSRS-E-Mail erstellt im Namen des Kunden ein Secret. Das Secret verwendet eine reservierte Namenskonvention und schränkt Kundenaktualisierungen ein. Weitere Informationen finden Sie unter [Verwenden von SSRS E-Mail zum Senden von Berichten](SSRS.Email.md).  |  26. August 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat einen neuen Amazon-CloudWatch-Namespace für `PutMetricData` zu `AmazonRDSPreviewServiceRolePolicy` hinzugefügt. Dieser Namespace ist erforderlich, damit Amazon RDS Metriken zur Ressourcennutzung veröffentlichen kann. Weitere Informationen finden Sie unter [Verwenden von Bedingungsschlüsseln zum Einschränken des Zugriffs auf CloudWatch-Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) im *Amazon CloudWatch-Benutzerhandbuch*.  |  7. Juni 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat einen neuen Amazon-CloudWatch-Namespace für `PutMetricData` zu `AmazonRDSBetaServiceRolePolicy` hinzugefügt. Dieser Namespace ist erforderlich, damit Amazon RDS Metriken zur Ressourcennutzung veröffentlichen kann. Weitere Informationen finden Sie unter [Verwenden von Bedingungsschlüsseln zum Einschränken des Zugriffs auf CloudWatch-Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) im *Amazon CloudWatch-Benutzerhandbuch*.  |  7. Juni 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat einen neuen Amazon-CloudWatch-Namespace für `PutMetricData` zu `AWSServiceRoleForRDS` hinzugefügt. Dieser Namespace ist erforderlich, damit Amazon RDS Metriken zur Ressourcennutzung veröffentlichen kann. Weitere Informationen finden Sie unter [Verwenden von Bedingungsschlüsseln zum Einschränken des Zugriffs auf CloudWatch-Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) im *Amazon CloudWatch-Benutzerhandbuch*.  |  22. April 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Berechtigungen zur serviceverknüpften Rolle `AWSServiceRoleForRDS` zum Verwalten von Berechtigungen für kundeneigene IP-Pools und lokale Gateway-Routingtabellen (LGW-RTBs) hinzugefügt. Diese Berechtigungen sind erforderlich, damit RDS on Outposts eine Multi-AZ-Replikation im lokalen Netzwerk der Outposts durchführen kann. Weitere Informationen finden Sie unter [Arbeiten mit Multi-AZ-Bereitstellungen für Amazon RDS auf AWS Outposts](rds-on-outposts.maz.md).  |  19. April 2022  | 
|  [Identitätsbasierte Richtlinien](UsingWithRDS.IAM.md#security_iam_access-manage-id-based-policies) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat der von `AmazonRDSFullAccess` verwalteten Richtlinie eine neue Berechtigung zur Beschreibung von Berechtigungen für LGW-RTBs hinzugefügt. Diese Berechtigung ist erforderlich, um Berechtigungen zu beschreiben, damit RDS on Outposts eine Multi-AZ-Replikation im lokalen Netzwerk der Outposts durchführen kann. Weitere Informationen finden Sie unter [Arbeiten mit Multi-AZ-Bereitstellungen für Amazon RDS auf AWS Outposts](rds-on-outposts.maz.md).  |  19. April 2022  | 
|  [AWS verwaltete Richtlinien für Amazon RDS](rds-security-iam-awsmanpol.md) – Neue Richtlinie  |  Amazon RDS hat eine neue verwaltete Richtlinie namens `AmazonRDSPerformanceInsightsReadOnly` hinzugefügt, um Amazon RDS zu erlauben, AWS-Services im Namen Ihrer DB-Instances aufzurufen. Weitere Informationen zur Konfiguration von Zugriffsrichtlinien für Performance Insights finden Sie unter [Konfigurieren von Zugriffsrichtlinien für Performance Insights](USER_PerfInsights.access-control.md).  |  10. März 2022  | 
|  [Berechtigungen von serviceverknüpften Rollen für Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Aktualisierung auf eine bestehende Richtlinie  |  Amazon RDS hat neue Amazon-CloudWatch-Namespaces für `PutMetricData` zu `AWSServiceRoleForRDS` hinzugefügt. Diese Namespaces sind erforderlich, damit Amazon DocumentDB (mit MongoDB-Kompatibilität) und Amazon Neptune CloudWatch-Metriken veröffentlichen können. Weitere Informationen finden Sie unter [Verwenden von Bedingungsschlüsseln zum Einschränken des Zugriffs auf CloudWatch-Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) im *Amazon CloudWatch-Benutzerhandbuch*.  |  4. März 2022  | 
|  [Serviceverknüpfte Rollenberechtigungen für Amazon RDS Custom](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-custom) – Neue Richtlinie  |  Amazon RDS hat eine neue serviceverknüpfte Rolle namens `AWSServiceRoleForRDSCustom` hinzugefügt, um RDS Custom zu erlauben, AWS-Services im Namen Ihrer DB-Instances aufzurufen.  |  26. Oktober 2021  | 
|  Amazon RDS hat mit der Verfolgung von Änderungen begonnen  |  Amazon RDS hat mit der Verfolgung von Änderungen für seine AWS-verwaltete Richtlinien begonnen.  |  26. Oktober 2021  | 

# Vermeidung des dienstübergreifenden Confused-Deputy-Problems
<a name="cross-service-confused-deputy-prevention"></a>

Das *Confused-Deputy-Problem* ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. In AWS kann ein dienstübergreifendes Identitätswechsels zu einem Problem mit dem verwirrten Stellvertreter führen. 

Ein serviceübergreifender Identitätswechsel kann auftreten, wenn ein Service (der *Anruf-Service*) einen anderen Service anruft (den *aufgerufenen Service*). Der aufrufende Dienst kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um dies zu verhindern, AWS bietet Tools, mit denen Sie Ihre Daten für alle Dienste mit Dienstprinzipalen schützen können, denen Zugriff auf Ressourcen in Ihrem Konto gewährt wurde. Weitere Informationen finden Sie unter [Das Problem des verwirrten Stellvertreters](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) im *IAM-Benutzerhandbuch*.

Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) und [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) in ressourcenbasierten Richtlinien, um die Berechtigungen, die Amazon RDS einem anderen Service erteilt, auf eine bestimmte Ressource zu beschränken. 

In einigen Fällen enthält der `aws:SourceArn`-Wert nicht die Konto-ID, z. B. wenn Sie den Amazon-Ressourcennamen (ARN) für einen Amazon-S3-Bucket verwenden. Stellen Sie in diesen Fällen sicher, dass Sie beide globalen Kontextschlüssel für die Bedingung verwenden, um Berechtigungen einzuschränken. In einigen Fällen verwenden Sie beide globalen Bedingungskontextschlüssel und der `aws:SourceArn`-Wert enthält die Konto-ID. Stellen Sie in diesen Fällen sicher, dass der `aws:SourceAccount`-Wert und das Konto im `aws:SourceArn` dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden. Wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten, verwenden Sie `aws:SourceArn`. Wenn Sie zulassen möchten, dass eine Ressource im angegebenen AWS Konto der dienstübergreifenden Nutzung zugeordnet wird, verwenden Sie. `aws:SourceAccount`

Stellen Sie sicher, dass der Wert von `aws:SourceArn` ein ARN für einen Amazon-RDS-Ressourcentyp ist. Weitere Informationen finden Sie unter [Amazon-Ressourcennamen (ARN) in Amazon RDS](USER_Tagging.ARN.md).

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontextschlüssels `aws:SourceArn` mit dem vollständigen ARN der Ressource. In einigen Fällen kennen Sie möglicherweise den vollständigen ARN der Ressource nicht oder Sie geben möglicherweise mehrere Ressourcen an. Verwenden Sie in diesen Fällen die globalen `aws:SourceArn`-Kontextbedingungsschlüssel mit Platzhaltern (`*`) für die unbekannten Teile des ARN. Ein Beispiel ist `arn:aws:rds:*:123456789012:*`. 

Das folgende Beispiel zeigt, wie Sie die globalen Bedingungskontextschlüssel `aws:SourceArn` und `aws:SourceAccount` für Amazon RDS verwenden können, um das Confused-Deputy-Problem zu verhindern.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "rds.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance"
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
  }
}
```

------

Weitere Beispiele für Richtlinien, die die globalen Bedingungskontextschlüssel `aws:SourceArn` und `aws:SourceAccount` verwenden, finden Sie in den folgenden Abschnitten:
+ [Erteilen von Berechtigungen zum Veröffentlichen von Benachrichtigungen in einem Amazon-SNS-Thema](USER_Events.GrantingPermissions.md)
+ [Manuelles Erstellen einer IAM-Rolle für native Backups und Wiederherstellungen](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
+ [Einrichten einer Windows-Authentifizierung für SQL Server-DB-Instances](USER_SQLServerWinAuth.SettingUp.md)
+ [Voraussetzungen für die Integration von RDS-for-SQL-Server mit S3](Appendix.SQLServer.Options.S3-integration.preparing.md)
+ [Manuelles Erstellen einer IAM-Rolle für SQL Server Audit](Appendix.SQLServer.Options.Audit.IAM.md)
+ [Konfigurieren von IAM-Berechtigungen für die Integration von RDS für Oracle in Amazon S3](oracle-s3-integration.preparing.md)
+ [Einrichten des Zugriffs auf einen Amazon-S3-Bucket](USER_PostgreSQL.S3Import.AccessPermission.md) (PostgreSQL-Import)
+ [Einrichten des Zugriffs auf einen Amazon-S3-Bucket](postgresql-s3-export-access-bucket.md) (PostgreSQL-Export)

# IAM-Datenbankauthentifizierungfür MariaDB, MySQL und PostgreSQL
<a name="UsingWithRDS.IAMDBAuth"></a>

Sie können sich bei Ihrem  mithilfe der AWS Identity and Access Management (IAM-) Datenbankauthentifizierung authentifizieren. Die IAM-Datenbankauthentifizierung funktioniert mit MariaDB, MySQL und PostgreSQL. Mit dieser Authentifizierungsmethode benötigen Sie kein Passwort, um eine Verbindung mit einer DB-Instance herzustellen. Stattdessen verwenden Sie ein Authentifizierungstoken.

Ein *Authentifizierungstoken* ist eine eindeutige Zeichenfolge, die von Amazon RDS auf Anforderung erzeugt wird. Authentifizierungstoken werden mit AWS Signature Version 4 generiert. Jedes Token verfällt 15 Minuten nach seiner Erzeugung. Da die Authentifizierung mithilfe von IAM extern verwaltet wird, ist es nicht erforderlich, Benutzeranmeldeinformationen in der Datenbank zu speichern. Sie können weiterhin auch die Standard-Datenbank-Authentifizierung verwenden. Das Token wird nur zur Authentifizierung verwendet und wirkt sich nicht auf die Sitzung aus, nachdem es eingerichtet wurde.

Die IAM-Datenbank-Authentifizierung bietet die folgenden Vorteile:
+ Der Netzwerkverkehr zur und von der Datenbank wird mit Secure Socket Layer (SSL) oder Transport Layer Security (TLS) verschlüsselt. Weitere Informationen zur Verwendung von Amazon RDS finden Sie unter[](UsingWithRDS.SSL.md).
+ Sie können IAM verwenden, um den Zugriff auf Ihre Datenbankressourcen zentral zu verwalten, anstatt den Zugriff individuell auf jeder DB-Instance zu verwalten.
+ Für Anwendungen, die auf Amazon EC2 laufen, können Sie die der EC2-Instance eigenen Profil-Anmeldeinformationen anstatt eines Passworts verwenden, um auf Ihre Datenbank zuzugreifen. Dies erhöht die Sicherheit.

Erwägen Sie im Allgemeinen, die IAM-Datenbankauthentifizierung zu verwenden, wenn Ihre Anwendungen weniger als 200 Verbindungen pro Sekunde erstellen und Sie Benutzernamen und Passwörter nicht direkt in Ihrem Anwendungscode verwalten möchten.

Der JDBC-Treiber von Amazon Web Services (AWS) unterstützt die IAM-Datenbankauthentifizierung. Weitere Informationen finden Sie unter [AWS IAM-Authentifizierungs-Plug-In](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) im [Amazon Web Services (AWS) JDBC-Treiber-Repository](https://github.com/aws/aws-advanced-jdbc-wrapper). GitHub 

Der Python-Treiber von Amazon Web Services (AWS) unterstützt die IAM-Datenbankauthentifizierung. Weitere Informationen finden Sie unter [AWS IAM-Authentifizierungs-Plug-In](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) im [ GitHubPython-Treiber-Repository von Amazon Web Services (AWS)](https://github.com/aws/aws-advanced-python-wrapper).

Navigieren Sie durch die folgenden Themen, um zu erfahren, wie IAM für die DB-Authentifizierung eingerichtet wird:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)
+ [Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.Connecting.md) 

## Verfügbarkeit von Regionen und Versionen
<a name="UsingWithRDS.IAMDBAuth.Availability"></a>

Die Verfügbarkeit von Features und der Support variieren zwischen bestimmten Versionen der einzelnen Datenbank-Engines. Weitere Informationen zur Verfügbarkeit von Engines, Versionen und Regionen mit Amazon-RDS- und der IAM-Datenbankauthentifizierung finden Sie unter [Unterstützte Regionen und DB-Engines für die IAM-Datenbankauthentifizierung in Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.IamDatabaseAuthentication.md).

## CLI- und SDK-Unterstützung
<a name="UsingWithRDS.IAMDBAuth.cli-sdk"></a>

Die IAM-Datenbankauthentifizierung ist für die [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/generate-db-auth-token.html)und für die folgenden sprachspezifischen Sprachen verfügbar: AWS SDKs
+ [AWS SDK für .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/RDS/TRDSAuthTokenGenerator.html)
+ [AWS SDK für C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/class_aws_1_1_r_d_s_1_1_r_d_s_client.html#ae134ffffed5d7672f6156d324e7bd392)
+ [AWS SDK für Go](https://docs.aws.amazon.com/sdk-for-go/api/service/rds/#pkg-overview)
+ [AWS SDK für Java](https://docs.aws.amazon.com/sdk-for-java/latest/reference/software/amazon/awssdk/services/rds/RdsUtilities.html)
+ [AWS SDK für JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_rds_signer.html)
+ [AWS SDK für PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Rds.AuthTokenGenerator.html)
+ [AWS SDK für Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.generate_db_auth_token)
+ [AWS SDK für Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/AuthTokenGenerator.html)

## Einschränkungen der IAM-Datenbank-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.Limitations"></a>

Beachten Sie bei der Verwendung der IAM-Datenbankauthentifizierung die folgenden Einschränkungen:
+ Derzeit unterstützt die IAM-Datenbankauthentifizierung nicht alle globalen Bedingungskontextschlüssel.

  Weitere Informationen über globale Bedingungskontextschlüssel finden Sie unter [Globale AWS -Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.
+ Wenn die IAM-Rolle (`rds_iam`) einem Benutzer (einschließlich RDS-Hauptbenutzer) hinzugefügt wird, hat bei PostgreSQL die IAM-Authentifizierung Vorrang vor der Passwort-Authentifizierung, so dass sich der Benutzer als IAM-Benutzer anmelden muss.
+ Für PostgreSQL unterstützt Amazon RDS nicht die gleichzeitige Aktivierung der Authentifizierungsmethoden IAM und Kerberos.
+ Für PostgreSQL können Sie die IAM-Authentifizierung nicht verwenden, um eine Replikationsverbindung herzustellen.
+ Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.
+ CloudWatch und protokollieren Sie die CloudTrail IAM-Authentifizierung nicht. Diese Services verfolgen keine `generate-db-auth-token` API-Aufrufe, die die IAM-Rolle autorisieren, eine Datenbankverbindung zu aktivieren.
+ Die IAM-DB-Authentifizierung erfordert Rechenressourcen auf der Instance der Datenbank. Für eine zuverlässige Verbindung benötigen Sie zwischen 300 und 1000 MiB zusätzlichen Speicher in Ihrer Datenbank. Um den für Ihren Workload benötigten Speicher zu ermitteln, vergleichen Sie die RES-Spalte für RDS-Prozesse in der Enhanced-Monitoring-processlist vor und nach der Aktivierung der IAM-DB-Authentifizierung. Siehe [Anzeigen von Betriebssystem-Metriken in der RDS-Konsole](USER_Monitoring.OS.Viewing.md).

  Wenn Sie eine Burstable-Klassen-Instance verwenden, vermeiden Sie einen Speichermangel, indem Sie den von anderen Parametern wie Puffern und Cache belegten Speicher um denselben Betrag reduzieren.
+ Die IAM-DB-Authentifizierung wird für RDS auf Outposts für keine Engine unterstützt.

## Empfehlungen für die IAM-Datenbankauthentifizierung
<a name="UsingWithRDS.IAMDBAuth.ConnectionsPerSecond"></a>

Bei Verwendung der IAM-Datenbankauthentifizierung empfehlen wir Folgendes:
+ Verwenden Sie die IAM-Datenbankauthentifizierung, wenn Ihre Anwendung weniger als 200 neue IAM-Datenbankauthentifizierungsverbindungen pro Sekunde benötigt.

  Die Datenbank-Engines, die mit Amazon RDS kompatibel sind, setzen den Authentifizierungsversuchen pro Sekunde keine Grenzen. Wenn Sie jedoch die IAM-Datenbank-Authentifizierung verwenden, muss Ihre Anwendung ein Authentifizierungstoken erzeugen. Ihre Anwendung verwendet dann dieses Token, um eine Verbindung mit der DB-Instance herzustellen. Wenn Sie die Höchstanzahl neuer Verbindungen pro Sekunde überschreiten, kann der zusätzliche Overhead der IAM-Datenbankauthentifizierung zur Verbindungsablehnung führen. 

  Erwägen Sie die Verwendung von Verbindungspooling in Ihren Anwendungen, um den ständigen Verbindungsaufbau zu begrenzen. Dadurch lässt sich der Aufwand für die IAM-DB-Authentifizierung reduzieren und Ihre Anwendungen können bestehende Verbindungen wiederverwenden. Erwägen Sie alternativ die Verwendung von RDS-Proxy für diese Anwendungsfälle. RDS-Proxy ist mit zusätzlichen Kosten verbunden. Weitere Informationen finden Sie unter [RDS-Proxy – Preise](https://aws.amazon.com/rds/proxy/pricing/).
+ Die Größe eines IAM-Datenbankauthentifizierungstokens hängt von vielen Faktoren ab, einschließlich der Anzahl der IAM-Tags, IAM-Servicerichtlinien, ARN-Längen sowie andere IAM- und Datenbankeigenschaften. Die Mindestgröße dieses Tokens beträgt im Allgemeinen etwa 1 KB, kann aber durchaus größer sein. Da dieses Token als Passwort in der Verbindungszeichenfolge zur Datenbank verwendet wird, die die IAM-Authentifizierung verwendet, sollten Sie sicherstellen, dass Ihr Datenbanktreiber (z. B. ODBC) und and/or alle Tools dieses Token nicht aufgrund seiner Größe einschränken oder anderweitig kürzen. Ein verkürztes Token führt dazu, dass die von der Datenbank und IAM durchgeführte Authentifizierungsüberprüfung fehlschlägt.
+ Wenn Sie beim Erstellen eines IAM-Datenbank-Authentifizierungstokens temporäre Anmeldeinformationen verwenden, müssen die temporären Anmeldeinformationen weiterhin gültig sein, wenn Sie das IAM-Datenbank-Authentifizierungstoken für eine Verbindungsanforderung verwenden.

## Kontextschlüssel für globale Bedingungen werden nicht unterstützt AWS
<a name="UsingWithRDS.IAMDBAuth.GlobalContextKeys"></a>

 Die IAM-Datenbankauthentifizierung unterstützt die folgende Teilmenge der AWS globalen Bedingungskontextschlüssel nicht. 
+ `aws:Referer`
+ `aws:SourceIp`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserAgent`
+ `aws:VpcSourceIp`

Weitere Informationen finden Sie unter [Globale AWS -Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*. 

# Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.Enabling"></a>

Die IAM-Datenbank-Authentifizierung ist für DB-Instances standardmäßig deaktiviert. Sie können die IAM-Datenbankauthentifizierung mithilfe der AWS-Managementkonsole AWS CLI, oder der API aktivieren oder deaktivieren.

Sie können die IAM-Datenbankauthentifizierung aktivieren, wenn Sie eine der folgenden Aktionen ausführen:
+ Informationen zum Erstellen einer neuen DB-Instance mit aktivierter IAM-Datenbankauthentifizierung finden Sie unter [Erstellen einer Amazon-RDS-DB-Instance](USER_CreateDBInstance.md).
+ Informationen zum Ändern einer DB-Instance zur Aktivierung der IAM-Datenbankauthentifizierung finden Sie unter [Ändern einer Amazon-RDS-DB-Instance](Overview.DBInstance.Modifying.md).
+ Informationen zum Wiederherstellen einer DB-Instance aus einem Snapshot mit aktivierter IAM-Datenbankauthentifizierung finden Sie unter [Wiederherstellen auf eine DB-Instance](USER_RestoreFromSnapshot.md).
+ Informationen zum Wiederherstellen eines DB-Instance-Clusters zu einem Zeitpunkt mit aktivierter IAM-Datenbankauthentifizierung finden Sie unter [Wiederherstellen einer DB-Instance auf einen bestimmten Zeitpunkt für Amazon RDS](USER_PIT.md).

## Konsole
<a name="UsingWithRDS.IAMDBAuth.Enabling.Console"></a>

Jeder Erstellungs- oder Änderungsworkflow verfügt über einen Abschnitt **Database authentification (Datenbankauthentifizierung)**, in dem Sie die IAM-Datenbankauthentifizierung aktivieren oder deaktivieren können. Wählen Sie in diesem Abschnitt **Password and IAM database authentication (Passwort- und IAM-Datenbankauthentifizierung)**, um die IAM-Datenbankauthentifizierung zu aktivieren.

**So aktivieren bzw. deaktivieren die IAM-Datenbankauthentifizierung für eine vorhandene DB-Instance:**

1. Öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Wählen Sie im Navigationsbereich **Datenbanken** aus.

1. Wählen Sie die DB-Instance aus, die Sie ändern möchten.
**Anmerkung**  
 Stellen Sie sicher, dass die DB-Instance mit der IAM-Authentifizierung kompatibel ist. Überprüfen Sie die Kompatibilitätsanforderungen in [Verfügbarkeit von Regionen und Versionen](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability).

1. Wählen Sie **Modify** aus.

1. Wählen Sie im Abschnitt **Datenbankauthentifizierung** die Option **Passwort und IAM-Datenbankauthentifizierung IAM-Datenbankauthentifizierung** aus, um die zu aktivieren. Wählen Sie **Passwort-Authentifizierung** oder **Passwort- und Kerberos-Authentifizierung** aus, um die IAM-Authentifizierung zu deaktivieren.

1. Sie können auch die Veröffentlichung von IAM-DB-Authentifizierungsprotokollen in Logs aktivieren. CloudWatch Wählen **Sie unter Protokollexporte** die Option **iam-db-auth-error Protokoll** aus. Das Veröffentlichen Ihrer CloudWatch Protokolle in Logs verbraucht Speicherplatz, und für diesen Speicherplatz fallen Gebühren an. Achten Sie darauf, alle CloudWatch Logs zu löschen, die Sie nicht mehr benötigen.

1. Klicken Sie auf **Continue**.

1. Um die Änderungen sofort anzuwenden, wählen Sie im Abschnitt **Scheduling of modifications (Planen von Änderungen)** die Option **Immediately (Sofort)**.

1. Wählen Sie **Modify DB instance** (DB-Instance ändern).

## AWS CLI
<a name="UsingWithRDS.IAMDBAuth.Enabling.CLI"></a>

Verwenden Sie den [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)Befehl, um mithilfe von eine neue DB-Instance mit IAM-Authentifizierung zu erstellen. AWS CLI Geben Sie die Option `--enable-iam-database-authentication` wie im folgenden Beispiel an.

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.m3.medium \
    --engine MySQL \
    --allocated-storage 20 \
    --master-username masterawsuser \
    --manage-master-user-password \
    --enable-iam-database-authentication
```

Um eine vorhandene DB-Instance zu aktualisieren, um eine IAM-Authentifizierung zu ermöglichen oder zu verhindern, verwenden Sie den AWS CLI -Befehl [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html). Sie müssen entweder die Option `--enable-iam-database-authentication` oder `--no-enable-iam-database-authentication` angeben.

**Anmerkung**  
 Stellen Sie sicher, dass die DB-Instance mit der IAM-Authentifizierung kompatibel ist. Überprüfen Sie die Kompatibilitätsanforderungen in [Verfügbarkeit von Regionen und Versionen](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability).

Standardmäßig führt Amazon RDS die Änderung während des nächsten Wartungsfensters durch. Wenn Sie diese Einstellung übergehen und die IAM-DB-Authentifizierung schnellstmöglich aktivieren möchten, verwenden Sie den Parameter `--apply-immediately`. 

Im folgenden Beispiel wird gezeigt, wie Sie die IAM-Authentifizierung für eine vorhandene DB-Instance sofort aktivieren können.

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --apply-immediately \
    --enable-iam-database-authentication
```

Wenn Sie einen  wiederherstellen, verwenden Sie einen der folgenden AWS CLI Befehle:
+ `[restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)`
+ `[restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)`

Die Voreinstellung der IAM-Datenbank-Authentifizierung entspricht der Einstellung des Quell-Snapshot. Wählen Sie die entsprechende Option `--enable-iam-database-authentication` oder `--no-enable-iam-database-authentication` aus.

## RDS-API
<a name="UsingWithRDS.IAMDBAuth.Enabling.API"></a>

Verwenden Sie die API-Operation , um mithilfe der API eine neue DB-Instance mit IAM-Authentifizierung zu erstellen [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Stellen Sie den Parameter `EnableIAMDatabaseAuthentication` auf `true` ein.

Um eine bestehende DB-Instance mit oder ohne IAM-Authentifizierung zu aktualisieren, verwenden Sie die API-Operation [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Setzen Sie den Parameter `EnableIAMDatabaseAuthentication` auf `true`, um die IAM-Authentifizierung zu aktivieren, oder auf `false`, um sie zu deaktivieren.

**Anmerkung**  
 Stellen Sie sicher, dass die DB-Instance mit der IAM-Authentifizierung kompatibel ist. Überprüfen Sie die Kompatibilitätsanforderungen in [Verfügbarkeit von Regionen und Versionen](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability).

Verwenden Sie eine der folgenden API-Operationen, wenn Sie einen DB-Instance- wiederherstellen.
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+  [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

Die Voreinstellung der IAM-Datenbank-Authentifizierung entspricht der Einstellung des Quell-Snapshot. Zum Ändern dieser Einstellung setzen Sie den Parameter `EnableIAMDatabaseAuthentication` auf `true`, um die IAM-Authentifizierung zu aktivieren, oder auf `false`, um sie zu deaktivieren.

# Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy"></a>

Sie müssen eine IAM-Richtlinie erstellen, um einem Benutzer oder einer Rolle zu erlauben, eine Verbindung mit Ihrer DB-Instance herzustellen. Anschließend fügen Sie die Richtlinie an einen Berechtigungssatz oder eine Rolle an.

**Anmerkung**  
Weitere Informationen zu IAM-Richtlinien finden Sie unter [Identity and Access Management für Amazon RDS](UsingWithRDS.IAM.md).

Die folgende Beispielrichtlinie erlaubt einem Benutzer, eine Verbindung mit einer DB-Instance mithilfe der IAM-Datenbank-Authentifizierung herzustellen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds-db:us-east-2:111122223333:dbuser:db-ABCDEFGHIJKL01234/db_user"
            ]
        }
    ]
}
```

------

**Wichtig**  
Ein Benutzer mit Administratorberechtigungen kann auf DB-Instances zugreifen, ohne über eine IAM-Richtlinie explizite Berechtigungen zu erhalten. Wenn Sie den Administratorzugriff auf DB-Instance- einschränken möchten, können Sie eine IAM-Rolle mit geeigneten, weniger privilegierten Berechtigungen erstellen und diese dem Administrator zuweisen.

**Anmerkung**  
Verwechseln Sie das Präfix `rds-db:` nicht mit anderen RDS-API-Operationspräfixen, die mit `rds:` beginnen. Das Präfix `rds-db:` und die Aktion `rds-db:connect` werden nur zur IAM-Datenbank-Authentifizierung verwendet. Sie sind in keinem anderen Kontext gültig. 

Die Beispielrichtlinie enthält eine einzige Anweisung mit den folgenden Elementen:
+ `Effect` – Geben Sie `Allow` an, um den Zugriff auf die DB-Instance zu gewähren. Wenn Sie den Zugriff nicht ausdrücklich erlauben, wird er automatisch verweigert.
+ `Action` – Geben Sie `rds-db:connect` an, um Verbindungen mit der DB-Instance zu erlauben.
+ `Resource` – Geben Sie einen Amazon-Ressourcennamen (ARN) an, der ein Datenbankkonto auf einer DB-Instance beschreibt. Das ARN-Format lautet folgendermaßen.

  ```
  arn:aws:rds-db:region:account-id:dbuser:DbiResourceId/db-user-name
  ```

  Ersetzen Sie in diesem Format Folgendes:
  + `region`ist die AWS Region für den . In der Beispielrichtlinie ist die AWS Region`us-east-2`.
  + `account-id`ist die AWS Kontonummer für den . In der Beispielrichtlinie lautet die Kontonummer `1234567890`. Der Benutzer muss demselben Konto wie das Konto für den DB-Instance- angehören.

    Erstellen Sie für einen kontoübergreifenden Zugriff eine IAM-Rolle mit der oben angegebenen Richtlinie in dem Konto für den DB-Instance- und erlauben Sie Ihrem anderen Konto, die Rolle zu übernehmen. 
  + `DbiResourceId` ist die Kennung der DB-Instance. Diese Kennung ist für eine AWS Region eindeutig und ändert sich nie. In dieser Beispielrichtlinie lautet die Kennung `db-ABCDEFGHIJKL01234`.

    Um eine  in Amazon RDS zu finden, wählen Sie den  aus, um dessen Details zu sehen. Wechseln Sie zur Registerkarte **Konfiguration**. Die **Resource ID (Ressourcen-ID)** wird im Abschnitt **Configuration Details (Konfigurationsdetails)** angezeigt.

    Alternativ können Sie den AWS CLI Befehl verwenden, um die Identifikatoren und Ressourcen IDs für Ihren gesamten  in der aktuellen AWS Region aufzulisten, wie im Folgenden dargestellt.

    ```
    aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"
    ```

    Wenn Sie Amazon Aurora verwenden, geben Sie eine `DbClusterResourceId` anstelle einer `DbiResourceId` an. Weitere Informationen finden Sie unter [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html) im *Amazon Aurora Benutzerhandbuch*.
**Anmerkung**  
Wenn Sie über den RDS-Proxy eine Verbindung zu einer Datenbank herstellen, geben Sie die Proxy-Ressourcen-ID an, z. B. `prx-ABCDEFGHIJKL01234`. Hinweise zur Verwendung der IAM-Datenbankauthentifizierung mit RDS-Proxy finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).
  + `db-user-name` ist der Name des mit der IAM-Authentifizierung zu verknüpfenden Datenbankkontos. In der Beispielrichtlinie lautet das Datenbankkonto `db_user`.

Sie können andere erstellen ARNs , um verschiedene Zugriffsmuster zu unterstützen. Die folgende Richtlinie erlaubt den Zugriff auf zwei verschiedene Datenbankkonten auf einer DB-Instance .

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
             "rds-db:connect"
         ],
         "Resource": [
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/jane_doe",
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/mary_roe"
         ]
      }
   ]
}
```

------

Die folgende Richtlinie verwendet das Zeichen „\$1“, um allen  und Datenbankkonten für ein bestimmtes AWS Konto und eine bestimmte AWS Region zuzuordnen. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds-db:us-east-2:111122223333:dbuser:*/*"
            ]
        }
    ]
}
```

------

Die folgende Richtlinie entspricht allen  für ein bestimmtes AWS Konto und eine bestimmte AWS Region. Allerdings gewährt die Richtlinie nur den Zugriff auf DB-Instances, die über ein `jane_doe`-Datenbankkonto verfügen.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
             "rds-db:connect"
         ],
         "Resource": [
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:*/jane_doe"
         ]
      }
   ]
}
```

------

Der Benutzer oder die Rolle hat nur auf jene Datenbanken Zugriff, auf die der Datenbankbenutzer zugreifen kann. Nehmen wir beispielsweise an, dass Ihre DB-Instance über eine Datenbank mit dem Namen *dev* und eine weitere Datenbank mit dem Namen *test* verfügt. Wenn der Datenbankbenutzer `jane_doe` nur auf *dev* zugreifen kann, haben auch alle anderen Benutzer oder Rollen, die auf diese DB-Instance mit dem Benutzer `jane_doe` zugreifen, lediglich die Berechtigung für den Zugriff auf *dev*. Diese Zugriffsbeschränkung gilt auch für andere Datenbankobjekte, wie z. B. Tabellen, Ansichten usw.

Ein Administrator muss IAM-Richtlinien erstellen, die Entitäten die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcen gewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den Berechtigungssätzen oder Rollen anfügen, die diese Berechtigungen benötigen. Beispiele für Richtlinien finden Sie unter [Beispiele für identitätsbasierte Amazon-RDS-Richtlinien](security_iam_id-based-policy-examples.md).

## Anfügen einer IAM-Richtlinie an einen Berechtigungssatz oder eine Rolle
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy.Attaching"></a>

Nachdem Sie eine IAM-Richtlinie erstellt haben, um die Datenbank-Authentifizierung zu erlauben, müssen Sie die Richtlinie an einen Berechtigungssatz oder eine Rolle anfügen. Eine praktische Anleitung zu diesem Thema finden Sie unter [Erstellen und Anfügen Ihrer ersten vom Kunden verwalteten Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) im *IAM-Benutzerhandbuch*.

Wenn Sie die praktischen Anleitung durchgehen, können Sie eine der in diesem Abschnitt aufgeführten Beispielrichtlinien als Ausgangsbasis verwenden und auf Ihre Bedürfnisse anpassen. Am Ende des Tutorials verfügen Sie über einen Berechtigungssatz mit einer angefügten Richtlinie, der zur Durchführung der Aktion `rds-db:connect` berechtigt ist.

**Anmerkung**  
Sie können mehrere Berechtigungssätze oder Rollen mit demselben Datenbank-Benutzerkonto verknüpfen. Nehmen wir beispielsweise an, dass Ihre IAM-Richtlinie folgenden Ressourcen-ARN enthält.  

```
arn:aws:rds-db:us-east-2:123456789012:dbuser:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe
```
Wenn Sie die Richtlinie an *Jane*, *Bob* und *Diego* anfügen, sind diese Benutzer in der Lage, eine Verbindung mit der angegebenen DB-Instance mithilfe des Datenbankkontos `jane_doe` herzustellen.

# Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.DBAccounts"></a>

Mit der IAM-Datenbank-Authentifizierung müssen Sie den von Ihnen erstellten Benutzerkonten keine Datenbankpasswörter zuweisen. Wenn Sie einen mit dem Datenbankkonto verknüpften Benutzer entfernen, sollten Sie auch das Datenbankkonto mit der Anweisung `DROP USER` entfernen.

**Anmerkung**  
Der für die IAM-Authentifizierung verwendete Benutzername muss mit der Schreibweise des Benutzernamens in der Datenbank übereinstimmen.

**Topics**
+ [Verwenden der IAM-Authentifizierung mit MariaDB und MySQL](#UsingWithRDS.IAMDBAuth.DBAccounts.MySQL)
+ [Verwenden der IAM-Authentifizierung mit](#UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL)

## Verwenden der IAM-Authentifizierung mit MariaDB und MySQL
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.MySQL"></a>

Bei MariaDB und MySQL erfolgt die Authentifizierung über `AWSAuthenticationPlugin` ein von uns AWS bereitgestelltes Plugin, das nahtlos mit IAM zusammenarbeitet, um Ihre Benutzer zu authentifizieren. Stellen Sie als Hauptbenutzer oder als anderer Benutzer, der Benutzer erstellen und Berechtigungen gewähren kann, eine Verbindung mit der DB-Instance her. Geben Sie die `CREATE USER`-Anweisung aus, wie im folgenden Beispiel dargestellt.

```
CREATE USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; 
```

Die Klausel `IDENTIFIED WITH` ermöglicht MariaDB und MySQL die Verwendung von `AWSAuthenticationPlugin`, um das Datenbankkonto (`jane_doe`) zu authentifizieren. Die `AS 'RDS'`-Klausel bezieht sich auf die Authentifizierungsmethode. Stellen Sie sicher, dass der angegebene Datenbankbenutzername mit einer Ressource in der IAM-Richtlinie für den IAM-Datenbankzugriff identisch ist. Weitere Informationen finden Sie unter [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md). 

**Anmerkung**  
  
`ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded`  
Stellen Sie sicher, dass Sie eine unterstützte Konfiguration verwenden und die IAM-Datenbankauthentifizierung auf Ihrer DB-Instance aktiviert haben, um den Fehler zu beheben. Weitere Informationen erhalten Sie unter [Verfügbarkeit von Regionen und Versionen](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability) und [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md).

Nachdem Sie ein Konto mithilfe von `AWSAuthenticationPlugin` erstellt haben, können Sie es in der gleichen Weise wie sonstige Datenbankkonten verwalten. Sie können beispielsweise Kontoberechtigungen mit den Anweisungen `GRANT` und `REVOKE` oder mehrere Kontoattribute mit der Anweisung `ALTER USER` ändern. 

 SSL/TLS Bei Verwendung von IAM wird der Datenbank-Netzwerkverkehr verschlüsselt. Ändern Sie mit dem folgenden Befehl das Benutzerkonto, um SSL-Verbindungen zuzulassen.

```
ALTER USER 'jane_doe'@'%' REQUIRE SSL;     
```

 

## Verwenden der IAM-Authentifizierung mit
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL"></a>

Wenn Sie die IAM-Authentifizierung mit PostgreSQL verwenden möchten, stellen Sie als Hauptbenutzer oder als anderer Benutzer, der Benutzer erstellen und Berechtigungen gewähren kann, eine Verbindung mit der DB-Instance her. Nachdem die Verbindung hergestellt wurde, erstellen Sie Datenbankbenutzer und weisen ihnen die `rds_iam`-Rolle zu, wie im folgenden Beispiel dargestellt.

```
CREATE USER db_userx; 
GRANT rds_iam TO db_userx;
```

Stellen Sie sicher, dass der angegebene Datenbankbenutzername mit einer Ressource in der IAM-Richtlinie für den IAM-Datenbankzugriff identisch ist. Weitere Informationen finden Sie unter [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md). Sie müssen der `rds_iam`-Rolle gestatten, die IAM-Authentifizierung zu verwenden. Sie können auch verschachtelte Mitgliedschaften oder indirekte Zuweisungen der Rolle verwenden. 

# Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.Connecting"></a>

Bei einer IAM-Datenbankauthentifizierung verwenden Sie ein Authentifizierungstoken, wenn Sie sich mit Ihrer DB-Instance verbinden. Ein *Authentifizierungstoken* ist eine Zeichenfolge, die Sie anstelle eines Passworts verwenden. Nachdem Sie ein Authentifizierungstoken erzeugt haben, ist es 15 Minuten lang gültig. Wenn Sie versuchen, sich mit einem verfallenen Token zu verbinden, wird die Verbindungsabfrage abgelehnt.

Jedes Authentifizierungstoken muss eine gültige Signatur unter Verwendung von AWS Signature Version 4 enthalten. (Weitere Informationen finden Sie unter [Signaturprozess mit Signaturversion 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in der *Allgemeine AWS-Referenz.*) Die AWS CLI und ein AWS-SDK, z. B. AWS SDK für Java oder AWS SDK für Python (Boto3) kann jedes von Ihnen erstellte Token automatisch signieren.

Sie können ein Authentifizierungstoken verwenden, wenn Sie von einem anderen AWS-Service aus eine Verbindung zu Amazon RDS einrichten, beispielsweise AWS Lambda. Durch Verwendung eines Tokens können Sie vermeiden, ein Passwort in Ihrem Code angeben zu müssen. Alternativ können Sie ein AWS SDK verwenden, um ein Authentifizierungstoken programmgesteuert zu erzeugen und programmgesteuert zu signieren.

Nachdem Sie über ein signiertes IAM-Authentifizierungstoken verfügen, können Sie eine Verbindung mit einer Amazon RDS-DB-Instance herstellen. Nachfolgend erfahren Sie, wie Sie dies mit einem Befehlszeilen-Tool oder mit einem AWS SDK, wie AWS SDK für Java oder AWS SDK für Python (Boto3), erreichen.

Weitere Informationen finden Sie in den folgenden Blogeinträgen:
+ [IAM-Authentifikation zum Verbinden mit von SQL Workbench/J mit Aurora MySQL oder Amazon RDS for MySQL verwenden](https://aws.amazon.com/blogs/database/use-iam-authentication-to-connect-with-sql-workbenchj-to-amazon-aurora-mysql-or-amazon-rds-for-mysql/)
+ [Verwenden der IAM-Authentifizierung zum Verbinden mit pgAdmin Amazon Aurora PostgreSQL oder Amazon RDS for PostgreSQL](https://aws.amazon.com/blogs/database/using-iam-authentication-to-connect-with-pgadmin-amazon-aurora-postgresql-or-amazon-rds-for-postgresql/)

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Topics**
+ [Herstellen einer Verbindung zu Ihrer DB-Instance mithilfe von IAM-Authentifizierung für die AWS-Treiber](IAMDBAuth.Connecting.Drivers.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und MySQL-Client](UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und psql-Client](UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.PostgreSQL.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für .NET](UsingWithRDS.IAMDBAuth.Connecting.NET.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Go](UsingWithRDS.IAMDBAuth.Connecting.Go.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Java](UsingWithRDS.IAMDBAuth.Connecting.Java.md)
+ [Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Python (Boto3)](UsingWithRDS.IAMDBAuth.Connecting.Python.md)

# Herstellen einer Verbindung zu Ihrer DB-Instance mithilfe von IAM-Authentifizierung für die AWS-Treiber
<a name="IAMDBAuth.Connecting.Drivers"></a>

Die AWS-Treibersuite wurde so konzipiert, dass sie schnellere Umstellungs- und Failover-Zeiten sowie die Authentifizierung mit AWS Secrets Manager, AWS Identity and Access Management (IAM) und Verbundidentität unterstützt. Die AWS-Treiber müssen den Status der DB-Instance überwachen und die Instance-Topologie kennen, um den neuen Writer zu ermitteln. Dieser Ansatz reduziert die Umstellungs- und Failover-Zeiten auf Werte im einstelligen Sekundenbereich, im Vergleich zu Werten im zweistelligen Bereich bei Open-Source-Treibern.

Weitere Informationen zu den AWS-Treibern finden Sie im Treiber der entsprechenden Sprache für Ihre DB-Instance von [RDS für MariaDB](MariaDB.Connecting.Drivers.md#MariaDB.Connecting.JDBCDriver), [RDS für MySQL](MySQL.Connecting.Drivers.md#MySQL.Connecting.JDBCDriver) oder [RDS für PostgreSQL](PostgreSQL.Connecting.JDBCDriver.md).

**Anmerkung**  
Die einzigen Features, die für RDS für MariaDB unterstützt werden, sind Authentifizierung mit AWS Secrets Manager, AWS Identity and Access Management (IAM) und Federated Identity.

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und MySQL-Client
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI"></a>

Sie können von der Befehlszeile aus eine Verbindung zu einem herstellen, indem Sie das `mysql` Befehlszeilentool AWS CLI und verwenden, wie im Folgenden beschrieben.

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Anmerkung**  
Informationen zum Herstellen einer Verbindung mit Ihrer Datenbank mithilfe von SQL Workbench/J mit IAM-Authentifizierung finden Sie im Blogbeitrag [Verwenden Sie die IAM-Authentifizierung, um eine Verbindung mit SQL Workbench/J zu Aurora MySQL oder Amazon RDS for](https://aws.amazon.com/blogs/database/use-iam-authentication-to-connect-with-sql-workbenchj-to-amazon-aurora-mysql-or-amazon-rds-for-mysql/) MySQL herzustellen.

**Topics**
+ [Generieren eines IAM-Authentifizierungstokens](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken)
+ [Herstellen der Verbindung zu einem DB-Instance-](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect)

## Generieren eines IAM-Authentifizierungstokens
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken"></a>

Im folgenden Beispiel wird gezeigt, wie Sie ein signiertes Authentifizierungstoken mithilfe der erhalte AWS CLI.

```
aws rds generate-db-auth-token \
   --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \
   --port 3306 \
   --region us-west-2 \
   --username jane_doe
```

In diesem Beispiel lauten die Parameter folgendermaßen:
+ `--hostname` – Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.
+ `--port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `--region`— Die AWS Region, in der der  ausgeführt wird
+ `--username` – Das Datenbankkonto, auf das Sie zugreifen möchten.

Die ersten Zeichen des Tokens sehen folgendermaßen aus.

```
rdsmysql.123456789012.us-west-2.rds.amazonaws.com:3306/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
```

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

## Herstellen der Verbindung zu einem DB-Instance-
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect"></a>

Das allgemeine Format zur Herstellung einer Verbindung wird nachfolgend dargestellt.

```
mysql --host=hostName --port=portNumber --ssl-ca=full_path_to_ssl_certificate --enable-cleartext-plugin --user=userName --password=authToken
```

Dabei werden die folgenden Parameter verwendet:
+ `--host` – Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.
+ `--port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `--ssl-ca` – Die SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält

  Weitere Informationen zur SSL/TLS Unterstützung von MariaDB finden Sie unter. [SSL/TLS-Unterstützung für MariaDB-DB-Instances in Amazon RDS](MariaDB.Concepts.SSLSupport.md)

  Weitere Hinweise zur SSL/TLS Unterstützung von MySQL finden Sie unter[SSL/TLS-Unterstützung für MySQL-DB-Instances in Amazon RDS](MySQL.Concepts.SSLSupport.md).

  Zum Download eines SSL-Zertifikats siehe [](UsingWithRDS.SSL.md).
+ `--enable-cleartext-plugin` – Ein Wert, der angibt, dass `AWSAuthenticationPlugin` für diese Verbindung zu verwenden ist.

  Wenn Sie einen MariaDB-Client verwenden, ist die `--enable-cleartext-plugin` Option nicht erforderlich.
+ `--user` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `--password` – Ein signiertes IAM-Authentifizierungstoken.

Das Authentifizierungstoken besteht aus hunderten von Zeichen. Dessen Handhabung in der Befehlszeile kann unhandlich sein. Eine Möglichkeit zur Umgehung dieses Problems besteht darin, das Token in einer Umgebungsvariable zu speichern und dann bei der Verbindungsherstellung diese Variable zu verwenden. Im folgenden Beispiel ist eine Möglichkeit dargestellt, um dieses Problem zu umgehen. Im Beispiel */sample\$1dir/* ist dies der vollständige Pfad zur SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält.

```
RDSHOST="mysqldb.123456789012.us-east-1.rds.amazonaws.com"
TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )"

mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN
```

Wenn Sie die Verbindung mithilfe von `AWSAuthenticationPlugin` herstellen, wird die Verbindung mit SSL geschützt. Geben Sie an der `mysql>`-Eingabeaufforderung Folgendes ein, um dies zu überprüfen.

```
show status like 'Ssl%';
```

In den folgenden Linien in der Ausgabe finden Sie weitere Details.

```
+---------------+-------------+
| Variable_name | Value                                                                                                                                                                                                                                |
+---------------+-------------+
| ...           | ...
| Ssl_cipher    | AES256-SHA                                                                                                                                                                                                                           |
| ...           | ...
| Ssl_version   | TLSv1.1                                                                                                                                                                                                                              |
| ...           | ...
+-----------------------------+
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und psql-Client
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.PostgreSQL"></a>

Sie können über die Befehlszeile eine Verbindung mit einer Amazon-RDS-for-PostgreSQL-DB-Instance einem mit der AWS CLI und dem psql-Befehlszeilen-Tool herstellen, wie nachfolgend beschrieben.

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Anmerkung**  
Informationen zum Herstellen einer Verbindung mit Ihrer Datenbank mithilfe von pgAdmin mit IAM-Authentifizierung finden Sie im Blogbeitrag [Using IAM authentication to connect with pgAdmin Amazon Aurora PostgreSQL or Amazon RDS for PostgreSQL](https://aws.amazon.com/blogs/database/using-iam-authentication-to-connect-with-pgadmin-amazon-aurora-postgresql-or-amazon-rds-for-postgresql/).

**Topics**
+ [Generieren eines IAM-Authentifizierungstokens](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken.PostgreSQL)
+ [Verbinden mit einem Amazon RDS-PostgreSQL-Instance und](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect.PostgreSQL)

## Generieren eines IAM-Authentifizierungstokens
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken.PostgreSQL"></a>

Das Authentifizierungstoken besteht aus hunderten von Zeichen, wodurch es in der Befehlszeile unhandlich wird. Eine Möglichkeit zur Umgehung dieses Problems besteht darin, das Token in einer Umgebungsvariable zu speichern und dann bei der Verbindungsherstellung diese Variable zu verwenden. Das folgende Beispiel zeigt, wie Sie mithilfe des AWS CLI `generate-db-auth-token` Befehls ein signiertes Authentifizierungstoken abrufen und in einer `PGPASSWORD` Umgebungsvariablen speichern können.

```
export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com"
export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"
```

In diesem Beispiel lauten die Parameter für den `generate-db-auth-token`-Befehl folgendermaßen:
+ `--hostname`– Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.
+ `--port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `--region`— Die AWS Region, in der der  ausgeführt wird
+ `--username` – Das Datenbankkonto, auf das Sie zugreifen möchten.

Die ersten Zeichen des generierten Tokens sehen folgendermaßen aus.

```
rdspostgres.123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
```

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

## Verbinden mit einem Amazon RDS-PostgreSQL-Instance und
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect.PostgreSQL"></a>

Das allgemeine Format zur Herstellung einer Verbindung mithilfe von psql wird nachfolgend dargestellt.

```
psql "host=hostName port=portNumber sslmode=verify-full sslrootcert=full_path_to_ssl_certificate dbname=DBName user=userName password=authToken"
```

Dabei werden die folgenden Parameter verwendet:
+ `host`– Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.
+ `port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `sslmode` – Der zu verwendende SSL-Modus.

  Wenn Sie `sslmode=verify-full` verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.
+ `sslrootcert` – Die SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält

  Weitere Informationen finden Sie unter [Verwenden von SSL mit einer PostgreSQL-DB-Instance](PostgreSQL.Concepts.General.SSL.md).

  Zum Download eines SSL-Zertifikats siehe [](UsingWithRDS.SSL.md).
+ `dbname` – Die Datenbank, auf die Sie zugreifen möchten.
+ `user` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `password` – Ein signiertes IAM-Authentifizierungstoken.

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Das folgende Beispiel zeigt die Verwendung von psql für die Verbindung. Im Beispiel verwendet psql die Umgebungsvariable `RDSHOST` für den Host und die Umgebungsvariable `PGPASSWORD` für das generierte Token. Außerdem */sample\$1dir/* ist dies der vollständige Pfad zur SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält.

```
export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com"
export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"
                    
psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/global-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für .NET
<a name="UsingWithRDS.IAMDBAuth.Connecting.NET"></a>

Sie können wie im Folgenden beschrieben eine Verbindung zu einer RDS for MariaDB-, MySQL- oder PostgreSQL-DB-Instance mit herstellen. AWS SDK für .NET 

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Beispiele**  
In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden.

Um dieses Codebeispiel auszuführen, benötigen Sie den, der auf der [AWS SDK für .NET](https://aws.amazon.com/sdk-for-net/)Site zu finden ist. AWS Die `AWSSDK.CORE`- und die `AWSSDK.RDS`-Pakete sind erforderlich. Um eine Verbindung zu einem  herzustellen, verwenden Sie den.NET-Datenbankconnector für die DB-Engine, z. B. MySqlConnector für MariaDB oder MySQL, oder Npgsql für PostgreSQL.

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her. Ändern Sie die Werte der folgenden Parameter nach Bedarf.
+ `server` – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.
+ `user` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `database` – Die Datenbank, auf die Sie zugreifen möchten.
+ `port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `SslMode` – Der zu verwendende SSL-Modus.

  Wenn Sie `SslMode=Required` verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.
+ `SslCa` – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

  Informationen zum Download eines Zertifikats finden Sie unter [](UsingWithRDS.SSL.md).

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

```
using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using Amazon;

namespace ubuntu
{
  class Program
  {
    static void Main(string[] args)
    {
      var pwd = Amazon.RDS.Util.RDSAuthTokenGenerator.GenerateAuthToken(RegionEndpoint.USEast1, "mysqldb.123456789012.us-east-1.rds.amazonaws.com", 3306, "jane_doe");
      // for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

      MySqlConnection conn = new MySqlConnection($"server=mysqldb.123456789012.us-east-1.rds.amazonaws.com;user=jane_doe;database=mydB;port=3306;password={pwd};SslMode=Required;SslCa=full_path_to_ssl_certificate");
      conn.Open();

      // Define a query
      MySqlCommand sampleCommand = new MySqlCommand("SHOW DATABASES;", conn);

      // Execute a query
      MySqlDataReader mysqlDataRdr = sampleCommand.ExecuteReader();

      // Read all rows and output the first column in each row
      while (mysqlDataRdr.Read())
        Console.WriteLine(mysqlDataRdr[0]);

      mysqlDataRdr.Close();
      // Close connection
      conn.Close();
    }
  }
}
```

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

Ändern Sie die Werte der folgenden Parameter nach Bedarf.
+ `Server` – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.
+ `User ID` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `Database` – Die Datenbank, auf die Sie zugreifen möchten.
+ `Port` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `SSL Mode` – Der zu verwendende SSL-Modus.

  Wenn Sie `SSL Mode=Required` verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.
+ `Root Certificate` – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

  Informationen zum Download eines Zertifikats finden Sie unter [](UsingWithRDS.SSL.md).

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

```
using System;
using Npgsql;
using Amazon.RDS.Util;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresmydb.123456789012.us-east-1.rds.amazonaws.com", 5432, "jane_doe");
// for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

            NpgsqlConnection conn = new NpgsqlConnection($"Server=postgresmydb.123456789012.us-east-1.rds.amazonaws.com;User Id=jane_doe;Password={pwd};Database=mydb;SSL Mode=Require;Root Certificate=full_path_to_ssl_certificate");
            conn.Open();

            // Define a query
                   NpgsqlCommand cmd = new NpgsqlCommand("select count(*) FROM pg_user", conn);

            // Execute a query
            NpgsqlDataReader dr = cmd.ExecuteReader();

            // Read all rows and output the first column in each row
            while (dr.Read())
                Console.Write("{0}\n", dr[0]);

            // Close connection
            conn.Close();
        }
    }
}
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.Go"></a>

Sie können wie im Folgenden beschrieben eine Verbindung zu einer RDS for MariaDB-, MySQL- oder PostgreSQL-DB-Instance mit herstellen. AWS SDK für Go 

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Beispiele**  
Um diese Codebeispiele auszuführen, benötigen Sie den, der auf der [AWS SDK für Go](https://aws.amazon.com/sdk-for-go/)Website zu finden ist. AWS 

Ändern Sie die Werte der folgenden Parameter nach Bedarf.
+ `dbName` – Die Datenbank, auf die Sie zugreifen möchten.
+ `dbUser` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `dbHost` – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.
**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.
+ `dbPort` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `region`— Die AWS Region, in der der  läuft

Stellen Sie außerdem sicher, dass die importierten Bibliotheken im Beispielcode auf Ihrem System vorhanden sind.

**Wichtig**  
Die Beispiele in diesem Abschnitt verwenden den folgenden Code, um Anmeldeinformationen bereitzustellen, die von einer lokalen Umgebung aus auf eine Datenbank zugreifen:  
`creds := credentials.NewEnvCredentials()`  
Wenn Sie über einen AWS Service wie Amazon EC2 oder Amazon ECS auf eine Datenbank zugreifen, können Sie den Code durch den folgenden Code ersetzen:  
`sess := session.Must(session.NewSession())`  
`creds := sess.Config.Credentials`  
Wenn Sie diese Änderung vornehmen, stellen Sie sicher, dass Sie den folgenden Import hinzufügen:  
`"github.com/aws/aws-sdk-go/aws/session"`

**Topics**
+ [Verbindung mithilfe der IAM-Authentifizierung und V2 herstellen AWS SDK für Go](#UsingWithRDS.IAMDBAuth.Connecting.GoV2)
+ [Verbindung mithilfe der IAM-Authentifizierung und V1 herstellen. AWS SDK für Go](#UsingWithRDS.IAMDBAuth.Connecting.GoV1)

## Verbindung mithilfe der IAM-Authentifizierung und V2 herstellen AWS SDK für Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.GoV2"></a>

Sie können mithilfe der IAM-Authentifizierung und V2 eine Verbindung zu einem  herstellen. AWS SDK für Go 

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden. 

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her.

```
package main
                
import (
     "context"
     "database/sql"
     "fmt"

     "github.com/aws/aws-sdk-go-v2/config"
     "github.com/aws/aws-sdk-go-v2/feature/rds/auth"
     _ "github.com/go-sql-driver/mysql"
)

func main() {

     var dbName string = "DatabaseName"
     var dbUser string = "DatabaseUser"
     var dbHost string = "mysqldb.123456789012.us-east-1.rds.amazonaws.com"
     var dbPort int = 3306
     var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort)
     var region string = "us-east-1"

    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
    	panic("configuration error: " + err.Error())
    }

    authenticationToken, err := auth.BuildAuthToken(
    	context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials)
    if err != nil {
	    panic("failed to create authentication token: " + err.Error())
    }

    dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true",
        dbUser, authenticationToken, dbEndpoint, dbName,
    )

    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

```
package main

import (
     "context"
     "database/sql"
     "fmt"

     "github.com/aws/aws-sdk-go-v2/config"
     "github.com/aws/aws-sdk-go-v2/feature/rds/auth"
     _ "github.com/lib/pq"
)

func main() {

     var dbName string = "DatabaseName"
     var dbUser string = "DatabaseUser"
     var dbHost string = "postgresmydb.123456789012.us-east-1.rds.amazonaws.com"
     var dbPort int = 5432
     var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort)
     var region string = "us-east-1"

    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
    	panic("configuration error: " + err.Error())
    }

    authenticationToken, err := auth.BuildAuthToken(
    	context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials)
    if err != nil {
	    panic("failed to create authentication token: " + err.Error())
    }

    dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s",
        dbHost, dbPort, dbUser, authenticationToken, dbName,
    )

    db, err := sql.Open("postgres", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

## Verbindung mithilfe der IAM-Authentifizierung und V1 herstellen. AWS SDK für Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.GoV1"></a>

Sie können mithilfe der IAM-Authentifizierung und V1 eine Verbindung zu einem  herstellen AWS SDK für Go 

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden. 

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her.

```
package main
         
import (
    "database/sql"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/service/rds/rdsutils"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    dbName := "app"
    dbUser := "jane_doe"
    dbHost := "mysqldb.123456789012.us-east-1.rds.amazonaws.com"
    dbPort := 3306
    dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort)
    region := "us-east-1"

    creds := credentials.NewEnvCredentials()
    authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds)
    if err != nil {
        panic(err)
    }

    dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true",
        dbUser, authToken, dbEndpoint, dbName,
    )

    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

```
package main

import (
	"database/sql"
	"fmt"

	"github.com/aws/aws-sdk-go/aws/credentials"
	"github.com/aws/aws-sdk-go/service/rds/rdsutils"
	_ "github.com/lib/pq"
)

func main() {
    dbName := "app"
    dbUser := "jane_doe"
    dbHost := "postgresmydb.123456789012.us-east-1.rds.amazonaws.com"
    dbPort := 5432
    dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort)
    region := "us-east-1"

    creds := credentials.NewEnvCredentials()
    authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds)
    if err != nil {
        panic(err)
    }

    dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s",
        dbHost, dbPort, dbUser, authToken, dbName,
    )

    db, err := sql.Open("postgres", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Java
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java"></a>

Sie können wie im Folgenden beschrieben eine Verbindung zu einer RDS for MariaDB-, MySQL- oder PostgreSQL-DB-Instance mit herstellen. AWS SDK für Java 

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)
+ [Richten Sie das AWS SDK for Java ein](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html)

Beispiele zur Verwendung des SDK für Java 2.x finden Sie unter [Amazon RDS examples using SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java_rds_code_examples.html). Sie können auch den AWS Advanced JDBC Wrapper verwenden, siehe [AWS Advanced JDBC](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/Documentation.md) Wrapper Dokumentation.

**Topics**
+ [Generieren eines IAM-Authentifizierungstokens](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken)
+ [Manuelles Erzeugen eines IAM-Authentifizierungstokens](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken2)
+ [Herstellen der Verbindung zu einem DB-Instance-](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken.Connect)

## Generieren eines IAM-Authentifizierungstokens
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken"></a>

Wenn Sie Programme mit dem schreiben AWS SDK für Java, können Sie mithilfe der Klasse ein signiertes Authentifizierungstoken erhalten. `RdsIamAuthTokenGenerator` Für die Verwendung dieser Klasse müssen Sie AWS Anmeldeinformationen angeben. Dazu erstellen Sie eine Instanz der `DefaultAWSCredentialsProviderChain` Klasse. `DefaultAWSCredentialsProviderChain`verwendet den ersten AWS Zugriffsschlüssel und den ersten geheimen Schlüssel, den es in der [standardmäßigen Anbieterkette für Anmeldeinformationen](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default) findet. Weitere Informationen über AWS -Zugriffsschlüssel finden Sie unter [Verwalten von Zugriffsschlüsseln für Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Nachdem Sie eine Instance von `RdsIamAuthTokenGenerator` erstellt haben, können Sie das `getAuthToken`-Verfahren aufrufen, um ein signiertes Token zu erhalten. Geben Sie die AWS -Region, den Hostnamen, die Portnummer und den Benutzernamen an. Der folgende Beispielcode veranschaulicht diese Vorgehensweise.

```
package com.amazonaws.codesamples;

import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.rds.auth.GetIamAuthTokenRequest;
import com.amazonaws.services.rds.auth.RdsIamAuthTokenGenerator;

public class GenerateRDSAuthToken {

    public static void main(String[] args) {

	    String region = "us-west-2";
	    String hostname = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
	    String port = "3306";
	    String username = "jane_doe";
	
	    System.out.println(generateAuthToken(region, hostname, port, username));
    }

    static String generateAuthToken(String region, String hostName, String port, String username) {

	    RdsIamAuthTokenGenerator generator = RdsIamAuthTokenGenerator.builder()
		    .credentials(new DefaultAWSCredentialsProviderChain())
		    .region(region)
		    .build();

	    String authToken = generator.getAuthToken(
		    GetIamAuthTokenRequest.builder()
		    .hostname(hostName)
		    .port(Integer.parseInt(port))
		    .userName(username)
		    .build());
	    
	    return authToken;
    }

}
```

## Manuelles Erzeugen eines IAM-Authentifizierungstokens
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken2"></a>

Der einfachste Weg in Java, um ein Authentifizierungstoken zu erzeugen, ist die Verwendung von `RdsIamAuthTokenGenerator`. Diese Klasse erstellt ein Authentifizierungstoken für Sie und signiert es dann mit der AWS Signaturversion 4. Weitere Informationen finden Sie unter [Signaturprozess mit Signaturversion 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) im *Allgemeine AWS-Referenz.*

Sie können allerdings das Authentifizierungstoken auch manuell erstellen und signieren, wie im folgenden Beispielcode dargestellt.

```
package com.amazonaws.codesamples;

import com.amazonaws.SdkClientException;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.auth.SigningAlgorithm;
import com.amazonaws.util.BinaryUtils;
import org.apache.commons.lang3.StringUtils;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SortedMap;
import java.util.TreeMap;

import static com.amazonaws.auth.internal.SignerConstants.AWS4_TERMINATOR;
import static com.amazonaws.util.StringUtils.UTF8;

public class CreateRDSAuthTokenManually {
    public static String httpMethod = "GET";
    public static String action = "connect";
    public static String canonicalURIParameter = "/";
    public static SortedMap<String, String> canonicalQueryParameters = new TreeMap();
    public static String payload = StringUtils.EMPTY;
    public static String signedHeader = "host";
    public static String algorithm = "AWS4-HMAC-SHA256";
    public static String serviceName = "rds-db";
    public static String requestWithoutSignature;

    public static void main(String[] args) throws Exception {

        String region = "us-west-2";
        String instanceName = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
        String port = "3306";
        String username = "jane_doe";
	
        Date now = new Date();
        String date = new SimpleDateFormat("yyyyMMdd").format(now);
        String dateTimeStamp = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'").format(now);
        DefaultAWSCredentialsProviderChain creds = new DefaultAWSCredentialsProviderChain();
	    String awsAccessKey = creds.getCredentials().getAWSAccessKeyId();
	    String awsSecretKey = creds.getCredentials().getAWSSecretKey();
        String expiryMinutes = "900";
        
        System.out.println("Step 1:  Create a canonical request:");
        String canonicalString = createCanonicalString(username, awsAccessKey, date, dateTimeStamp, region, expiryMinutes, instanceName, port);
        System.out.println(canonicalString);
        System.out.println();

        System.out.println("Step 2:  Create a string to sign:");        
        String stringToSign = createStringToSign(dateTimeStamp, canonicalString, awsAccessKey, date, region);
        System.out.println(stringToSign);
        System.out.println();

        System.out.println("Step 3:  Calculate the signature:");        
        String signature = BinaryUtils.toHex(calculateSignature(stringToSign, newSigningKey(awsSecretKey, date, region, serviceName)));
        System.out.println(signature);
        System.out.println();

        System.out.println("Step 4:  Add the signing info to the request");                
        System.out.println(appendSignature(signature));
        System.out.println();
        
    }

    //Step 1: Create a canonical request date should be in format YYYYMMDD and dateTime should be in format YYYYMMDDTHHMMSSZ
    public static String createCanonicalString(String user, String accessKey, String date, String dateTime, String region, String expiryPeriod, String hostName, String port) throws Exception {
        canonicalQueryParameters.put("Action", action);
        canonicalQueryParameters.put("DBUser", user);
        canonicalQueryParameters.put("X-Amz-Algorithm", "AWS4-HMAC-SHA256");
        canonicalQueryParameters.put("X-Amz-Credential", accessKey + "%2F" + date + "%2F" + region + "%2F" + serviceName + "%2Faws4_request");
        canonicalQueryParameters.put("X-Amz-Date", dateTime);
        canonicalQueryParameters.put("X-Amz-Expires", expiryPeriod);
        canonicalQueryParameters.put("X-Amz-SignedHeaders", signedHeader);
        String canonicalQueryString = "";
        while(!canonicalQueryParameters.isEmpty()) {
            String currentQueryParameter = canonicalQueryParameters.firstKey();
            String currentQueryParameterValue = canonicalQueryParameters.remove(currentQueryParameter);
            canonicalQueryString = canonicalQueryString + currentQueryParameter + "=" + currentQueryParameterValue;
            if (!currentQueryParameter.equals("X-Amz-SignedHeaders")) {
                canonicalQueryString += "&";
            }
        }
        String canonicalHeaders = "host:" + hostName + ":" + port + '\n';
        requestWithoutSignature = hostName + ":" + port + "/?" + canonicalQueryString;

        String hashedPayload = BinaryUtils.toHex(hash(payload));
        return httpMethod + '\n' + canonicalURIParameter + '\n' + canonicalQueryString + '\n' + canonicalHeaders + '\n' + signedHeader + '\n' + hashedPayload;

    }

    //Step 2: Create a string to sign using sig v4
    public static String createStringToSign(String dateTime, String canonicalRequest, String accessKey, String date, String region) throws Exception {
        String credentialScope = date + "/" + region + "/" + serviceName + "/aws4_request";
        return algorithm + '\n' + dateTime + '\n' + credentialScope + '\n' + BinaryUtils.toHex(hash(canonicalRequest));

    }

    //Step 3: Calculate signature
    /**
     * Step 3 of the &AWS; Signature version 4 calculation. It involves deriving
     * the signing key and computing the signature. Refer to
     * http://docs.aws.amazon
     * .com/general/latest/gr/sigv4-calculate-signature.html
     */
    public static byte[] calculateSignature(String stringToSign,
                                            byte[] signingKey) {
        return sign(stringToSign.getBytes(Charset.forName("UTF-8")), signingKey,
                SigningAlgorithm.HmacSHA256);
    }

    public static byte[] sign(byte[] data, byte[] key,
                          SigningAlgorithm algorithm) throws SdkClientException {
        try {
            Mac mac = algorithm.getMac();
            mac.init(new SecretKeySpec(key, algorithm.toString()));
            return mac.doFinal(data);
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to calculate a request signature: "
                            + e.getMessage(), e);
        }
    }

    public static byte[] newSigningKey(String secretKey,
                                   String dateStamp, String regionName, String serviceName) {
        byte[] kSecret = ("AWS4" + secretKey).getBytes(Charset.forName("UTF-8"));
        byte[] kDate = sign(dateStamp, kSecret, SigningAlgorithm.HmacSHA256);
        byte[] kRegion = sign(regionName, kDate, SigningAlgorithm.HmacSHA256);
        byte[] kService = sign(serviceName, kRegion,
                SigningAlgorithm.HmacSHA256);
        return sign(AWS4_TERMINATOR, kService, SigningAlgorithm.HmacSHA256);
    }

    public static byte[] sign(String stringData, byte[] key,
                       SigningAlgorithm algorithm) throws SdkClientException {
        try {
            byte[] data = stringData.getBytes(UTF8);
            return sign(data, key, algorithm);
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to calculate a request signature: "
                            + e.getMessage(), e);
        }
    }

    //Step 4: append the signature
    public static String appendSignature(String signature) {
        return requestWithoutSignature + "&X-Amz-Signature=" + signature;
    }

    public static byte[] hash(String s) throws Exception {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            md.update(s.getBytes(UTF8));
            return md.digest();
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to compute hash while signing request: "
                            + e.getMessage(), e);
        }
    }
}
```

## Herstellen der Verbindung zu einem DB-Instance-
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken.Connect"></a>

Im folgenden Codebeispiel wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer Instance für die Ausführung mit MariaDB oder MySQL verwenden können. 

Um dieses Codebeispiel auszuführen, benötigen Sie den [AWS SDK für Java](https://aws.amazon.com/sdk-for-java/), der auf der AWS Site zu finden ist. Außerdem benötigen Sie Folgendes:
+ MySQL Connector/J. Dieses Codebeispiel wurde mit `mysql-connector-java-5.1.33-bin.jar` getestet.
+ Ein Zwischenzertifikat für Amazon RDS , das für eine AWS Region spezifisch ist. (Weitere Informationen finden Sie unter [](UsingWithRDS.SSL.md).) Während der Laufzeit sucht der Class Loader das Zertifikat in demselben Verzeichnis, in dem sich dieser Java-Beispielcode befindet, damit er es finden kann.
+ Ändern Sie die Werte der folgenden Parameter nach Bedarf.
  + `RDS_INSTANCE_HOSTNAME` – Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.
  + `RDS_INSTANCE_PORT` – Die Nummer des Ports, der für die Verbindung zur PostgreSQL-DB-Instance verwendet wird.
  + `REGION_NAME`— Die AWS Region, in der der  ausgeführt wird.
  + `DB_USER` – Das Datenbankkonto, auf das Sie zugreifen möchten.
  + `SSL_CERTIFICATE`— Ein SSL-Zertifikat für Amazon RDS , das für eine AWS Region spezifisch ist.

    Informationen zum Herunterladen eines Zertifikats für Ihre AWS -Region finden Sie unter [](UsingWithRDS.SSL.md). Speichern Sie das SSL-Zertifikat in demselben Verzeichnis wie diese Java-Programmdatei ab, damit der Class Loader das Zertifikat während der Laufzeit finden kann.

In diesem Codebeispiel werden AWS Anmeldeinformationen aus der [standardmäßigen Anbieterkette für Anmeldeinformationen abgerufen](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default).

**Anmerkung**  
Geben Sie aus Sicherheitsgründen für `DEFAULT_KEY_STORE_PASSWORD` ein anderes Passwort als hier angegeben an.

```
package com.amazonaws.samples;

import com.amazonaws.services.rds.auth.RdsIamAuthTokenGenerator;
import com.amazonaws.services.rds.auth.GetIamAuthTokenRequest;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.auth.AWSStaticCredentialsProvider;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

import java.net.URL;

public class IAMDatabaseAuthenticationTester {
    //&AWS; Credentials of the IAM user with policy enabling IAM Database Authenticated access to the db by the db user.
    private static final DefaultAWSCredentialsProviderChain creds = new DefaultAWSCredentialsProviderChain();
    private static final String AWS_ACCESS_KEY = creds.getCredentials().getAWSAccessKeyId();
    private static final String AWS_SECRET_KEY = creds.getCredentials().getAWSSecretKey();

    //Configuration parameters for the generation of the IAM Database Authentication token
    private static final String RDS_INSTANCE_HOSTNAME = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
    private static final int RDS_INSTANCE_PORT = 3306;
    private static final String REGION_NAME = "us-west-2";
    private static final String DB_USER = "jane_doe";
    private static final String JDBC_URL = "jdbc:mysql://" + RDS_INSTANCE_HOSTNAME + ":" + RDS_INSTANCE_PORT;

    private static final String SSL_CERTIFICATE = "rds-ca-2019-us-west-2.pem";

    private static final String KEY_STORE_TYPE = "JKS";
    private static final String KEY_STORE_PROVIDER = "SUN";
    private static final String KEY_STORE_FILE_PREFIX = "sys-connect-via-ssl-test-cacerts";
    private static final String KEY_STORE_FILE_SUFFIX = ".jks";
    private static final String DEFAULT_KEY_STORE_PASSWORD = "changeit";

    public static void main(String[] args) throws Exception {
        //get the connection
        Connection connection = getDBConnectionUsingIam();

        //verify the connection is successful
        Statement stmt= connection.createStatement();
        ResultSet rs=stmt.executeQuery("SELECT 'Success!' FROM DUAL;");
        while (rs.next()) {
        	    String id = rs.getString(1);
            System.out.println(id); //Should print "Success!"
        }

        //close the connection
        stmt.close();
        connection.close();
        
        clearSslProperties();
        
    }

    /**
     * This method returns a connection to the db instance authenticated using IAM Database Authentication
     * @return
     * @throws Exception
     */
    private static Connection getDBConnectionUsingIam() throws Exception {
        setSslProperties();
        return DriverManager.getConnection(JDBC_URL, setMySqlConnectionProperties());
    }

    /**
     * This method sets the mysql connection properties which includes the IAM Database Authentication token
     * as the password. It also specifies that SSL verification is required.
     * @return
     */
    private static Properties setMySqlConnectionProperties() {
        Properties mysqlConnectionProperties = new Properties();
        mysqlConnectionProperties.setProperty("verifyServerCertificate","true");
        mysqlConnectionProperties.setProperty("useSSL", "true");
        mysqlConnectionProperties.setProperty("user",DB_USER);
        mysqlConnectionProperties.setProperty("password",generateAuthToken());
        return mysqlConnectionProperties;
    }

    /**
     * This method generates the IAM Auth Token.
     * An example IAM Auth Token would look like follows:
     * btusi123---cmz7kenwo2ye---rds---cn-north-1.amazonaws.com.rproxy.goskope.com.cn:3306/?Action=connect&DBUser=iamtestuser&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20171003T010726Z&X-Amz-SignedHeaders=host&X-Amz-Expires=899&X-Amz-Credential=AKIAPFXHGVDI5RNFO4AQ%2F20171003%2Fcn-north-1%2Frds-db%2Faws4_request&X-Amz-Signature=f9f45ef96c1f770cdad11a53e33ffa4c3730bc03fdee820cfdf1322eed15483b
     * @return
     */
    private static String generateAuthToken() {
        BasicAWSCredentials awsCredentials = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);

        RdsIamAuthTokenGenerator generator = RdsIamAuthTokenGenerator.builder()
                .credentials(new AWSStaticCredentialsProvider(awsCredentials)).region(REGION_NAME).build();
        return generator.getAuthToken(GetIamAuthTokenRequest.builder()
                .hostname(RDS_INSTANCE_HOSTNAME).port(RDS_INSTANCE_PORT).userName(DB_USER).build());
    }

    /**
     * This method sets the SSL properties which specify the key store file, its type and password:
     * @throws Exception
     */
    private static void setSslProperties() throws Exception {
        System.setProperty("javax.net.ssl.trustStore", createKeyStoreFile());
        System.setProperty("javax.net.ssl.trustStoreType", KEY_STORE_TYPE);
        System.setProperty("javax.net.ssl.trustStorePassword", DEFAULT_KEY_STORE_PASSWORD);
    }

    /**
     * This method returns the path of the Key Store File needed for the SSL verification during the IAM Database Authentication to
     * the db instance.
     * @return
     * @throws Exception
     */
    private static String createKeyStoreFile() throws Exception {
        return createKeyStoreFile(createCertificate()).getPath();
    }

    /**
     *  This method generates the SSL certificate
     * @return
     * @throws Exception
     */
    private static X509Certificate createCertificate() throws Exception {
        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        URL url = new File(SSL_CERTIFICATE).toURI().toURL();
        if (url == null) {
            throw new Exception();
        }
        try (InputStream certInputStream = url.openStream()) {
            return (X509Certificate) certFactory.generateCertificate(certInputStream);
        }
    }

    /**
     * This method creates the Key Store File
     * @param rootX509Certificate - the SSL certificate to be stored in the KeyStore
     * @return
     * @throws Exception
     */
    private static File createKeyStoreFile(X509Certificate rootX509Certificate) throws Exception {
        File keyStoreFile = File.createTempFile(KEY_STORE_FILE_PREFIX, KEY_STORE_FILE_SUFFIX);
        try (FileOutputStream fos = new FileOutputStream(keyStoreFile.getPath())) {
            KeyStore ks = KeyStore.getInstance(KEY_STORE_TYPE, KEY_STORE_PROVIDER);
            ks.load(null);
            ks.setCertificateEntry("rootCaCertificate", rootX509Certificate);
            ks.store(fos, DEFAULT_KEY_STORE_PASSWORD.toCharArray());
        }
        return keyStoreFile;
    }
    
    /**
     * This method clears the SSL properties.
     * @throws Exception
     */
    private static void clearSslProperties() throws Exception {
           System.clearProperty("javax.net.ssl.trustStore");
           System.clearProperty("javax.net.ssl.trustStoreType");
           System.clearProperty("javax.net.ssl.trustStorePassword"); 
    }
    
}
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung und der AWS SDK für Python (Boto3)
<a name="UsingWithRDS.IAMDBAuth.Connecting.Python"></a>

Sie können wie im Folgenden beschrieben eine Verbindung zu einer RDS for MariaDB-, MySQL- oder PostgreSQL-DB-Instance mit herstellen. AWS SDK für Python (Boto3) 

**Voraussetzungen**  
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
+ [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

Stellen Sie außerdem sicher, dass die importierten Bibliotheken im Beispielcode auf Ihrem System vorhanden sind.

**Beispiele**  
Die Codebeispiele verwenden Profile für freigegebene Anmeldeinformationen. [Informationen zur Angabe von Anmeldeinformationen finden Sie in der Dokumentation unter Anmeldeinformationen.](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) AWS SDK für Python (Boto3) 

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden. 

Um dieses Codebeispiel auszuführen, benötigen Sie den [AWS SDK für Python (Boto3)](https://aws.amazon.com/sdk-for-python/), auf der AWS Site zu finden.

Ändern Sie die Werte der folgenden Parameter nach Bedarf.
+ `ENDPOINT` – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.
+ `PORT` – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.
+ `USER` – Das Datenbankkonto, auf das Sie zugreifen möchten.
+ `REGION`— Die AWS Region, in der der  ausgeführt wird
+ `DBNAME` – Die Datenbank, auf die Sie zugreifen möchten.
+ `SSLCERTIFICATE` – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

  Geben Sie für `ssl_ca` ein SSL-Zertifikat an. Zum Download eines SSL-Zertifikats siehe [](UsingWithRDS.SSL.md).

**Anmerkung**  
Sie können keinen benutzerdefinierten Route-53-DNS-Datensatz anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her.

Bevor Sie diesen Code ausführen, installieren Sie den PyMy SQL-Treiber, indem Sie den Anweisungen im [Python-Paketindex](https://pypi.org/project/PyMySQL/) folgen.

```
import pymysql
import sys
import boto3
import os

ENDPOINT="mysqldb.123456789012.us-east-1.rds.amazonaws.com"
PORT="3306"
USER="jane_doe"
REGION="us-east-1"
DBNAME="mydb"
os.environ['LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN'] = '1'

#gets the credentials from .aws/credentials
session = boto3.Session(profile_name='default')
client = session.client('rds')

token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION)

try:
    conn =  pymysql.connect(auth_plugin_map={'mysql_clear_password':None},host=ENDPOINT, user=USER, password=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE', ssl_verify_identity=True, ssl_verify_cert=True)
    cur = conn.cursor()
    cur.execute("""SELECT now()""")
    query_results = cur.fetchall()
    print(query_results)
except Exception as e:
    print("Database connection failed due to {}".format(e))
```

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

Bevor Sie diesen Code ausführen, installieren Sie `psycopg2`, indem Sie die Anweisungen in der [Psycopg-Dokumentation](https://pypi.org/project/psycopg2/) befolgen.

```
import psycopg2
import sys
import boto3
import os

ENDPOINT="postgresmydb.123456789012.us-east-1.rds.amazonaws.com"
PORT="5432"
USER="jane_doe"
REGION="us-east-1"
DBNAME="mydb"

#gets the credentials from .aws/credentials
session = boto3.Session(profile_name='RDSCreds')
client = session.client('rds')

token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION)

try:
    conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USER, password=token, sslrootcert="SSLCERTIFICATE")
    cur = conn.cursor()
    cur.execute("""SELECT now()""")
    query_results = cur.fetchall()
    print(query_results)
except Exception as e:
    print("Database connection failed due to {}".format(e))
```

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Problembehebung bei der IAM-DB-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting"></a>

Im Folgenden finden Sie Tipps zur Problembehebung für einige häufige IAM-DB-Authentifizierungsprobleme und Informationen zu CloudWatch-Protokollen und Metriken für die IAM-DB-Authentifizierung.

## Exportieren von Fehlerprotokolle zur IAM-DB-Authentifizierung in CloudWatch Logs
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.ErrorLogs"></a>

Fehlerprotokolle zur IAM-DB-Authentifizierung werden auf dem Datenbank-Host gespeichert und Sie können diese Protokolle in Ihr CloudWatch-Logs-Konto exportieren. Verwenden Sie die Protokolle und Problembehebungsmethoden auf dieser Seite, um Probleme mit der IAM-DB-Authentifizierung zu beheben.

Sie können Protokollexporte nach CloudWatch Logs über die Konsole, die AWS CLI und die RDS-API aktivieren. Anleitungen zur Konsole finden Sie unter [Veröffentlichen von Datenbankprotokollen in Amazon CloudWatch Logs](USER_LogAccess.Procedural.UploadtoCloudWatch.md).

Verwenden Sie den folgenden Befehl, um Ihre IAM-DB-Authentifizierungsfehlerprotokolle nach CloudWatch Logs zu exportieren, wenn Sie eine DB-Instance über die AWS CLI erstellen:

```
aws rds create-db-instance --db-instance-identifier mydbinstance \
--region us-east-1 \
--db-instance-class db.t3.large \
--allocated-storage 50 \
--engine postgres \
--engine-version 16 \
--port 5432 \
--master-username master \
--master-user-password password \
--publicly-accessible \
--enable-iam-database-authentication \
--enable-cloudwatch-logs-exports=iam-db-auth-error
```

Verwenden Sie den folgenden Befehl, um Ihre IAM-DB-Authentifizierungsfehlerprotokolle nach CloudWatch Logs zu exportieren, wenn Sie eine DB-Instance über die AWS CLI ändern:

```
aws rds modify-db-instance --db-instance-identifier mydbinstance \
--region us-east-1 \
--cloudwatch-logs-export-configuration '{"EnableLogTypes":["iam-db-auth-error"]}'
```

Um zu bestätigen, ob Ihre DB-Instance IAM-DB-Authentifizierungsprotokolle nach CloudWatch Logs exportiert, überprüfen Sie, ob der Parameter `EnabledCloudwatchLogsExports` in der Ausgabe für den Befehl `describe-db-instances` auf `iam-db-auth-error` festgelegt ist.

```
aws rds describe-db-instances --region us-east-1 --db-instance-identifier mydbinstance
            ...
            
             "EnabledCloudwatchLogsExports": [
                "iam-db-auth-error"
            ],
            ...
```

## CloudWatch-Metriken zur IAM-DB-Authentifizierung
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.CWMetrics"></a>

Amazon RDS liefert nahezu in Echtzeit Metriken zur IAM-DB-Authentifizierung für Ihr Amazon-CloudWatch-Konto. Die folgende Tabelle listet die IAM-DB-Authentifizierungsmetriken auf, die in CloudWatch verfügbar sind:


| Metrik | Beschreibung | 
| --- | --- | 
|  `IamDbAuthConnectionRequests`  |  Gesamtzahl der Verbindungsanfragen, die mit der IAM-DB-Authentifizierung gestellt wurden  | 
|  `IamDbAuthConnectionSuccess`  |  Gesamtzahl der erfolgreichen IAM-DB-Authentifizierungsanfragen  | 
|  `IamDbAuthConnectionFailure`  |  Gesamtzahl der fehlgeschlagenen IAM-DB-Authentifizierungsanfragen  | 
|  `IamDbAuthConnectionFailureInvalidToken`  | Gesamtzahl der aufgrund ungültiger Token fehlgeschlagenen IAM-DB-Authentifizierungsanfragen | 
|  `IamDbAuthConnectionFailureInsufficientPermissions`  |  Gesamtzahl der aufgrund falscher Richtlinien oder Berechtigungen fehlgeschlagenen IAM-DB-Authentifizierungsanfragen  | 
|  `IamDbAuthConnectionFailureThrottling`  |  Gesamtzahl der aufgrund der Drosselung der IAM-DB-Authentifizierung fehlgeschlagenen IAM-DB-Authentifizierungsanfragen  | 
|  `IamDbAuthConnectionFailureServerError`  |  Gesamtzahl der aufgrund interner Serverfehler im IAM-DB-Authentifizierungsfeature fehlgeschlagenen IAM-DB-Authentifizierungsanfragen  | 

## Häufige Probleme und Lösungen
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.IssuesSolutions"></a>

 Bei der Verwendung der IAM-DB-Authentifizierung können die folgenden Probleme auftreten. Verwenden Sie die Schritte zur Problembehebung in der Tabelle, um die Probleme zu lösen:


| Fehler | Metrik(en) | Ursache | Lösung | 
| --- | --- | --- | --- | 
|  `[ERROR] Failed to authenticate the connection request for user db_user because the provided token is malformed or otherwise invalid. (Status Code: 400, Error Code: InvalidToken)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInvalidToken`  |  Das Token zur IAM-DB-Authentifizierung in der Verbindungsanfrage ist entweder kein gültiges SigV4A-Token oder es ist nicht richtig formatiert.  |  Überprüfen Sie Ihre Strategie zur Token-Generierung in Ihrer Anwendung. In einigen Fällen müssen Sie sicherstellen, dass Sie das Token mit einer gültigen Formatierung übergeben. Wenn Sie das Token kürzen (oder eine falsche Zeichenkettenformatierung verwendet wurde), wird das Token ungültig.   | 
|  `[ERROR] Failed to authenticate the connection request for user db_user because the token age is longer than 15 minutes. (Status Code: 400, Error Code:ExpiredToken)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInvalidToken`  |  Das Token für die IAM-DB-Authentifizierung ist abgelaufen. Tokens sind nur 15 Minuten lang gültig.  |  Überprüfen Sie Ihre Token-Zwischenspeicherung und/oder Token-Wiederverwendungslogik in Ihrer Anwendung. Sie sollten Token, die älter als 15 Minuten sind, nicht wiederverwenden.  | 
|  `[ERROR] Failed to authorize the connection request for user db_user because the IAM policy assumed by the caller 'arn:aws:sts::123456789012:assumed-role/ <RoleName>/ <RoleSession>' is not authorized to perform `rds-db:connect` on the DB instance. (Status Code: 403, Error Code:NotAuthorized)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInsufficientPermissions`  |  Dies kann folgende Ursachen haben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Troubleshooting.html)  |  Überprüfen Sie die IAM-Rolle und/oder -Richtlinie, die Sie in Ihrer Anwendung annehmen. Stellen Sie sicher, dass Sie für die Generierung des Tokens dieselbe Richtlinie annehmen wie für die Verbindung mit der DB.   | 
|  `[ERROR] Failed to authorize the connection request for user db_user due to IAM DB authentication throttling. (Status Code: 429, Error Code: ThrottlingException)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureThrottling`  | Sie stellen in kurzer Zeit zu viele Verbindungsanforderungen an Ihre DB. Das Limit für die Drosselung der IAM-DB-Authentifizierung liegt bei 200 Verbindungen pro Sekunde. |  Reduzieren Sie die Geschwindigkeit, mit der neue Verbindungen mit IAM-Authentifizierung hergestellt werden. Erwägen Sie die Implementierung von Verbindungspooling mithilfe von RDS-Proxy, um vorhandene Verbindungen in Ihrer Anwendung wiederzuverwenden.  | 
|  `[ERROR] Failed to authorize the connection request for user db_user due to an internal IAM DB authentication error. (Status Code: 500, Error Code: InternalError)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureThrottling` |  Bei der Autorisierung der DB-Verbindung mit der IAM-DB-Authentifizierung ist ein interner Fehler aufgetreten.  |  Wenden Sie sich an https://aws.amazon.com/premiumsupport/, um das Problem zu untersuchen.  | 

# Fehlerbehebung für Amazon RDS-Identität und -Zugriff
<a name="security_iam_troubleshoot"></a>

Verwenden Sie die folgenden Informationen, um häufige Probleme zu diagnostizieren und zu beheben, die beim Arbeiten mit Amazon RDS und IAM auftreten könnten.

**Topics**
+ [Ich bin nicht autorisiert, eine Aktion in Amazon RDS auszuführen](#security_iam_troubleshoot-no-permissions)
+ [Ich bin nicht berechtigt, iam auszuführen: PassRole](#security_iam_troubleshoot-passrole)
+ [Ich möchte Personen außerhalb meines AWS Kontos den Zugriff auf meine Amazon RDS ermöglichen](#security_iam_troubleshoot-cross-account-access)

## Ich bin nicht autorisiert, eine Aktion in Amazon RDS auszuführen
<a name="security_iam_troubleshoot-no-permissions"></a>

Wenn Ihnen AWS-Managementkonsole mitgeteilt wird, dass Sie nicht berechtigt sind, eine Aktion auszuführen, müssen Sie sich an Ihren Administrator wenden, um Unterstützung zu erhalten. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt.

Der folgende Beispielfehler tritt auf, wenn der `mateojackson` Benutzer versucht, die Konsole zu verwenden, um Details zu einem anzuzeigen, *widget* aber nicht über die `rds:GetWidget` entsprechenden Berechtigungen verfügt.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: rds:GetWidget on resource: my-example-widget
```

In diesem Fall bittet Mateo seinen Administrator um die Aktualisierung seiner Richtlinien, um unter Verwendung der Aktion `my-example-widget` auf die Ressource `rds:GetWidget` zugreifen zu können.

## Ich bin nicht berechtigt, iam auszuführen: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Wenn Sie die Fehlermeldung erhalten, dass Sie nicht zur Ausführung der `iam:PassRole` Aktion autorisiert sind, müssen Sie sich an Ihren Administrator wenden, um Unterstützung zu erhalten. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt. Bitten Sie diese Person um die Aktualisierung Ihrer Richtlinien, um eine Rolle an Amazon RDS übergeben zu können.

Bei einigen AWS Diensten können Sie eine bestehende Rolle an diesen Dienst übergeben, anstatt eine neue Servicerolle oder eine dienstverknüpfte Rolle zu erstellen. Hierzu benötigen Sie Berechtigungen für die Übergabe der Rolle an den Dienst.

Der folgende Beispielfehler tritt auf, wenn ein Benutzer mit dem Namen `marymajor` versucht, die Konsole zu verwenden, um eine Aktion in Amazon RDS auszuführen. Die Aktion erfordert jedoch, dass der Service über Berechtigungen verfügt, die durch eine Service-Rolle gewährt werden. Mary besitzt keine Berechtigungen für die Übergabe der Rolle an den Service.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In diesem Fall bittet Mary ihren Administrator um die Aktualisierung ihrer Richtlinien, um die Aktion `iam:PassRole` ausführen zu können.

## Ich möchte Personen außerhalb meines AWS Kontos den Zugriff auf meine Amazon RDS ermöglichen
<a name="security_iam_troubleshoot-cross-account-access"></a>

Sie können eine Rolle erstellen, mit der Benutzer in anderen Konten oder Personen außerhalb Ihrer Organisation auf Ihre Ressourcen zugreifen können. Sie können festlegen, wem die Übernahme der Rolle anvertraut wird. Für Dienste, die ressourcenbasierte Richtlinien oder Zugriffskontrolllisten (ACLs) unterstützen, können Sie diese Richtlinien verwenden, um Personen Zugriff auf Ihre Ressourcen zu gewähren.

Weitere Informationen dazu finden Sie hier:
+ Informationen dazu, ob Amazon RDS diese Funktionen unterstützt, finden Sie unter [Funktionsweise von Amazon RDS mit IAM](security_iam_service-with-iam.md).
+ *Informationen dazu, wie Sie den Zugriff auf Ihre Ressourcen mit Ihren AWS Konten gewähren können, finden Sie im IAM-Benutzerhandbuch unter [Gewähren des Zugriffs für einen IAM-Benutzer in einem anderen AWS Konto, das Sie besitzen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html).*
+ Informationen dazu, wie Sie AWS Konten von Drittanbietern Zugriff auf Ihre Ressourcen gewähren, finden Sie im *IAM-Benutzerhandbuch* [unter Zugriff auf AWS Konten, die Dritten gehören](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html).
+ Informationen dazu, wie Sie über einen Identitätsverbund Zugriff gewähren, finden Sie unter [Gewähren von Zugriff für extern authentifizierte Benutzer (Identitätsverbund)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) im *IAM-Benutzerhandbuch*.
+ Informationen zum Unterschied zwischen der Verwendung von Rollen und ressourcenbasierten Richtlinien für den kontoübergreifenden Zugriff finden Sie unter [So unterscheiden sich IAM-Rollen von ressourcenbasierten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html) im *IAM-Benutzerhandbuch*.