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.
Amazon DocumentDB-Benutzer und -Anwendungen können IAM-Benutzer und -Rollen verwenden, um sich in einem Amazon DocumentDB-Cluster zu authentifizieren. Die Amazon DocumentDB IAM-Authentifizierung ist eine kennwortlose Authentifizierungsmethode. Außerdem senden Client-Anwendungen die Kennwortgeheimnisse nicht an den Amazon DocumentDB-Cluster, wenn sie IAM-Rollen/-Benutzer verwenden. Stattdessen werden Client-Verbindungen mithilfe temporärer Sicherheitstoken authentifiziert. AWS STS Benutzer und Anwendungen ohne Administratorrechte können jetzt denselben IAM-Identitäts-RN verwenden, wenn sie ARN Verbindung zu verschiedenen Amazon DocumentDB-Clustern und anderen Diensten herstellen. AWS
Sie können sich auch dafür entscheiden, sowohl die kennwortbasierte als auch die IAM-Authentifizierung zu verwenden, um Benutzer und Anwendungen in einem Amazon DocumentDB-Cluster zu authentifizieren. Die IAM-Authentifizierung ist nur in der instanzbasierten Amazon DocumentDB-Cluster-Version 5.0 verfügbar. Die IAM-Authentifizierung mit IAM-Identität ARNs wird für den Amazon DocumentDB DocumentDB-Hauptbenutzer nicht unterstützt.
Anmerkung
Der Hauptbenutzer kann nur mithilfe einer vorhandenen passwortbasierten Authentifizierung authentifiziert werden.
Erste Schritte mit der Authentifizierung mithilfe von IAM-Benutzern und -Rollen
Amazon DocumentDB DocumentDB-Benutzer und -Rollen mit IAM-Identitäten werden in einer Datenbank erstellt und verwaltet. $external
Einen Benutzer erstellen
Connect als Hauptbenutzer her und erstellen Sie dann einen IAM-Benutzer und eine IAM-Rolle:
use $external; db.createUser( { user: "arn:aws:iam::123456789123:user/iamuser", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Alternativ können Sie einen Amazon DocumentDB DocumentDB-Benutzer mit einer IAM-Rolle hinzufügen:
use $external; db.createUser( { user: "arn:aws:iam::123456789123:role/iamrole", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Ändern eines IAM-Benutzers oder einer IAM-Rolle
Ändern Sie einen vorhandenen IAM-Benutzer:
use $external; db.updateUser( "arn:aws:iam::123456789123:user/iamuser", { roles: [ { role: "read", db: "readDB" } ] } );
Ändern Sie eine bestehende IAM-Rolle:
use $external; db.updateUser( "arn:aws:iam::123456789123:role/iamrole", { roles: [ { role: "read", db: "readDB" } ] } );
So gewähren oder entziehen Sie einem IAM-Benutzer Rollen:
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
So gewähren oder entziehen Sie Rollen für eine IAM-Rolle:
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
Löschen eines IAM-Benutzers oder einer IAM-Rolle
Um einen vorhandenen IAM-Benutzer zu löschen:
use $external; db.dropUser("arn:aws:iam::123456789123:user/iamuser");
Um eine bestehende IAM-Rolle zu löschen:
use $external; db.dropUser("arn:aws:iam::123456789123:role/iamrole");
Konfigurieren Sie einen Verbindungs-URI für die Authentifizierung mit IAM AWS
Verwenden Sie die folgenden URI-Parameter, um sich mit AWS IAM zu authentifizieren: authSource
as und as. $external
authMechanism
MONGODB-AWS
Wenn Sie einen IAM-Benutzer verwenden, werden die Felder für den Benutzernamen und das Passwort durch einen Zugriffsschlüssel bzw. einen geheimen Schlüssel ersetzt. Wenn Sie eine IAM-Rolle übernehmen, die der Umgebung zugeordnet ist, in der Sie sich befinden (z. B. AWS Lambda Funktion, EC2 Amazon-Instance). Sie müssen bei der Authentifizierung mit diesem Mechanismus keine speziellen Anmeldeinformationen angeben. MONGODB-AWS
Wenn Sie MongoDB-Treiber verwenden, die den MONGODB-AWS
Authentifizierungsmechanismus unterstützen, können die Treiber auch IAM-Rollenanmeldedaten von der Compute-Instance abrufen (z. B. Amazon EC2, Lambda-Funktion und andere). Im folgenden Beispiel wird eine Mongo-Shell zur Authentifizierung verwendet, MONGODB-AWS
indem ein Zugriffsschlüssel und ein geheimer Schlüssel (eines IAM-Benutzers) manuell übergeben werden, um die Authentifizierung gegenüber Amazon DocumentDB nachzuweisen.
Im folgenden Beispiel wird Python-Code zur Authentifizierung verwendet, MONGODB-AWS
ohne dass Anmeldeinformationen explizit übergeben werden (mithilfe einer der Umgebung zugewiesenen IAM-Rolle), um die Authentifizierung gegenüber Amazon DocumentDB zu demonstrieren.
##Create a MongoDB client, open a connection to Amazon DocumentDB using an IAM role client = pymongo.MongoClient(‘mongodb://<DocDBEndpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false&authSource=%24external&authMechanism=MONGODB-AWS')
Im folgenden Beispiel wird eine Mongo-Shell verwendet, um sich mithilfe eines MONGODB-AWS
Mechanismus zu authentifizieren, indem ein Zugriffsschlüssel und ein geheimer Schlüssel (eines IAM-Benutzers) manuell übergeben werden, um die Authentifizierung gegenüber Amazon DocumentDB nachzuweisen.
$ mongo 'mongodb://<access_key>:<secret_key>@<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
Im folgenden Beispiel wird eine Mongo-Shell zur Authentifizierung verwendet, MONGODB-AWS
ohne dass Anmeldeinformationen explizit übergeben werden (mithilfe der der Umgebung zugewiesenen IAM-Rolle), um die Authentifizierung gegenüber Amazon DocumentDB zu demonstrieren.
$ mongo 'mongodb://<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
Konfiguration von AWS Compute-Typen für die Authentifizierung bei Amazon DocumentDB mithilfe von IAM AWS
Amazon verwenden EC2/AWS Lambda/AWS Fargate
Amazon EC2 verwendet die folgenden Umgebungsvariablen. Wenn der EC2 Instance eine IAM-Rolle oder eine Ausführungs-IAM-Rolle mit einer Lambda-Funktion oder einer Amazon ECS-Aufgabe verknüpft ist, werden diese Variablen automatisch gefüllt und der Treiber kann diese Werte aus der Umgebung abrufen:
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
Weitere Informationen zu Umgebungsvariablen finden Sie unter Verwenden von Lambda-Umgebungsvariablen im AWS Lambda Entwicklerhandbuch.
Amazon EKS verwenden
Wenn Sie Ihren Amazon Elastic Kubernetes Service (Amazon EKS) -Pods eine Rolle zuweisen, werden automatisch die folgenden beiden Umgebungsvariablen eingerichtet:
AWS_WEB_IDENTITY_TOKEN_FILE - path of web identity token file AWS_ROLE_ARN - Name of IAM role to connect with
Übernehmen Sie mithilfe dieser Variablen manuell die Rolle aus Ihrem Code mithilfe des AWS SDK-Aufrufs für: AssumeRoleWithWebIdentity
Lassen Sie den
ProviderID
Parameter weg.Suchen Sie den Wert des
WebIdentityToken
Parameters in der Datei, die in derAWS_WEB_IDENTITY_TOKEN_FILE
Umgebungsvariablen beschrieben ist.
Weitere Informationen zu Amazon EKS finden Sie unter Was ist Amazon EKS im Amazon EKS-Benutzerhandbuch.
Überwachung von IAM-Authentifizierungsanfragen
Amazon DocumentDB DocumentDB-Auditing verwenden
Gehen Sie zum Audit-Log-Ordner in Amazon und verwenden Sie verschiedene Suchmuster CloudWatch, um die Protokolle für die IAM-Authentifizierung abzurufen. Verwenden Sie es beispielsweise { $.param.mechanism = "MONGODB-AWS" }
als Suchmuster für „Alle Protokollstreams durchsuchen“.
Weitere Informationen zu unterstützten Ereignissen bei der Überwachung finden Sie unterAmazon DocumentDB DocumentDB-Ereignisse prüfen.
Verwenden von CloudWatch Amazon-Metriken
StsGetCallerIdentityCalls
: Diese Metrik zeigt, wie viele GetCallerIdentity
Aufrufe eine Amazon DocumentDB DocumentDB-Instance an den regionalized AWS Security Token Service (AWS STS) -Endpunkt tätigt. In der MONGODB-AWS
Authentifizierungsspezifikation erfahren Sie, warum Datenbank-Instances GetCallerIdentity
STS-Aufrufe tätigen müssen.
Verwenden der IAM-Authentifizierung
Wenn Sie den Benutzernamen und das Passwort nicht in Ihrer eigenen Datenbank verwalten möchten, können Sie die IAM-Authentifizierung verwenden. Die IAM-Authentifizierung ist nur in der instanzbasierten Amazon DocumentDB-Cluster-Version 5.0 verfügbar.
Die IAM-Authentifizierung ist vom STS-Service abhängig. Wir empfehlen Ihnen, zu prüfen, ob Sie die Verbindungsrate senken können, wenn Sie die IAM-Authentifizierung für die Verbindung verwenden und eine STS-Drosselungsausnahme auftritt.
Informationen zu IAM-Kontingenten finden Sie unter IAM und AWS STS Kontingente im IAM-Benutzerhandbuch.
Treiber, die IAM unterstützen
Treiber, die Amazon DocumentDB 5.0 und den MONGODB-AWS
Authentifizierungsmechanismus unterstützen, sollten mit der IAM-Authentifizierungsimplementierung in Amazon DocumentDB funktionieren.
Wichtig
Es gibt eine bekannte Einschränkung bei Treibern von Node.js, die älter als Version 6.13.1 sind und die derzeit nicht von der IAM-Identitätsauthentifizierung für Amazon DocumentDB unterstützt werden. Die Treiber und Tools der Datei Node.js, die den Treiber Node.js verwenden (z. B. mongosh), müssen aktualisiert werden, sodass sie den Treiber Node.js der Version 6.13.1 oder höher verwenden.
Häufig gestellte Fragen zur IAM-Identitätsauthentifizierung
Gibt es Beispiele, auf die ich mich beziehen kann?
Auf diesen Seiten finden Sie Beispiele für Anwendungsfälle und Konfigurationen:
Ich erhalte eine Fehlermeldung bei der Verwendung meines Python-Treibers: „pymongo.errors. ConfigurationError: MONGODB-AWS Authentifizierung erfordert“. pymongo-auth-aws Wie kann ich das lösen?
Bitte stellen Sie sicher, dass Sie bei der Installation des Python-Treibers mit IAM-Authentifizierung die folgende Anweisung verwenden:
pip install 'pymongo[aws]'
Dadurch werden die zusätzlichen AWS Abhängigkeiten installiert, die für das Funktionieren der IAM-Authentifizierung erforderlich sind.
Wird meine Verbindung unterbrochen, wenn meine temporären Anmeldeinformationen für meine IAM-Rolle ablaufen?
Nein, die temporären IAM-Anmeldeinformationen werden nur für den Verbindungsaufbau und die Authentifizierung verwendet. Dann erfolgt die gesamte weitere Autorisierung im Amazon DocumentDB-Cluster. Selbst wenn die IAM-Anmeldeinformationen rotieren/ablaufen, wird die Verbindung nicht unterbrochen oder veraltet.