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’に変更し、適用すれば削除されます。あとはコードから削除するだけです。


■まとめ

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

Pocket

カテゴリー: AnsibleBastionSSH

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

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