Direkt zum Inhalt

Hallo AWS - Authentifizierungsmodul

Hallo AWS – Authentifizierungsmodul

Ich habe vor Kurzem eine neue Serie auf Youtube mit dem Titel HelloAWS gestartet. Als Ergänzung zu den Videos dachte ich, es wäre hilfreich, eine Reihe von Blogs zu erstellen, die die Videos begleiten – in einem Blog kann ich so viele Details hinzufügen, wie ich möchte, ohne Angst haben zu müssen, dass ich zu viel Zeit benötige. Genau wie die Videos wird sich diese Serie auf AWS und die Verwendung ihrer Dienste in AWS konzentrieren. Mendix.

Wir haben hart daran gearbeitet, eine Reihe von Konnektoren zu entwickeln, um AWS-Services einfacher zu verwenden, wenn man wenig Code verwendet. In dieser Serie werde ich erklären, wie jedes dieser Module funktioniert, und Ihnen zeigen, wie Sie sie in Ihrem Mendix Entwicklung.

Wenn Sie einen dieser tollen neuen Konnektoren verwenden möchten, müssen Sie zunächst Ihren Mendix App mithilfe des AWS-Authentifizierungsmoduls, also werden wir es uns in diesem Video ansehen.

Ein kurzer Blick auf die AWS-Module und -Konnektoren, die ich in dieser Reihe behandeln werde:

  • AWS-Authentifizierung
  • Amazon-Anerkennung
  • AWS Lambda
  • Amazon DynamoDB
  • AmazonSNS
  • Amazontext
  • Amazonas Polly
  • Amazon Übersetzen
  • Amazon S3
  • Amazon EventBridge

Herunterladen

Um mit der Einrichtung zu beginnen, können wir in Studio Pro auf das Einkaufswagensymbol klicken, um das Marktplatzfenster im Seitenfenster zu öffnen. Suchen Sie nach dem „AWS Authentication Connector“ und klicken Sie darauf, um ihn zu öffnen. Als Nächstes können wir auf „Herunterladen“ klicken, ihn dann als neues Modul hinzufügen und zur Bestätigung auf „Importieren“ klicken.

Statische Anmeldeinformationen vs. Sitzungsanmeldeinformationen

In der Beschreibung im Marketplace heißt es, dass dieses Modul zwei Formen der Authentifizierung mit AWS unterstützt. Erstens haben wir statische Anmeldeinformationen und dann sitzungsbasierte Anmeldeinformationen.

Was ist der Unterschied?

Statische Anmeldeinformationen funktioniert mit einer Kombination aus Zugriffsschlüssel und Geheimschlüssel und dürfte den meisten Entwicklern vertrauter sein. Diese Methode ist jedoch weniger sicher. Wenn jemand Zugriff auf diese Anmeldeinformationen erhält, ist Ihre App möglicherweise gefährdet.

Sitzungsbasierte Anmeldeinformationen Arbeiten Sie mit kurzlebigen Token, die nur für einen kurzen Zeitraum gültig sind. Dies funktioniert, indem im Vorfeld mithilfe der neuen Funktion „Roles Anywhere“ von AWS Vertrauen hergestellt wird. Sobald Vertrauen hergestellt wurde, können Sie Sigv4-Header generieren, um Ihre Anfragen an AWS zu signieren.

Was sind Sigv4-Header?

Signature Version 4 ist das AWS-Signaturprotokoll, das zur Autorisierung von REST-API-Anfragen für AWS-Dienste erforderlich ist. Mit anderen Worten handelt es sich um spezielle Header, die Sie Ihrem REST-Aufruf hinzufügen müssen, um eine sichere Verbindung mit AWS herzustellen.

Einen Vertrauensanker schaffen

Wir werden uns für den nächsten Teil dieses Builds bei der AWS-Konsole anmelden. Sobald Sie angemeldet sind, suchen Sie überall in der Suchleiste nach Rollen.

Hier müssen wir eine Rolle in Rollen überall erstellen. Dies ist ein schneller dreistufiger Prozess. Zuerst müssen wir einen Vertrauensanker erstellen. Klicken Sie also auf die Schaltfläche.

Stellen Sie sicher, dass Ihre Region oben auf dem Bildschirm korrekt ist, da diese mit Ihrem AWS-Projekt und später mit Ihrem Mendix App.

Geben Sie als Nächstes einen Namen für Ihren Vertrauensanker ein – „HelloAWS“. Jetzt müssen wir eine Zertifizierungsstelle angeben. Wir können entweder AWS Certificate Manager verwenden, um eine private Zertifizierungsstelle zu erstellen, oder wir können unsere eigene erstellen.

Weitere Informationen zum Erstellen einer eigenen Zertifizierungsstelle finden Sie unter Lesen Sie diesen Blog von meinem Kollegen Joe Robertson Informationen zum sicheren Herstellen einer Verbindung mit AWS-Diensten.

Als nächstes müssen wir „Hochladen eines externen Zertifikatspakets“ auswählen und dann können wir unsere Zertifikate in einem Texteditor öffnen. Kopieren Sie alles im Zertifikat, einschließlich der Beginnen und Ende Zertifikatszeilenund fügen Sie es dann in das Feld ein. Klicken Sie zur Bestätigung unten auf dem Bildschirm auf „Vertrauensanker erstellen“

Erstellen eines IAM-Benutzers

