LINEで送る
Pocket

[Bastion server]Google Authenticatorによる2段階認証とSSH鍵認証を踏み台サーバで実装する

前回ブログしました踏み台サーバについてですが、ansibleでユーザー管理を実現しました。ユーザー管理はどこでも課題となりますが、今話題であるペパボのP山さんSTNSを試してみたり、

考慮しまくった結果!!今回ansibleで十分に管理ができたのでブログします。
STNSは100人以上の開発メンバーがいる場合が好ましい!!→カオスになる前に


■RVIRUS0817/ansible_bastion-server

https://github.com/RVIRUS0817/ansible_bastion-server

■仕様/目的

  • ansibleは踏み台サーバのローカルホストで実行すること
  • sudoできるユーザーは特定のgroupにしか所属しないこと(例:adachinグループ)
  • 仮パスワードを適用し、各ユーザーはログイン時に変更させること
  • 秘密鍵を指定しない場合はログインパスワードとGoogle Authのパスワードが求められる

■ユーザー追加

・roles/common/tasks/user.yml

上記のようにsudoできるユーザーsudoできないユーザーを分けました。基本踏み台は管理者のみsudoできればいいので、他のユーザーが設定等変更しないようにgroup無所属にしました。on_createを使用することで、ユーザー作成をしたのみに仮パスワードが反映されます。なので、ansibleのコード上、新しいユーザーが増え、各ユーザーがパスワード変更しても仮パスワードで上書きすることはありません

■ユーザー削除

ユーザー削除の場合は上記のようにstate: ‘absent’,remove: ‘yes’に変更し、適用すれば削除されます。あとはコードから削除するだけです。


■まとめ

ユーザー追加や削除をプルリクでレビューできるのはチームも認識できるし、入社、退職者も誰がどうなっているのか把握しやすいですな。

LINEで送る
Pocket

カテゴリー: AnsibleBastionSSH

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善などの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供、AWSで新サービスのインフラ構築、PHPバージョンアップ、新卒採用、採用広報、分析基盤を担当している。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください