0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS 無料チュートリアルその16: SSHからSSM(EC2にSSHでログインしない運用)へ切り替え

0
Posted at

AWSの無料枠で出来る範囲のチュートリアルを ChatGPT に示して頂いたので、試してみた経過を簡単にまとめてみました。
AWS等の実際の画面や操作はどんな感じか知りたい方を読者対象としているつもりです。

著者はAWS クラウドプラクティショナー、ソリューションアーキテクト アソシエイト という資格を取得済みで「AWSってなんぞや?」という概要を知識としてある程度理解しているが、実際にAWSの画面を触ったことが無いという状態でAWSのチュートリアルをこなしていくという状況です。

今回の内容としては SSH ではなく SSM (Session Manager) での運用を目標にしたいと思います。

何が違うのか

SSH不要
ポート22不要
鍵不要

👉 つまり

「穴を開けずにログインできる」

💡 メリット

① セキュリティ向上

・ポート22閉じる
・IP制限不要
・攻撃対象が減る

② 運用が楽

・鍵管理いらない
・ブラウザから接続できる

③ ログが残る

・誰がいつログインしたか分かる

❌️ デメリット

IAMやSSMの設定が必要で初期構築が少し複雑

🎯 ゴール

EC2にSSHせず、SSMで接続できるようにする

🧩 全体でやること(3ステップ)

1. IAMロール作成
2. EC2にロール付与
3. セキュリティグループからSSH削除

修正の流れ

① IAMモジュールに output 追加

modules/iam/outputs.tf
output "instance_profile_name" {
  value = aws_iam_instance_profile.ssm_profile.name
}

② root main.tf で module 呼び出し

main.tf
module "iam" {
  source = "./modules/iam"
}

③ EC2モジュールに渡す

main.tf
module "ec2" {
  source = "./modules/ec2"
  # ここを追加 ↓
  instance_profile_name = module.iam.instance_profile_name
}

④ EC2モジュールで変数受け取る

modules/ec2/variables.tf
variable "instance_profile_name" {
  type = string
}

⑤ Launch Templateで使う

modules/ec2/main.tf
resource "aws_launch_template" "web" {
  name_prefix = "web-template"

  iam_instance_profile {
    name = var.instance_profile_name
  }

  # 他の設定...
}

構造まとめ

modules/iam
  ↓ output
root main.tf
  ↓ 引き渡し
modules/ec2

ワンポイント

terraform apply 後

既存インスタンスにはIAMロール付かない

対処

terraform apply → ASGが新規インスタンス作るのを待つ

✅ 動作確認

AWSコンソールで

EC2 → インスタンス → 接続 → Session Manager

👉 これで入れれば成功

image.png

image.png

↓ こうなればOK

image.png

🏁 修正後どうなるか

terraform apply → 成功
↓
EC2にIAMロール付く
↓
Session Manager使える
↓
SSH不要になる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?