Δημιουργία SSH Keys για Ασφαλή Πρόσβαση σε AWS EC2 Instances με Terraform
Όταν εργάζεσαι με cloud υποδομή, η ασφάλεια είναι υψίστης σημασίας. Μια κρίσιμη πτυχή της ασφάλειας είναι ο έλεγχος της πρόσβασης σε cloud πόρους...

Όταν εργάζεσαι με cloud υποδομή, η ασφάλεια είναι υψίστης σημασίας. Μια κρίσιμη πτυχή της ασφάλειας είναι ο έλεγχος της πρόσβασης σε cloud πόρους, και αυτό είναι ιδιαίτερα σημαντικό όταν εργάζεσαι με AWS EC2 instances. Τα SSH keys είναι ένας τρόπος για την ασφάλιση της πρόσβασης σε EC2 instances, και με το Terraform, είναι απλό να δημιουργείς και να διαχειρίζεσαι αυτά τα κλειδιά.
Τα SSH keys χρησιμοποιούνται για ασφαλή πρόσβαση σε ένα EC2 instance και αποτελούνται από δύο μέρη - ένα public key και ένα private key. Το public key ανεβαίνει στο EC2 instance και το private key χρησιμοποιείται για την αυθεντικοποίηση με το instance. Το private key πρέπει να διατηρείται ασφαλές και να μην μοιράζεται με κανέναν άλλο.
Το Terraform είναι ένα ισχυρό εργαλείο για τη διαχείριση υποδομής ως κώδικα και μπορεί να χρησιμοποιηθεί για τη δημιουργία και διαχείριση SSH keys για ασφαλή πρόσβαση σε AWS EC2 instances. Να πώς γίνεται.
Πρώτα, δημιούργησε ένα SSH key pair. Αυτό μπορεί να γίνει με την εντολή ssh-keygen στο τοπικό σου μηχάνημα. Για να δημιουργήσεις ένα RSA key pair με μέγεθος κλειδιού 4096-bit, τρέξε την ακόλουθη εντολή:
ssh-keygen -t rsa -b 4096
Αυτό θα δημιουργήσει ένα public key και ένα private key στον φάκελο .ssh στον home directory σου. Το public key έχει επέκταση .pub και πρέπει να ανέβει στο EC2 instance.
Έπειτα, δημιούργησε ένα Terraform module για τη διαχείριση του SSH key. Το module πρέπει να περιλαμβάνει τον ακόλουθο κώδικα:
resource "aws_key_pair" "ssh_key" {
key_name = "ssh_key"
public_key = file("~/.ssh/id_rsa.pub")
}
Αυτό δημιουργεί έναν AWS key pair πόρο με το όνομα "ssh_key" και ανεβάζει το public key από το τοπικό μηχάνημα στο AWS. Η συνάρτηση file() χρησιμοποιείται για την ανάγνωση των περιεχομένων του αρχείου public key στο τοπικό μηχάνημα.
Το επόμενο βήμα είναι η αναφορά του SSH key στον πόρο του EC2 instance. Αυτό μπορεί να γίνει με την παράμετρο key_name στον πόρο aws_instance:
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
key_name = aws_key_pair.ssh_key.key_name
// other instance configuration
}
Αυτό δημιουργεί ένα EC2 instance με το καθορισμένο AMI και instance type και συσχετίζει το SSH key με το instance χρησιμοποιώντας την παράμετρο key_name. Η τιμή του aws_key_pair.ssh_key.key_name είναι μια αναφορά στο όνομα του key pair πόρου που δημιουργήθηκε στο προηγούμενο βήμα.
Τέλος, αρχικοποίησε το Terraform module με terraform init και εφάρμοσε τις αλλαγές με terraform apply. Το Terraform θα δημιουργήσει τον SSH key pair πόρο και τον EC2 instance πόρο με το συσχετισμένο SSH key.
Με αυτή τη ρύθμιση, μπορείς πλέον να έχεις ασφαλή πρόσβαση στο EC2 instance χρησιμοποιώντας το private key που δημιουργήθηκε νωρίτερα. Για να το κάνεις αυτό, χρησιμοποίησε την εντολή ssh στο τοπικό σου μηχάνημα:
ssh -i ~/.ssh/id_rsa ec2-user@<instance_public_ip>
Αυτό θα συνδεθεί στο EC2 instance χρησιμοποιώντας το private key και τον προεπιλεγμένο χρήστη ec2-user. Αντικατέστησε το <instance_public_ip> με τη δημόσια IP διεύθυνση του EC2 instance.
Συνοψίζοντας, η χρήση SSH keys για ασφαλή πρόσβαση σε AWS EC2 instances είναι ένα κρίσιμο μέρος της ασφάλειας cloud υποδομής. Με το Terraform, είναι απλό να δημιουργείς και να διαχειρίζεσαι αυτά τα κλειδιά ως μέρος της υποδομής σου ως κώδικα. Ακολουθώντας τα βήματα που περιγράφονται σε αυτό το άρθρο, μπορείς να διασφαλίσεις την ασφαλή πρόσβαση στα EC2 instances σου και να προστατεύσεις την cloud υποδομή σου.
Περισσότερα από τον Ercan
Δύο ακόμη ιστότοποι, ίδιος συγγραφέας, διαφορετικό έδαφος.
AI, LLMs, agents, εφαρμοσμένη ML.
Σημειώσεις πεδίου για AI workloads. Ανάλυση κόστους Bedrock, agent patterns, trade-offs αποθήκευσης διανυσμάτων, failure modes σε παραγωγή.
Επισκεφθείτε ercan.ai →Ο κόμβος. Σχετικά, συμβουλευτική, επικοινωνία.
Προσωπικός κόμβος και για τις δύο διαδρομές γραφής. Ποιος είμαι, πώς λειτουργεί η συμβουλευτική, πώς να επικοινωνήσετε.
Επισκεφθείτε ercanermis.com →