EC2 是 AWS 早期推出的服務之一
也是很有代表性的 IaaS 服務
當我們要做數位轉型時
或是初次上雲時
因為直接就是對應到低端的虛擬機
所以也是大家很常用的功能
不過在使用時
我們馬上就遇到第一個問題
那就是使用者
AWS 預設就是一個使用者
如果多人共用同一把 Key
在面對稽核又會被記共用帳號的缺失
那我們又該如何在建立 EC2 時
同時兼顧安全呢?
首先我們先思考一件事情
今天我們要建立的系統是 Linux 系統
以 ubuntu 為例
其實我們在建立一台 EC2 時
再下指令 adduser
就可以了鐵人賽如果寫這個估計被大家覺得騙文章
不過當同時需要建立多台主機時
或是設定主機 autoscalling
一台一台設定使用者就顯得缺乏效率
EC2 在創建時
卷軸拉到最下方點開 Advanced details
在 Advanced details 最下方有個欄位叫做 user-data
這個欄位是 EC2 初始化時會執行 script 的地方
如果有額外的 user 需要另外使用別把 key
需要在 user-data 中填入下列資訊
並將 publickey 替換成實際會使用的成對金鑰
#!/bin/bash
user="ithome"
echo "Copying the SSH Key to the server"
adduser --disabled-password --gecos "" $user
usermod -a -G adm $user
usermod -a -G sudo $user
echo "$user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/90-cloud-init-users
# Add the user's auth key to allow ssh access
mkdir /home/$user/.ssh
echo "publickey ithome" >> /home/$user/.ssh/authorized_keys
# Change ownership and access modes for the new directory/file
chown -R $user:$user /home/$user/.ssh
chmod -R go-rx /home/$user/.ssh
需要注意在宣告變數時=的左右不可以有空白
如果網站是同時由多人維運
則可以參考 vasansr 寫的 aws_create_users_ubuntu.sh
參考資料: