Πρόσβαση σε ιδιωτική εφαρμογή Container Apps μέσω VPN σημείου σε τοποθεσία
Ένα εσωτερικό περιβάλλον Container Apps χρειάζεται ιδιωτική είσοδο, αντίστοιχο όνομα κεντρικού υπολογιστή και έναν μεταφραστή που μπορεί να προσεγγίσει το VPN. Εκτελέστε κάθε βήμα και έπειτα επαληθεύστε την άρνηση.
Αυτός ο οδηγός καλύπτει ένα περιβάλλον Container Apps με προφίλ φόρτου εργασίας και εσωτερική είσοδο εικονικού δικτύου, στην οποία φτάνει κανείς από φορητό υπολογιστή μέσω εγκεκριμένου VPN σημείου σε τοποθεσία, χρησιμοποιώντας το άμεσο FQDN της εφαρμογής και χωρίς διαδρομές HTTP σε επίπεδο περιβάλλοντος. η είσοδος του περιβάλλοντος είναι προσβάσιμη από τον πελάτη, το εύρος εισερχόμενης κίνησης της εφαρμογής δέχεται τον καλούντα και το όνομα κεντρικού υπολογιστή επιλύεται στην ιδιωτική είσοδο. Κάθε βήμα παρακάτω αφήνει ένα επαληθεύσιμο αποτέλεσμα και μια επαναφορά που δεν αγγίζει τίποτα που δεν αλλάξατε. Διατρέξτε τα με τη δεδομένη σειρά, γιατί κανένα μεταγενέστερο βήμα δεν μπορεί να αναπληρώσει μια απόφαση εύρους που ελήφθη λάθος στο βήμα 1.
Πριν αγγίξετε το DNS, ξεκαθαρίστε τη λέξη εσωτερικό. Χρησιμοποιείται για δύο διαφορετικά εύρη σε αυτό το προϊόν και η ανταλλαγή τους είναι ο συνηθέστερος λόγος που ένα όνομα που λειτουργεί εξακολουθεί να μην επιστρέφει τίποτα χρήσιμο.
Βήμα 1: καθορίστε το εύρος του περιβάλλοντος και της εφαρμογής
Διαβάστε τη διαμόρφωση εισερχόμενης κίνησης της εφαρμογής πριν αλλάξετε οποιαδήποτε εγγραφή:
| Setting | Boundary |
|---|---|
| Internal environment | The environment entry is reached through its private network arrangement |
| App with internal ingress | Callers from the environment VNet only; a VPN laptop qualifies once it has a route into that VNet and the domain resolves privately |
| App with external ingress in an internal environment | The app accepts outside traffic through the environment's private entry |
Η εσωτερική εισερχόμενη κίνηση εκτίθεται στον εσωτερικό εξισορροπητή φόρτου του περιβάλλοντος μέσα στο VNet του περιβάλλοντος, οπότε το ερώτημα δεν είναι αν ο φορητός υπολογιστής είναι άλλη εφαρμογή κοντέινερ, αλλά αν μπορεί να φτάσει σε αυτό το VNet. Ένας πελάτης VPN με διαδρομή μέσα στο VNet και τον προεπιλεγμένο τομέα του περιβάλλοντος να επιλύεται μέσω της ιδιωτικής ζώνης είναι έγκυρος καλών, και αυτό ακριβώς χτίζουν τα υπόλοιπα βήματα. Ένα εσωτερικό περιβάλλον χωρίς δημόσια είσοδο είναι διαφορετικό γεγονός από μια εφαρμογή με εσωτερική εισερχόμενη κίνηση, και η εξωτερική εισερχόμενη κίνηση σε επίπεδο εφαρμογής δεν δίνει στο περιβάλλον δημόσια πόρτα. Γράψτε το εύρος στο δελτίο καθώς και στην πύλη, γιατί ο επόμενος μηχανικός διαβάζει πρώτα το δελτίο.
Επιβεβαιώστε αυτό το εύρος με τον ιδιοκτήτη της διαμόρφωσης πριν συνεχίσετε, και κρατήστε την πύλη στενή: αν δεν υπάρχει διαδρομή μέσα στο VNet του περιβάλλοντος ή ο προεπιλεγμένος τομέας του περιβάλλοντος δεν επιλύεται μέσω της ιδιωτικής ζώνης, σταματήστε και διορθώστε πρώτα αυτή τη διαδρομή. Κανένα μεταγενέστερο βήμα δεν μπορεί να υποκαταστήσει έναν καλούντα που δεν μπορεί να φτάσει στο VNet ή να επιλύσει το όνομα.
Βήμα 2: συλλέξτε το πραγματικό όνομα κεντρικού υπολογιστή και τη διεύθυνση εισόδου
Καταγράψτε τον προεπιλεγμένο τομέα του περιβάλλοντος, τη στατική ιδιωτική διεύθυνση εισόδου του και το διαμορφωμένο FQDN της εφαρμογής, παρμένα από τον πόρο και όχι από παλιό στιγμιότυπο οθόνης ή σελίδα βίκι:
az containerapp env show -n ENV -g RG \
--query "{domain:properties.defaultDomain, ip:properties.staticIp}"
az containerapp show -n APP -g RG \
--query "properties.configuration.ingress.fqdn"Οι οδηγίες για την ιδιωτική είσοδο του Container Apps περιγράφουν την αντιστοίχιση του τομέα του περιβάλλοντος με την εσωτερική του διεύθυνση, διατηρώντας άθικτα τα ονόματα κεντρικών υπολογιστών της εφαρμογής. Αυτή είναι ακριβώς η μορφή που χτίζετε με το χέρι εδώ, οπότε ευθυγραμμίστε το περιεχόμενο της ζώνης με αυτήν αντί να επινοήσετε νέο σχήμα ονομασίας.
Αν ο τομέας που διαβάσατε δεν ταιριάζει με το FQDN που αναφέρει η εφαρμογή, σταματήστε και συμβιβάστε τα τώρα. Το χτίσιμο ζώνης με λάθος κατάληξη παράγει ένα όνομα κεντρικού υπολογιστή που επιλύεται τέλεια και παρ' όλα αυτά προσγειώνεται στον λάθος εικονικό υπολογιστή.
Βήμα 3: τοποθετήστε την ιδιωτική ζώνη στη διαδρομή μεταφραστή του VPN
Δημιουργήστε ή επαναχρησιμοποιήστε την υποστηριζόμενη ιδιωτική ζώνη DNS για τον πραγματικό προεπιλεγμένο τομέα του περιβάλλοντος, με τις τεκμηριωμένες εγγραφές μπαλαντέρ και διεύθυνσης να δείχνουν στη στατική είσοδο. Συνδέστε αυτή τη ζώνη με το κατάλληλο εικονικό δίκτυο και κάντε την ιδιωτική αρχή προσβάσιμη μέσω της εγκεκριμένης διαδρομής μεταφραστή του VPN αντί να υποθέτετε ότι ο σύνδεσμος αρκεί.
Ένας πελάτης σημείου σε τοποθεσία χρειάζεται συνήθως ένα εισερχόμενο τελικό σημείο ιδιωτικού μεταφραστή ή έναν υποστηριζόμενο προωθητή DNS για να φτάσει σε αυτή τη ζώνη. Η σύνδεση ζώνης αλλάζει τι επιλύει το Azure για τα συνδεδεμένα δίκτυα· δεν ανακατευθύνει τον δημόσιο μεταφραστή κάθε εξωτερικού φορητού υπολογιστή. Μην αντικαθιστάτε με ζώνη DNS ιδιωτικού τελικού σημείου δανεισμένη από άλλο μοντέλο δικτύωσης του Container Apps, γιατί τα ονόματα εγγραφών και η κατάληξη ζώνης δεν θα ταιριάξουν.
Η επαναφορά για αυτό το βήμα είναι η αφαίρεση του συνδέσμου ζώνης ή της εγγραφής που προσθέσατε. Σημειώστε ποιο από τα δύο ήταν, γιατί η διαγραφή κοινόχρηστης ζώνης για να αναιρέσετε έναν μόνο σύνδεσμο είναι γνωστός τρόπος να σπάσετε ένα δεύτερο περιβάλλον.
Βήμα 4: δοκιμάστε το όνομα και έπειτα το απορριφθέν κοινό
Δοκιμάστε το όνομα κεντρικού υπολογιστή και την ταυτότητα TLS μαζί, όχι μόνο τη διεύθυνση. Για ελεγχόμενη διαγνωστική αντιστοίχισης ονομάτων μπορείτε να καρφιτσώσετε τη διεύθυνση διατηρώντας το όνομα κεντρικού υπολογιστή:
curl --resolve app.ENVIRONMENT_DOMAIN:443:10.40.0.10 \
https://app.ENVIRONMENT_DOMAIN/Αντικαταστήστε το όνομα κεντρικού υπολογιστή με το πραγματικό FQDN της εφαρμογής και τη διεύθυνση με την πραγματική εσωτερική είσοδο. Αυτό επηρεάζει μόνο εκείνο το ένα αίτημα και δεν είναι παροχή DNS. Μην προσθέσετε -k για να μετατρέψετε μια αποτυχία ταυτότητας σε φαινομενική επιτυχία, γιατί η αναντιστοιχία πιστοποιητικού είναι το σήμα ότι χτυπάτε τον λάθος ακροατή.
Το αίτημα απευθείας στην αριθμητική διεύθυνση μπορεί να επιλέξει λάθος εικονικό υπολογιστή ή να αποτύχει στην επικύρωση ακόμη και όταν το TCP 443 απαντά, οπότε θεωρήστε μια επιτυχημένη δοκιμή IP ως απόδειξη για το δίκτυο και τίποτα περισσότερο. Από τον προβλεπόμενο φορητό υπολογιστή, η κανονική διαδρομή μεταφραστή είναι ο προωθητής DNS του πελάτη ή το εισερχόμενο τελικό σημείο του ιδιωτικού μεταφραστή που φιλοξενεί τη ζώνη, και μια αποτυχία εκεί είναι πρόβλημα προσβασιμότητας μεταφραστή και όχι εγγραφή που λείπει. Επιβεβαιώστε ότι το ίδιο αίτημα πετυχαίνει σε αυτή τη διαδρομή και έπειτα επιβεβαιώστε ότι το απορριφθέν κοινό εξακολουθεί να απορρίπτεται.
Τι να καταγράψετε και τι να επαναφέρετε
Η θύρα προορισμού του κοντέινερ και η θύρα HTTPS του πελάτη είναι ξεχωριστές ρυθμίσεις. Μην δημοσιεύσετε τη θύρα προορισμού του κοντέινερ μέσω του VPN επειδή το κοντέινερ ακούει εκεί, και μην διευρύνετε κανόνα δικτύου για να περάσει μια δοκιμή θύρας. Και οι δύο αλλαγές επιβιώνουν του περιστατικού και αργότερα είναι δύσκολο να αποδοθούν.
Ολοκληρώστε με μια νέα λειτουργία εφαρμογής από τον προβλεπόμενο φορητό υπολογιστή, με την εξουσιοδοτημένη ταυτότητά του και το κανονικό DNS του, και έπειτα ελέγξτε ότι ένας μη εξουσιοδοτημένος καλών εξακολουθεί να αποτυγχάνει. Όσο βρίσκεστε στη διαμόρφωση της εφαρμογής, επιβεβαιώστε επίσης αν μια διαδρομή HTTP σε επίπεδο περιβάλλοντος εκθέτει αυτή την εφαρμογή ως στόχο, γιατί αυτή η διαδρομή είναι δεύτερη πόρτα που το εύρος εισερχόμενης κίνησης δεν περιγράφει.
Καταγράψτε πέντε τιμές μαζί: εύρος περιβάλλοντος, εύρος εισερχόμενης κίνησης της εφαρμογής, FQDN, ιδιωτική διεύθυνση εισόδου και ιδιοκτήτη μεταφραστή. Αυτές οι πέντε περιγράφουν ολόκληρο το συμβόλαιο πρόσβασης και το επόμενο άτομο που θα το αποσφαλματώσει θα ζητήσει ακριβώς αυτές.