iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

EC2 是 AWS 早期推出的服務之一
也是很有代表性的 IaaS 服務
當我們要做數位轉型時
或是初次上雲時
因為直接就是對應到低端的虛擬機
所以也是大家很常用的功能

不過在使用時
我們馬上就遇到第一個問題
那就是使用者
AWS 預設就是一個使用者
如果多人共用同一把 Key
在面對稽核又會被記共用帳號的缺失
那我們又該如何在建立 EC2 時
同時兼顧安全呢?

首先我們先思考一件事情
今天我們要建立的系統是 Linux 系統
以 ubuntu 為例
其實我們在建立一台 EC2 時
再下指令 adduser 就可以了
鐵人賽如果寫這個估計被大家覺得騙文章
不過當同時需要建立多台主機時
或是設定主機 autoscalling
一台一台設定使用者就顯得缺乏效率

EC2 在創建時
卷軸拉到最下方點開 Advanced details
在 Advanced details 最下方有個欄位叫做 user-data
https://ithelp.ithome.com.tw/upload/images/20230918/20141518pAtzWxaTiS.png

這個欄位是 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

參考資料:

  1. AWS User Data Script to create users when launching an Ubuntu server EC2 instance
  2. How do I add new user accounts with SSH access to my EC2 instance using cloud-init and user data?

上一篇
Day 2 簡介雲端
下一篇
Day 4 EC2 建立多個使用者 (Windows)
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言