2017-05-16 7 views
1

Ich bin neu bei Amazon Dynamo DB und habe ein bisschen Mühe zu verstehen, wie es funktioniert. Mein Anwendungsfall ist, dass ich einige Daten von meiner mobilen Anwendung sammeln möchte. Ein Datensatz sollte jedes Mal geschrieben werden, wenn die App verwendet wird.So richten Sie AWS Mobile Hub DynamoDB für die anonyme Datenerfassung ein

Hauptsächlich bin ich unsicher, ob ich öffentlich, geschützt oder privat verwenden soll. Ich möchte nicht, dass Benutzer Lesezugriff haben, aber sie benötigen Schreibzugriff, um die Daten an meine Tabelle zu senden. Privat scheint sinnvoll zu sein, aber dann wird der Primärschlüssel auf "userId" beschränkt, und wird das nicht so aussehen, dass jeder Endbenutzer nur einen einzigen Datensatz in DynamoDB haben kann?

Jede Hilfe wäre willkommen.

Antwort

2

Sie können auch mit "öffentlichen" Berechtigungen für eine in AWS Mobile Hub erstellte DynamoDB NoSQL-Tabelle beginnen und dann die Autorisierungsrichtlinien bearbeiten, um die "Lese" -Operationen (dh "Get, Scan, Query") von der Auth und Unauth Benutzer NoSQL-Richtlinien. Dadurch erhalten Sie eine DynamoDB-Tabelle, auf die direkt von der Mobile App aus zugegriffen werden kann, jedoch nur im schreibgeschützten Modus.

Um zu Ihren Autorisierungsrichtlinien in AWS Mobile Hub zu gelangen, klicken Sie im linken Navigationsbereich auf die Schaltfläche "Ressourcen" und scrollen dann zu "AWS Identity and Access Management-Rollen". Die ... unauth ... Rolle ist für nicht authentifizierte Benutzer. Die ... auth ... Rolle ist für Benutzer, die in der App angemeldet sind. Klicken Sie auf die Rolle, klicken Sie auf die ... nosqldatabase ... Politik, und ändern Sie die „Aktion“ den Abschnitt (en) nur enthalten ...

 
     "Action": [ 
     "dynamodb:BatchWriteItem", 
     "dynamodb:DeleteItem", 
     "dynamodb:PutItem", 
     "dynamodb:UpdateItem" 
     ], 

Dies sind die „Schreib“ -Operationen .

Mit freundlichen Grüßen,
Andrew C
AWS Mobile Developer Experience

1

Betrachten Sie zuerst, warum Sie die Daten sammeln. Sie könnten mit einer mobilen Analyseplattform besser dran sein. Da Sie sich auf AWS befinden, werfen Sie einen Blick auf Amazon Pinpoint oder AWS Mobile Hub.

Wenn Sie die Aktivitäten tatsächlich in die Cloud übertragen möchten, empfehle ich die Implementierung eines AWS Lambda, das Ihre mobile App mit einem JSON-Blob aufruft. Dieser Blob wird dann validiert und vom Lambda in DynamoDb eingefügt. Auf diese Weise erhalten Sie den "Nur-Lese" -Schutz (da nur der Lambda für Ihren Client verfügbar ist) und Sie können auch den JSON-Blob, den Sie benötigen, sammeln und sich vor bösartigen Akteuren schützen.

+0

ich tatsächlich den Mobile Hub verwenden. Lambda ist eine gute Idee, ich werde es später überprüfen. –

Verwandte Themen