Schritt zwei dieses Prozesses besteht darin, eine neue IAM-Rolle zu erstellen. Zuvor müssen wir ein Profil für diese Rolle erstellen. Klicken Sie auf Profil konfigurieren

Klicken Sie unter Schritt zwei auf „Neue Rolle erstellen“. Wählen Sie dann die Option „Benutzerdefinierte Vertrauensrichtlinie erstellen“ und fügen Sie dieses JSON ein:

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"Service":"rolesanywhere.amazonaws.com"
},
"Action":[
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}

Anschließend müssen Sie Berechtigungen für diese Richtlinie hinzufügen. Hier wählen Sie aus, welche AWS-Dienste Sie verwenden möchten. Ich wähle Amazon Rekognition, da ich das in meinem nächsten Video verwenden werde. Ich wähle die Option für den Vollzugriff – Sie sollten dies jedoch auf das beschränken, was Ihre App in einem realen Szenario benötigt. Geben Sie abschließend einen Namen für Ihre neue Rolle ein (ich werde meine HelloAWS nennen) und klicken Sie unten auf „Rolle erstellen“.

Der letzte Schritt in der AWS-Konsole besteht darin, ein Profil mit der soeben erstellten Rolle zu erstellen. Scrollen Sie dazu im Dashboard „Roles Anywhere“ nach unten zu „Richtlinien“, und wir erstellen eine. Geben Sie ihr einfach einen Namen, wählen Sie die von uns erstellte Rolle aus, fügen Sie alle gewünschten Richtlinien hinzu – auch hier verwende ich wieder Amazon Rekognition – und klicken Sie dann unten auf dem Bildschirm auf „Erstellen“.

Abrufen von Sitzungsanmeldeinformationen

Jetzt können wir unsere Aktion direkt aufrufen, um Sitzungsanmeldeinformationen abzurufen, wo immer wir wollen. Wenn ich dies in Studio Pro öffne, sehen Sie, dass es einige Details von der AWS-Konsole erwartet. Es erwartet im Grunde alles, was wir gerade konfiguriert haben, und Sie geben diese hauptsächlich als ARNs für die Rolle, das Profil und den Vertrauensanker an.

Danach können wir die Anmeldeinformationen an die GetSigv4-Headeraktion übergeben, die die Header zum Signieren unserer Anfragen erzeugt.

Es ist wichtig zu beachten, dass Sie dieses Modul nicht direkt aufrufen sollten, wenn Sie es mit einem anderen Modul verwenden, beispielsweise mit dem von Amazon Rekognition. Stattdessen ist das Amazon Rekognition-Modul bereits dafür eingerichtet und erwartet nur, dass Sie die richtige App mithilfe von Konstanten konfigurieren.

Hochladen des Zertifikats

Als letztes müssen Sie sicherstellen, dass Ihre Mendix Die App hat Zugriff auf dieselbe Zertifizierungsstelle, die wir in die AWS-Konsole hochgeladen haben. Wir müssen einen Dateipfad zum Zertifikat angeben. Es ist wirklich wichtig zu beachten, dass AWS dieses Zertifikat im .pem-Format erwartet, aber Mendix erwartet, dass es im .pfx-Format vorliegt. Auch hier beschreibt Joe Robertsons Blog genau, wie das geht. Wenn Sie Ihr Zertifikat im richtigen Format haben, müssen wir Ihnen nur den Dateipfad angeben, wo es sich auf Ihrem Laufwerk befindet, sowie das Passwort, das Sie für das Zertifikat festgelegt haben, als Sie es in das .pfx-Format konvertiert haben. Wenn Sie Ihre App in der Cloud bereitstellen, müssen Sie dies auch in der Cloud-Plattform konfigurieren.

Aufruf des Moduls in einem Microflow

Schließlich können Sie die Aktionen aufrufen, um Ihre Anmeldeinformationen abzurufen. Ich kann meine App ausführen und testen. Sehen Sie sich die Screenshots unten an, um zu sehen, wie es funktioniert – oder noch besser: Sehen Sie sich das Video an, falls Sie es noch nicht getan haben.

Fazit

Es ist wichtig zu beachten, dass Sie sich bei Verwendung eines der anderen Konnektoren nicht um die Erstellung Ihrer eigenen Sigv4-Header oder das Aufrufen der Aktion „Anmeldeinformationen abrufen“ kümmern müssen. Die anderen Konnektoren sind so konzipiert, dass sie dies für Sie übernehmen. Solange Sie darauf achten, alle erforderlichen Konstanten richtig zu konfigurieren, werden sie die Anmeldeinformationen automatisch für Sie abrufen. Im nächsten Update dieser Reihe werde ich mir Amazon Rekognition ansehen und zeigen, wie die Aktion „Benutzerdefinierte Labels erkennen“ vom AWS Rekognition Connector verwendet wird.

Denken Sie daran, wenn Sie an irgendeinem Punkt nicht weiterkommen, lesen Sie unbedingt die Dokumentation auf unseren und den AWS-Dokumentationsseiten. Wir haben versucht, Ihnen so viele Informationen wie möglich zur Verfügung zu stellen, um Ihren Erfolg sicherzustellen. Ich empfehle auch, die Mendix Workshop zu AWS.

Wir sehen uns im nächsten!

Zusätzliche Lektüre

Wählen Sie Ihre Sprache