2017-12-10 4 views
0

Ich habe eine kleine Tabelle (100 Datensätze), die ich in meinem Dynamodb-Backend aufbewahre. Meine Webanwendung scannt die Tabelle zu Beginn der Sitzung. Und dann werden Benutzer diese Daten mit anderen Parametern abfragen. Meine Absicht ist, nicht für jede Abfrage mein Back-End zu gehen und es auf der Client-Seite (Front-End) für bessere Leistung zu tun.Wie werden Dynamodb-Abfrageergebnisse an den Browser verschlüsselt gesendet?

Aber weil ich nicht möchte, dass jemand die Daten meiner winzigen Tabelle sieht, möchte ich sie verschlüsseln, während ich sie nach der Ankunft auf der Seite des Browsers sende und entschlüssele. Ich benutze Nodejs, dynamodb und API Gateways als Backend (AWS Serverless Architecture).

Ich bin ein Neuling und fragte mich, ob es möglich ist und was die besten Praktiken sind.

Ich werde ein Beispiel geben, um meine Bedenken besser zu beschreiben. Stellen Sie sich vor skyscanner speichert alle Flugpreisdaten in einer Tabelle. Sie werden 2 Optionen haben, damit jeder öffentlich suchen kann. Erstens können sie Benutzer die Tabelle bei jeder Suche abfragen lassen (was langsam ist). Zweitens können sie die Daten der Tabelle scannen und sie an den Browser senden, und die Benutzer können Flüge viel schneller am Frontend suchen (mit Arrays usw.). Ich möchte den zweiten Ansatz implementieren, aber ich möchte auch meine Daten verschlüsselt halten, damit niemand meine Daten kopieren und eine sehr ähnliche Website erstellen kann :)

Danke.

Antwort

0

Mit Cognito Identität Pools

Sie können dies erreichen mit Authentifizierung mit AWS Cognito Identity Pool (Gewähr, wer welche DynamoDB Tabelle zugreifen kann und sogar die Partition Schlüssel) und AWS JavaScript SDK verwendet, die SSL verwendet die Kommunikation zwischen dem Browser zu verschlüsseln und DynamoDB.

Hinweis: Sie können auch AWS Cognito UserPools verwenden, wenn Sie keinen Benutzerspeicher haben, der mit Cognito Identity Pool verbunden werden kann.

Mit API-Gateway und Lambda-Endpunkt für temporäre Zugriffsinformationen

Wenn Sie bereits über einen Authentifizierungs-Mechanismus haben Sie einen API-Gateway und Lambda-Endpunkt verwenden können, wo die Lambda-Funktion den Code hat eine IAM-Rolle zu übernehmen und senden Sie die temporären Zugangsdaten an den Browser. Dann können Sie im Browser AWS SDK für JavaScript verwenden, um auf DynamoDB zuzugreifen.

+0

Ich werde ein Beispiel geben, um meine Bedenken besser zu beschreiben. Stellen Sie sich vor skyscanner speichert alle Flugpreisdaten in einer Tabelle. Sie werden 2 Optionen haben, damit jeder öffentlich suchen kann. Erstens können sie Benutzer die Tabelle bei jeder Suche abfragen lassen (was langsam ist). Zweitens können sie die Daten der Tabelle scannen und sie an den Browser senden, und die Benutzer können Flüge viel schneller am Frontend suchen (mit Arrays usw.). Ich möchte den zweiten Ansatz implementieren, aber ich möchte auch meine Daten verschlüsselt halten, damit niemand meine Daten kopieren und eine sehr ähnliche Website erstellen kann :) – Murat

0

Hier ist eine Demo-Anwendung, die speziell das tut, was Sie suchen ... einmal angemeldet, hat der Benutzer Zugriff auf seine eigene „Reihe“ in DynamoDB ...

https://github.com/awslabs/aws-cognito-angular-quickstart

Hier ist, was Sie erhalten durch Ausführen des Installationsskriptes (es erstellt alle Ressourcen für Sie): http://cognito.budilov.com

+0

Danke für die Antwort Vladimir. Ich fügte ein Beispiel von dem hinzu, was ich brauche. Ich erkenne, dass es nicht klar genug war. – Murat

Verwandte Themen