AWS EC2(Elastic Compute Cloud)は、柔軟な仮想サーバーを提供する強力なサービスです。しかし、EC2 インスタンスへのアクセス管理、特に「キーペア(SSH 鍵)」の管理は、セキュリティの観点で非常に重要です。
この記事では、EC2 の基本概念に触れつつ、SSH 鍵の適切な管理方法とよくあるミス、ベストプラクティスについて解説します。
✨ 1. EC2 の基本概念と鍵の役割
🔹 EC2 インスタンスとは?
- AWS 上で動作する仮想サーバー。
- 必要に応じて自由に作成・停止・削除可能。
- VPC や Security Group などと連携してセキュアなネットワーク運用が可能。
🔑 キーペア(Key Pair)とは?
- EC2 に SSH でログインするための「公開鍵・秘密鍵」のペア。
- インスタンス作成時に「キーペアを指定」し、秘密鍵(
.pem
)をダウンロード。 - この鍵を利用して、ターミナルからログインを行う。
✅ 例:SSH 接続コマンド
ssh -i ~/Downloads/my-key.pem ec2-user@<インスタンスのパブリックIP>
⚠️ 2. よくある鍵管理のミスとリスク
❌ 秘密鍵ファイルの紛失・漏洩
-
.pem
ファイルを失うと、そのインスタンスにアクセスできなくなる。 - GitHub などに誤ってアップロードすると、即座に第三者にアクセスされるリスクがある。
✅ 対策
-
.pem
ファイルは厳重に保管(外部共有ストレージに置かない)。 - 誤って公開した場合は、すぐにインスタンスの鍵を変更または削除。
❌ 同じ鍵を複数人で使い回す
- チームで 1 つのキーペアを共有するケースは、誰がアクセスしたか追跡不可能。
- セキュリティインシデント時の責任の所在が不明確に。
✅ 対策
- 各ユーザーごとに別のキーペアを作成。
- EC2 上にユーザーごとの公開鍵を登録する。
✅ 例:authorized_keys に追加
# ユーザー作成と鍵登録の例
sudo adduser dev_user
sudo mkdir /home/dev_user/.ssh
sudo echo "ssh-rsa AAAA...." >> /home/dev_user/.ssh/authorized_keys
sudo chown -R dev_user:dev_user /home/dev_user/.ssh
❌ 鍵のパーミッション設定ミス
-
.pem
のファイルパーミッションが厳しくないと、SSH 接続でエラーが出る。
✅ 対策
chmod 400 my-key.pem
✅ 3. EC2 鍵管理のベストプラクティス
🔐 秘密鍵の厳重管理
-
.pem
ファイルは パスワード付き ZIP にして暗号化保存も有効。 - 個人端末に保管する際も、アクセス制限された場所に保存。
👥 ユーザーごとに SSH 鍵を分離
- 開発チーム・管理者ごとに個別の鍵を発行。
- 共有を避け、ユーザーが変更・退職したらすぐに該当鍵を削除。
🔄 定期的な鍵のローテーション(更新)
- 長期間使用する鍵は、セキュリティ向上のため定期的に更新。
- 古い鍵は
authorized_keys
から削除。
🛡️ EC2 Instance Connect や Systems Manager Session Manager の活用
鍵を使わずにブラウザから EC2 にアクセスできる代替手段:
- EC2 Instance Connect:IAM によるアクセス制御が可能。
- Systems Manager Session Manager:ポート開放・鍵不要、操作ログも残せる。
✅ メリット
- SSH ポート(22番)を閉じた状態で管理可能。
- ネットワーク経由の攻撃リスクを大幅に低減。
📝 4. まとめ
✅ EC2 へのアクセス管理はセキュリティの要です。
✅ SSH 鍵の適切な取り扱い、個人単位での運用、鍵の定期更新が必要不可欠。
✅ Instance Connect や Session Manager の活用で、より安全な運用が可能です。
EC2 のセキュリティ運用を強化し、安全で信頼性の高いクラウド環境を目指しましょう!🔒
この記事が役立ったら LGTM 👍 やコメントでぜひ教えてください!
AWS EC2 やセキュリティに関するご質問もお気軽にどうぞ!