Quản lý SSH đến EC2 bằng AWS IAM
Đối với những công ty phần mềm sử dụng Cloud services để phát triển cơ sở hạ tầng thì việc quản lý trao quyền SSH cho Dev là việc tất yếu phải có.
Sau đây mình note lại cách đang dùng để quản lý quyền truy cập SSH của các developers đến AWS EC2 instances, với cách làm này thì mình có thể quản lý credentials thông qua AWS IAM UI, bên cạnh việc sử dụng Ansible thì mình nghĩ đây cũng là một cách khá hay.
Nào bắt đầu nhé:
Bước 1:
Tạo file authorized_keys_command.sh
nano /opt/authorized_keys_command.sh
Với nội dung như sau:
#!/bin/bash -e
if [ -z "$1" ]; then
exit 1
fi
SaveUserName="$1"
# Một số lệnh để thay thế những ký tự đặt biệt khỏi username
# mình comment lại vì không cần dùng
#SaveUserName=${SaveUserName//"+"/".plus."}
#SaveUserName=${SaveUserName//"="/".equal."}
#SaveUserName=${SaveUserName//","/".comma."}
#SaveUserName=${SaveUserName//"@"/".at."}
aws iam list-ssh-public-keys --user-name "$SaveUserName" --query "SSHPublicKeys[?Status == 'Active'].[SSHPublicKeyId]" --output text | while read KeyId; do
aws iam get-ssh-public-key --user-name "$SaveUserName" --ssh-public-key-id "$KeyId" --encoding SSH --query "SSHPublicKey.SSHPublicKeyBody" --output text
done
Bước 2: Thêm 2 dòng lệnh sau vào file /etc/ssh/sshd_config
AuthorizedKeysCommand /opt/authorized_keys_command.sh
AuthorizedKeysCommandUser root
Vào AWS IAM add SSH key vào tài khoản được phép truy cập. (Để làm được việc này trước hết người dùng phải tạo ra cặp ssh key (private_key và public_key) bằng lệnh “ssh-keygen“.)
Từ bước này, user có thể ssh vào EC2 bằng lệnh sau
ssh -i private_key username@ec2-ip-address
“private_key” trong câu lệnh trên chính là SSH Key được generate từ máy của user/ developer
Hy vọng bài viết mang lại giá trị cho bạn.
Chào mừng bạn đã ghé haynotes.com, nơi mình lưu lại những gì mình học được cũng như những gì mình có thể sẽ quên, với tiêu chí chỉ đưa những thông tin cần thiết vào bài viết để các bạn đang gặp phải những vấn đề mình đã trãi qua sẽ nhanh chóng tìm được hướng giải quyết vấn đề đó.
Cảm ơn bạn đã ghé thăm ^_^!