AWSでEC2(Ligthsail含む)を使うときに最初にやることを手で実行するのは疲れるのでUserDataにまとめた。
以下を実行するようにしている。他に必要なことがあれば追加する。
- OSユーザ/グループの作成
- 作成したユーザのsudo設定
- ec2-userでのログイン無効化
- timezone変更(UTC->Asia/Tokyo)
- Localtimeの変更
上記を実行するUserDataは下記。
#!/bin/bash # # * Initial Setup EC2 common # # # * Variables # SCRIPT=$(basename $0) USER=sysadmin # 任意のユーザ名を指定 GROUP=sysadmin # 任意のグループ名を指定 USER_ID=10000 GROUP_ID=10000 SHELL=/bin/bash HOME_DIR=/home/${USER} SSH_KEY_DIR=/home/${USER}/.ssh SSH_PUB_KEY=${SSH_KEY_DIR}/authorized_keys ######################################## # * Create ${USER} User And Group ######################################## echo "##### Start: Create ${USER} User and ${GROUP} Group #####" groupadd -g ${GROUP_ID} ${GROUP} useradd -u ${USER_ID} -g ${GROUP} -G wheel -s ${SHELL} -d ${HOME_DIR} -m ${USER} id ${USER} echo "##### Finished: Create ${USER} User and ${GROUP} Group #####" sleep 1 # # * Modify sudo # echo "=== Start: Modify sudo ===" echo "${USER} ALL = NOPASSWD: ALL" > /etc/sudoers.d/sysadmin echo "=== Finished: Modify sudo ===" sleep 1 ######################################## # * Create SSH Key for ${USER} user ######################################## echo "##### Start: Create SSH Key for sysadmin user #####" if [ ! -e ${SSH_KEY_DIR} ] ; then mkdir ${SSH_KEY_DIR} fi ### 任意の公開鍵を設定 echo "******" > ${SSH_PUB_KEY} chmod 700 ${SSH_KEY_DIR} chmod 600 ${SSH_PUB_KEY} chown -R ${USER}:${GROUP} ${SSH_KEY_DIR} ls -lth ${SSH_KEY_DIR} echo "##### Finished: Create ssh Key for ${USER} user #####" sleep 1 ######################################## # * Disable ec2-user Login ######################################## echo "##### Start: Disable ec2-user Login #####" cp -pr /etc/ssh/sshd_config{,.`date +%Y%m%d_%H%M%S`} echo -e "\n\n# Disable ec2-user Login\nDenyUsers ec2-user" >> /etc/ssh/sshd_config && systemctl reload sshd echo "##### Finished: Disable ec2-user Login #####" sleep 1 ######################################## # * Modify Timezone File ######################################## echo "##### Start: Modify Timezone #####" cp -pr /etc/sysconfig/clock{,.`date +%Y%m%d_%H%M%S`} sed -i.org -e 's/ZONE=\"UTC\"/ZONE=\"Asia\/Tokyo\"/g' /etc/sysconfig/clock echo "##### Finished: Modify Timezone #####" sleep 1 ######################################## # * Modify Localtime File ######################################## echo "##### Start: Modify Localtime #####" cp -pr /etc/localtime{,.`date +%Y%m%d_%H%M%S`} ln -sf /usr/share/zoneinfo/Japan /etc/localtime echo "##### Finished: Modify Localtime #####" sleep 1 echo "========== ${SCRIPT} Scritp Finished =========="