こんにちは。CAMPFIRE SREのsakakibaraです。
現在、セッションマネージャをプロダクトに導入中で、今回はそのセッションマネージャについてまとめてみたいと思います
セッションマネージャって何?
Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブなワンクリックブラウザベースのシェルや AWS Command Line Interface (AWS CLI) を介して Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、オンプレミスインスタンス、および仮想マシン (VM) を管理できます。Session Manager を使用すると、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーを管理したりすることなく、監査可能なインスタンスを安全に管理できます。また、Session Manager を使用すると、マネージドインスタンスへの簡単なワンクリックのクロスプラットフォームアクセスをエンドユーザーに提供しつつ、インスタンスへの制御されたアクセス、厳格なセキュリティプラクティス、完全に監査可能なログ (インスタンスアクセスの詳細を含む) が要求される企業ポリシーに簡単に準拠できます。
とありますが、インスタンスに便利で安全に接続できるもの
です。
セッションマネージャー入れると何がよいの?
- インスタンスへのアクセスの制御がしやすい
- 行動ログがとれる
- 鍵管理から解放される
- SSHポートを閉じれる
インスタンスへのアクセス制御がしやすい
セッションマネージャでインスタンスへのアクセスを管理すると、管理者はIAMポリシーのみ気にしていればよくなります。
セッションマネージャ経由でインスタンスにアクセスする場合は、awsコマンド or コンソール画面からアクセスすることになるので、IAMポリシーで権限がないユーザーはインスタンスにアクセスできなくなります。
行動ログがとれる
何かあったときに、ユーザがなにをしたか知りたいですよね?
セッションマネージャなら、ユーザーの行動ログがs3バケットと連携するだけで簡単にとれます。
鍵管理から解放される
IAMユーザーでインスタンスへのアクセスを制限するため、鍵管理から解放されます
SSHポートを閉じれる
SSHでのアクセスを許容しなくても良いため、SSHポートを閉じれます。
つまり、セキュリティグループの管理もなくなります。
→地味に嬉しい
セッションマネージャ導入大変なの?
めっちゃ簡単です。
セッションマネージャを利用するためにはssm-agent
が必要ですが、最新のAmazonLinuxにはデフォルトでインストールされています。
そのため、AmazonEC2RoleforSSM
ポリシーをもつIAMロールをEC2インスタンスに設定すればOK
※古いAMIイメージの場合は、ユーザーデータにssm-agentのインストールするコマンドを追記しておくだけ
まとめ
規模が大きかったり、個人情報を扱うプロダクトの場合は、セキュリティは常に意識したいものです。
セッションマネージャなら、すべてのポートを塞ぐことができるので安全かつ、お手軽に導入できるので、ぜひ試してみてくださいー!