2026年10月31日
2026年10月31日
AWS EC2の初期設定(セキュリティグループ・SSHキー)
はじめに
ここでは、AWS EC2インスタンスを安全かつ効率的に初期化するためのステップバイステップガイドをお伝えします。特に、セキュリティグループとSSHキーの設定は、基本的なセキュリティの強化とリモートアクセスの確立において不可欠です。
症状・背景
このテーマが必要になる主な場面:
- <インフラストラクチャを新規に構築する場合>
- <既存のシステムをクラウドに移行する際>
- <セキュリティ上の脆弱性を解消したいとき>
- <パフォーマンス最適化や監視機能を導入するとき>
手順・設定方法
ステップ1: インスタンス作成とセキュリティグループの設定
# セキュリティグループを作成する
aws ec2 create-security-group --group-name MySecurityGroup --description "My Security Group"
# セキュリティグループにSSH接続を許可するルールを追加
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 22 --cidr 0.0.1.0/32
# ホストのWebアクセス(HTTP)を許可するルールを追加
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 80 --cidr 0.0.0.0/0
# MySQLまたはMariaDBへの接続を許可するルールを追加(必要に応じて)
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 3306 --source-group sg-yyyyyyyy
ステップ2: SSHキーの生成と登録
# ローカルマシンで新しいSSH公開鍵ペアを生成する
ssh-keygen -t rsa -b 4096 -f mykeypair
# AWS EC2コンソールからインスタンスのキーペアを作成またはアップロード
aws ec2 import-key-pair --key-name MyKeyPair --public-key-material file://mykeypair.pub
ステップ3: インスタンスの起動とSSH接続
# 新しいEC2インスタンスをセキュリティグループと共に作成する
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-xxxxxxxx
# EC2インスタンスのIPアドレスを取得
INSTANCE_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=my-instance" | jq -r '.Reservations[0].Instances[0].InstanceId')
PUBLIC_IP=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID | jq -r '.Reservations[0].Instances[0].PublicIpAddress')
# 新しく作成されたインスタンスにSSH接続
ssh -i mykeypair.pem ubuntu@$PUBLIC_IP
ステップ4: セキュリティグループの高度な設定と監視
# EFSへのアクセスを許可するルールを作成(必要に応じて)
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 2049 --source-group sg-yyyyyyyy
# セキュリティイベントの監視とログの設定
aws logs create-log-group --log-group-name "SecurityGroupEvents"
注意事項
- <実践的な注意点1>: ネットワークセグメンテーションを使用して、パブリックセクションからプライベートセクションへのアクセスを制限すること。
- <実践的な注意点2>: AWSのIAMロールとポリシーを使用して、EC2インスタンスに適切なアクセス権限のみを付与する。
- <セキュリティ上の注意>: SSH接続時に強力なパスワードや2段階認証を活用し、公開鍵ベースの認証と合わせて使用すること。
- <パフォーマンス/運用上の注意>: セキュリティグループのルールは定期的にレビューして最適化を行う。不要なアクセス権限は撤廃する。
まとめ
1. セキュリティグループの設定: 初期インスタンスの作成時に、必要最低限の通信ポートのみを開ける。
2. SSHキーの生成と登録: セキュアな接続を確立するために公開鍵ベースの認証を使用する。
3. 高度なセキュリティ監視: AWS CloudWatch LogsやAWS Configを使って、セキュリティイベントを追跡・レポート化する。
4. 定期的なレビューと最適化: セキュリティグループルールを定期的に確認し、不要なルールは削除する。
5. IAMロールの利用: EC2インスタンスに必要なアクセス権限のみを付与することでセキュリティリスクを低減する。
関連記事: