AWS - DynamoDB Enum
DynamoDB
Βασικές Πληροφορίες
Το Amazon DynamoDB παρουσιάζεται από το AWS ως μια πλήρως διαχειριζόμενη, serverless, key-value NoSQL βάση δεδομένων, σχεδιασμένη για την υποστήριξη εφαρμογών υψηλής απόδοσης ανεξάρτητα από το μέγεθός τους. Η υπηρεσία εξασφαλίζει αξιόπιστα χαρακτηριστικά, συμπεριλαμβανομένων μέτρων ασφαλείας, αδιάκοπων αντιγράφων ασφαλείας, αυτόματης αντιγραφής σε πολλαπλές περιοχές, ενσωματωμένης μνήμης cache και ευέλικτων εργαλείων εξαγωγής δεδομένων.
Στο πλαίσιο του DynamoDB, αντί να δημιουργείται μια παραδοσιακή βάση δεδομένων, δημιουργούνται πίνακες. Κάθε πίνακας απαιτεί την καθορισμένη πρωτεύουσα κλειδαριά ως αναπόσπαστο στοιχείο του κύριου κλειδιού του πίνακα. Αυτή η πρωτεύουσα κλειδαριά, ουσιαστικά μια τιμή κατακερματισμού, παίζει κρίσιμο ρόλο τόσο στην ανάκτηση στοιχείων όσο και στη διανομή των δεδομένων σε διάφορους κόμβους. Αυτή η διανομή είναι καθοριστική για τη διατήρηση της κλιμακωσιμότητας και της διαθεσιμότητας της βάσης δεδομένων. Επιπλέον, υπάρχει η δυνατότητα ενσωμάτωσης μιας κλειδαριάς ταξινόμησης για περαιτέρω οργάνωση των δεδομένων.
Κρυπτογράφηση
Από προεπιλογή, το DynamoDB χρησιμοποιεί ένα κλειδί KMS που ανήκει στο Amazon DynamoDB, ακόμη και όχι το διαχειριζόμενο κλειδί του AWS που τουλάχιστον ανήκει στον λογαριασμό σας.
Αντίγραφα Ασφαλείας & Εξαγωγή σε S3
Είναι δυνατόν να προγραμματίσετε τη δημιουργία αντιγράφων ασφαλείας του πίνακα ή να τα δημιουργήσετε κατά απαίτηση. Επιπλέον, είναι επίσης δυνατόν να ενεργοποιήσετε τη ανάκτηση σε συγκεκριμένη χρονική στιγμή (PITR) για έναν πίνακα. Η ανάκτηση σε συγκεκριμένη χρονική στιγμή παρέχει συνεχή αντίγραφα ασφαλείας των δεδομένων του DynamoDB για 35 ημέρες για να σας βοηθήσει να προστατευτείτε από ακούσιες εγγραφές ή διαγραφές.
Είναι επίσης δυνατόν να εξάγετε τα δεδομένα ενός πίνακα σε S3, αλλά ο πίνακας πρέπει να έχει ενεργοποιημένη τη PITR.
Γραφική Διεπαφή Χρήστη
Υπάρχει μια γραφική διεπαφή χρήστη για τις τοπικές υπηρεσίες Dynamo όπως το DynamoDB Local, dynalite, localstack, κλπ, που μπορεί να είναι χρήσιμη: https://github.com/aaronshaf/dynamodb-admin
Απαρίθμηση
Μη εξουσιοδοτημένη πρόσβαση
AWS - DynamoDB Unauthenticated AccessΑνέβασμα δικαιωμάτων
AWS - DynamoDB PrivescΜετά από εκμετάλλευση
AWS - DynamoDB Post ExploitationΔιατήρηση
AWS - DynamoDB PersistenceΕνσωμάτωση DynamoDB
Ενσωμάτωση SQL
Υπάρχουν τρόποι να αποκτήσετε πρόσβαση σε δεδομένα DynamoDB με σύνταξη SQL, επομένως, είναι δυνατές και οι κλασικές ενσωματώσεις SQL.
Ενσωμάτωση NoSQL
Στο DynamoDB μπορούν να χρησιμοποιηθούν διάφορες συνθήκες για την ανάκτηση δεδομένων, όπως σε μια κοινή ενσωμάτωση NoSQL, αν είναι δυνατόν να αλυσοδεθούν περισσότερες συνθήκες για την ανάκτηση δεδομένων, μπορείτε να ανακτήσετε κρυφά δεδομένα (ή να αντλήσετε ολόκληρο τον πίνακα). Μπορείτε να βρείτε εδώ τις συνθήκες που υποστηρίζονται από το DynamoDB: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html
Σημειώστε ότι υποστηρίζονται διάφορες συνθήκες αν η πρόσβαση στα δεδομένα γίνεται μέσω query
ή μέσω scan
.
Πράγματι, οι ενέργειες Query πρέπει να καθορίσουν τη συνθήκη "EQ" (ίσο) στον κύριο κλειδί για να λειτουργήσουν, καθιστώντας τις πολύ λιγότερο ευάλωτες σε ενσωματώσεις NoSQL (και περιορίζοντας επίσης πολύ τη λειτουργία).
Αν μπορείτε να αλλάξετε τη σύγκριση που γίνεται ή να προσθέσετε νέες, μπορείτε να ανακτήσετε περισσότερα δεδομένα.
Ενέργεια εισαγωγής Raw Json
Το DynamoDB δέχεται αντικείμενα Json για να αναζητήσει δεδομένα μέσα στη βάση δεδομένων. Αν ανακαλύψετε ότι μπορείτε να γράψετε στο αντικείμενο json που στέλνετε για αναζήτηση, μπορείτε να κάνετε αντιγραφή της βάσης δεδομένων, όλο το περιεχόμενο.
Για παράδειγμα, εισάγοντας σε ένα αίτημα όπως:
Ένας επιτιθέμενος μπορεί να εισαγάγει κάτι όπως:
1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0
διορθώστε την συνθήκη "EQ" αναζητώντας το ID 1000 και στη συνέχεια αναζητήστε όλα τα δεδομένα με ένα συμβολοσειρά Id μεγαλύτερη από 0, που είναι όλα.
:Ιδιότητα Εισαγωγής
Ορισμένα SDK επιτρέπουν τη χρήση μιας συμβολοσειράς που υποδηλώνει το φιλτράρισμα που πρέπει να γίνει, όπως:
Πρέπει να γνωρίζετε ότι κατά την αναζήτηση στο DynamoDB για την αντικατάσταση μιας τιμής γνωρίσματος στις έκφρασεις φίλτρου κατά τη σάρωση των στοιχείων, οι δείκτες πρέπει να αρχίζουν με τον χαρακτήρα :
. Τέτοιοι δείκτες θα αντικατασταθούν με την πραγματική τιμή γνωρίσματος κατά την εκτέλεση.
Επομένως, μια σύνδεση όπως η προηγούμενη μπορεί να παρακαμφθεί με κάτι τέτοιο:
Last updated