ec2の作成と同時に任意のOSユーザを作成する

ec2の作成と同時に任意のOSユーザを作成する:


やりたいこと

ec2を新規作成すると、

  • AmazonLinuxの場合 ec2-user
  • CentOSの場合 centos
こんな感じでデフォルトのOSユーザが作成されると思います。

ですが、セキュリティ上、デフォルトのユーザや共通の鍵ペアを使いたくないので、

こちらで任意に決めた管理用ユーザを、ec2作成時に自動作成するようにしたいと思います。


手順

ec2を作成する際に、

インスタンスの作成 > 3.インスタンスの設定 > 高度な詳細 > ユーザーデータ

と進み、ユーザーデーター項目のラジオボタンを テキストで にチェックします。

そして以下の内容をユーザーデータとして入力します。

#cloud-config 
cloud_final_modules: 
- [users-groups,always] 
users: 
  - name: ${作成したいOSユーザ名} 
    groups: [ wheel ] 
    sudo: [ "ALL=(ALL) NOPASSWD:ALL" ] 
    shell: /bin/bash 
    ssh-authorized-keys:  
    - ${設置したい公開鍵1} 
    - ${設置したい公開鍵2} 
あとはいつも通りにec2を作成します。

すると、ここで指定したOSユーザが、デフォルトユーザのかわりにUID:1000として作成されます。

デフォルトユーザは作成されません。


簡単な解説

今回の内容はcloud-initの仕組みを利用しています。

AWSの公式ドキュメント(ユーザーデータやcloud-initについて記載されています)
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html


groups: [ wheel ]

指定したOSユーザが、サブグループwheel付きで作成されます。


sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]

wheelグループが、パスワード無しでsudoできるようになります。


ssh-authorized-keys:

ここに記載した内容が、/home/${作成したいOSユーザ名}/.ssh/authorized_keysにそのまま書き込まれます。

そのため、ここにno-agent-forwardingのようなオプションを含めて記載することもできます。


おわりに

この方法を知るまでは、一旦デフォルトユーザでログインして管理ユーザを作成。管理ユーザで入りなおしてデフォルトユーザを削除。

みたいな面倒なことをしていましたが、これでその煩わしさから開放されました。

手順やansibleも、よりシンプルになりました~

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2024-02-12 22:08:06 RSSフィード2024-02-12 22:00分まとめ(7件)