質問

2018年02月16日 16時12分
  • AWS EC2に対するユーザ作成を自動化したい

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

お世話になっております。

現在、手打ちでEC2に対してuseraddをしているのですが自動化したいと考えております。

作成時の手順は以下になります。
# useradd username
# passwd username
 → パスワードはusernameで設定し後ほど各自に変更してもらう
# usermod -aG wheel username
# su - username
$ mkdir .ssh
$ cd .ssh
$ vi authorizedkeys
 → 別サーバに配置してある公開鍵を貼り付ける
$ cd ..
$ chmod 600 .ssh/authorized
keys
$ chmod 700 .ssh

数が増えてきており手間になってきたので自動化したく、皆様の知恵をお借りしたいと思っております。

下記のような構成でローカルPCからEC2に対してコマンドを発行し
自動で鍵を持ってくるようなスクリプト等作成出来ますでしょうか?

鍵が置いてあるサーバ---インターネット----AWS EC2
           |
           |
        ローカルPC

5件の回答があります

回答

AWSを利用しているのであれば、
ユーザー作成まで終えた状態のEC2インスタンスを作成して
それをテンプレート化(AMI)にしておけば良いのでは無いでしょうか。

今後EC2インスタンスを追加したいとなった時には
そのAMIを基にしてインスタンスを作成すれば、
ユーザーも公開鍵も入れ込まれた状態のインスタンスが複製できると思います。

かもめさんが言うような形でスクリプト化も可能だと思いますが
viの部分はスクリプト化は面倒なので(不可能では無いですが)
どこかダウンロード可能な場所に公開鍵を配置して、
wgetコマンドでダウンロードさせる形のほうが簡単だと思います。

2018年02月16日 17時08分

回答

AMI化ですと今後staffが増えた際に結局手動になってしまう気がするのでNGです。
今あるサーバに対してのユーザ追加を自動化したく。。

vi部分は別コマンドでもいいです。
鍵が置いてあるサーバからscpしてmv 鍵 authorizedkeysみたいな形でも問題無いです。

wgetは盲点でした。社内的に鍵を外に置いていいか不明なので協議してみます。

2018年02月16日 17時19分

回答

一つのサーバ上で順次追加、だったのですね。
的外れで失礼しました。

それであれば
EC2から鍵保管サーバーへのssh通信が可能なのが前提ですが
鍵保管サーバー → (scp) → EC2
で転送するのもありかと思います。

wgetよりはセキュリティリスクは低いかと。

2018年02月16日 17時41分

回答

これいかが?

https://qiita.com/komitomo/items/e78855fa1ccee1737ac7

Ansibleは対象サーバにインストールするわけではないです。
Ansibleサーバを別建てして、そこからsshで対象サーバにログインしてコマンド実行等を自動化する仕組みです。

そもそもsshで入れる状態になってないんですよ。という話ならcloud-initとか調べてみては?

https://qiita.com/toshihirock/items/81d6612511f0d1f5db77

2018年02月22日 08時52分

回答

パスワード認証をやめて、公開鍵認証にする必要がありますが、それで良ければ、IAM ユーザに OpenSSH 公開鍵を登録できるので それを使えば自動化出来ます。

ご参考)https://qiita.com/noda_sin/items/c3b24f9f2a1037e50e56

2018年07月11日 16時39分

あなたもコメントしましょう!