Wie rufe ich eine API-Gateway mit Cognito-Anmeldeinformationen in Python
Habe ich es geschafft, um das setup ein API-Gateway gesichert mit Cognito. Die nicht authentifizierter Benutzer-Rolle hat eine Zugriffsrichtlinie, die sollten es gewähren Zugriff auf das gateway. Ich habe es auch geschafft, verwenden boto3, um eine Identität ID aus dem pool und erhalten die zugehörigen open-ID-token, sowie die damit verbundenen Geheimnis-und access-keys.
Wie kann ich jetzt einen Anruf tätigen, um das gateway mit diesen Zugangsdaten? Gibt es eine Möglichkeit zu nutzen boto3 behandeln die Unterzeichnung einer Anfrage zu einer bestimmten Methode, die auf der API?
InformationsquelleAutor LaserJesus | 2016-05-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel aus unserem öffentlichen Google docs: http://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html
Cognito creds sind nicht anders als jede andere temporäre creds, und die Signierung ist auch die gleiche. Wenn Sie möchten, um zurück zu Python-Beispiel oben sollte gut sein, oder ich würde vermuten, dass es gibt Drittanbieter-Bibliotheken gibt, zu tun, die Unterschrift für Sie.
Yep, es ist auf Rückstand, schließlich wollen wir unterstützen die gleichen SDKs, AWS veröffentlicht für Dienstleistungen, aber es gibt keine ETA. In Bezug auf Ihre eigenen Rollen, ja, Sie können heben Sie die Unterzeichnung Bibliothek aus einer bestehenden Python-SDK und ändern Sie einfach den service-Namen in "ausführen-api'
Ich nehme Ihre Antwort, ein paar Monate später, verwendet die API Jack sagte, war in der Werke? Wenn ja, würde ich abstimmen, wie die akzeptierte Antwort.
InformationsquelleAutor Jack Kohn - AWS
Den folgenden code (und die-Anfragen-aws4auth Bibliothek) hat die Aufgabe:
Ich glaube, es ist etwas, das Sie finden können in der AWS-Konsole, wenn Sie Zugriff auf den management-Bereich für Ihr-API-gateway-Anwendung, D. H. <Ihre api-Präfix " >".execute-api.us-east-1.amazonaws.com . Wenn im managment Bereich, klicken Sie auf den Abschnitt "Ressourcen" auf der linken Seite, dann klicken Sie auf eines der Endgeräte in Ihrem gateway, d.h. /Haustiere, die vollständige URL einschließlich des Präfix wird angezeigt, auf der rechten Seite
Können Sie beschreiben, wo man die anderen Werte zu, bitte? Ich bin sicher, es ist offensichtlich für Menschen, die ' ve wurde mit, ZIEL für mehr als ich, aber dieser code ist nicht für mich arbeiten, also werde ich wahrscheinlich bekommen
account_id
undapi_prefix
von der falschen Stelle. Ich bin mir auch nicht sicher, ob meineidentity_pool_id
ist richtig; wenn ich nach User-Pools→Pool-Details→Pool-Id, hat mir einen Unterstrich in es, nicht einen Doppelpunkt, so wie in deinem Beispiel (und wie in der Dokumentation unter boto3.readthedocs.io/de/latest/Referenz/services/...)Ich schließlich habe es funktioniert. Mein main Verwirrung war zwischen user-pools und identity pools. Ich habe meine eigene Antwort, die hoffentlich macht es klarer, wo man die gewünschten Werte ein.
InformationsquelleAutor LaserJesus
Mein code basiert weitgehend auf der Fragesteller die Antwort, aber ich habe versucht, deutlicher machen, wo alle Werte kommen aus.
InformationsquelleAutor Michael Scheper
identity_pool_id, wie man
Wenn Sie nicht federated-pool, die Ihnen geben könnte "identity_pool_id" ,
Ausführung code unten geben Sie identity_pool_id
InformationsquelleAutor Victor Sigal