ec2の作成と同時に任意のOSユーザを作成する
ec2の作成と同時に任意のOSユーザを作成する:
ec2を新規作成すると、
ですが、セキュリティ上、デフォルトのユーザや共通の鍵ペアを使いたくないので、
こちらで任意に決めた管理用ユーザを、ec2作成時に自動作成するようにしたいと思います。
ec2を作成する際に、
と進み、ユーザーデーター項目のラジオボタンを
そして以下の内容をユーザーデータとして入力します。
あとはいつも通りにec2を作成します。
すると、ここで指定したOSユーザが、デフォルトユーザのかわりに
デフォルトユーザは作成されません。
今回の内容は
AWSの公式ドキュメント(ユーザーデータやcloud-initについて記載されています)
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html
指定したOSユーザが、サブグループwheel付きで作成されます。
wheelグループが、パスワード無しでsudoできるようになります。
ここに記載した内容が、
そのため、ここに
この方法を知るまでは、一旦デフォルトユーザでログインして管理ユーザを作成。管理ユーザで入りなおしてデフォルトユーザを削除。
みたいな面倒なことをしていましたが、これでその煩わしさから開放されました。
手順やansibleも、よりシンプルになりました~
やりたいこと
ec2を新規作成すると、- AmazonLinuxの場合
ec2-user
- CentOSの場合
centos
ですが、セキュリティ上、デフォルトのユーザや共通の鍵ペアを使いたくないので、
こちらで任意に決めた管理用ユーザを、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}
すると、ここで指定した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も、よりシンプルになりました~
コメント
コメントを投稿