# How to connect AWS EC2 Instance via Session Manager?

ကျွန်တော် ဒီနေ့ sharing လုပ်ပေးချင်တဲ့ အကြောင်းအရာကတော့ အရင် အပတ်က putty ကိုအသုံးပြုပီး ssh protocol ကိုအသုံးပြုပီး ကို့ရဲ့ Instance ထဲကို လှမ်းပီး remote ဝင်တာကိုပြပီးပီးဆိုတော့ ဒီအပတ်မှာဆိုရင် Session Manager ကိုအသုံးပြုပီး ဘယ်လိုချိတ်ဆက်ရမလဲဆိုတာကို Demo လေးလုပ်ပြထားပါတယ်။

အရင်ဆုံး ကျွန်တော်တို့ Session Manager ကိုဘာကြောင့်အသုံးပြုရလဲဆိုတဲ့ အကြောင်းကိုအရင်သိအောင် ပြောကျရအောင်ပါ။ အကယ်လို့ ဆရာကြီးက ဆရာကြီးရဲ့ EC2 Instance ကို public ip ထုတ်ပေးထားရတယ် ၊ Instance ရဲ့ security group မှာ ssh access ကိုလည်း ပိတ်ထားမယ် ဒါပေမဲ့ ဆရာကြီး က အဲ့ Instance ထဲကိုဝင်ပီး configuration လုပ်ချင်တာအခါမျိုး မှာ Instance ရဲ့ security group မှာ port 22 ကို inbound rule ထဲမထည့်ထားပဲ Instance ထဲကိုဝင်ချင်တဲ့အခါမျိုး ၊ ဒါမှမဟုတ် Instance ရဲ့ key pair က ပျောက်သွားတာမျိုးကြုံရတဲ့ အဲ့အချိန်မှာကိုက AWS Management Console access ရထားတဲ့အခါမှာဆိုရင် session manager ကိုအသုံးချပီး remote login ဝင်လို့ရပါပီ။

AWS ဘက်ကလည်း Session Manager ကိုသုံးမယ်ဆိုရင် bastion host လည်းမလို၊ key pair ရှိစရာလည်း မလို၊ ssh port ကိုသုံးမယ်ဆိုပီး inbound rule မှာလည်း ရေးစရာမလိုပဲ Browser base ssh အနေနဲ့ session manager ကိုသုံးပီး remote ဝင်လို့ရတယ်ဆိုပီး ပြောထားပီးသားပါ။

ဆိုတော့ ဘာကြောင့် အသုံးပြုရတယ်။ ဘယ်လိုအသုံးပြုရတယ် သိသွားပီဆိုတော့ Demo ဘက် သွားရအောင်ပါ။ အရင်ဆုံး ကျွန်တော်တို့ရဲ့ Instance မှာ IAM role တစ်ခု ဆောက်ပေးဖို့ လိုပါမယ်။ အဲ့ IAM role ထဲမှာ အဓိက ပါရမဲ့ Role နှစ်ခုရှိပါတယ်၊ [AmazonSSMFullAccess](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAmazonSSMFullAccess), [AmazonSSMManagedInstanceCore](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAmazonSSMManagedInstanceCore) အဲ့နှစ်ခုကို ပါအောင်ထည့်ပေးရပါမယ်။

ကျွန်တော်တို့ Instance မှာ Session Manager ကို config မလုပ်ရသေးဘူးဆိုရင် အခုလို connect button က မှိန်နေတာကိုတွေ့ရပါမယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415140989/7b8f6876-dcaa-466a-8c5a-242669bd7a7e.png align="center")

Role စဆောက်ရအောင်ပါ။ IAM ထဲသွားပီး Create role ဆိုတာကိုနှိပ်လိုက်ပါ။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415293498/be9b900c-8e9c-44a0-a1ac-be3b66750345.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415398101/85be5c59-4776-4c6e-82ba-d42f50d0af01.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415421248/3dd5d50a-9fa7-475a-ac38-50c694f27481.png align="center")

Add permission ကိုနှိပ်ပီး အောက်က policies နှစ်ခုကို add လိုက်ပါ။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415461406/3a7973fb-d277-4f3b-9283-6f9ce2eb8aad.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415537619/9ff673cc-00e3-4023-8173-b94631e4f189.png align="center")

အဲ့မှာ policy တစ်ခုမှားပီးဖြုတ်ထားမိထားလို့ပါ အဲ့တာလေးကို please skip and ignore ပါ

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415560355/956d495a-3ded-4761-aaeb-341f2fda83ef.png align="center")

Role ဆောက်ပီးသွားရင် ကျွန်တော်တို့ Instance ဘက်သွားပီး IAM Role ကိုသွားပီး add ပေးရပါမယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415708358/535b8320-3e34-488a-b5b3-0c5caedcfd55.png align="center")

Role add ပီး update IAM role ဆိုတာကို နှိပ်လိုက်ပါ။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415796815/eb74671f-3aeb-45f8-a21a-453ce5f9bb63.png align="center")

Within 3 ~ 5 minutes စောင့်ပီးသွားရင် Session Manager ကိုကြည့်လိုက်ရင် Connect button က လင်းပီး connect လုပ်လို့ရပီဆိုတာ မြင်ရပါလိမ့်မယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703415879851/2747bd59-e09b-4016-9129-b2dc7b16b342.png align="center")

Connect နှိပ်လိုက်တာနဲ့ new browser tab တစ်ခုပွင့်သွားပီး sh shell နဲ့ terminal တစ်ခုကိုမြင်ရပါမယ်။ ကျွန်တော်က အဲ့မှာ bash shell ကိုပြောင်းလိုက်ပါတယ်၊ တစ်ခုသတိထားရမှာက session manager ကိုသုံးပီးချိတ်မယ်ဆိုရင် default login ဝင်လိုက်တဲ့ user က ssm-user ဆိုတာကို သတိပြုရပါမယ်။ ကျွန်တော်ကတော့ ec2-user ကိုပြန် switch လုပ်ပီး သုံးထားပါတယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703416030553/97193847-373b-446b-a22d-8d86329754e6.png align="center")

EC2 management console ကနေ login မဝင်ချင်ဘူး ဆိုရင် AWS System Manager ကနေလည်း ဝင်သုံးလို့ရပါတယ်။ လုပ်ရမဲ့ step က AWS System Manager &gt; Node Management &gt; Session Manager ထိသွားပီး Start session ကိုနှိပ်ပီး အသုံးပြုလို့ရပါတယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703416477397/1ab7ae19-bb0f-430f-ba66-e43e0e9f59e4.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703416511287/a5a0c591-1bb2-4743-8e05-ca646dc7e566.png align="center")

အဲ့မှာ Start session ကိုနှိပ်လိုက်တာနဲ့ new browser tab တစ်ခုပွင့်သွားပီး sh shell နဲ့ terminal တစ်ခုပေါ်လာမှာ ကို တွေ့ရပါလိမ့်မယ်။

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1703416524978/91a10c8a-0dc1-435c-90fd-d601a9591092.png align="center")

အဲ့တာဆိုရင် အခုကျွန်တော်တို့ EC2 Instance ရဲ့ Inbound rule မှာ port number 22 ကို allow မလုပ်ထားပဲ၊ key pair ကိုလည်းမသုံးပဲ Instance ထဲကို browser တစ်ခုရှိယုံနဲ့ login ဝင်လို့ရသွားတာကို မြင်ရပါ လိမ့်မယ်။ ဒီနေ့ ကျွန်တော့ရဲ့ hands-on lab session လေးကို ဒီနားမှာပဲ အဆုံးသတ်ခွင့်ပြုပါ။

ဒီ Article နဲ့ပတ်သတ်ပီး ကျွန်တော့ ဘက်က လိုအပ်တာမျိုး ၊ miss configuration ဖြစ်တာမျိုး တွေ့ရှိခဲ့ရင် အချိန်မရွေး ထောက်ပြပေးဖို့ တောင်းဆိုပါတယ်ဗျ။ နောက်ထက်လည်း Real world မှာကြုံရတဲ့ ကြုံရမဲ့ အကြောင်းအရာတွေကို tutorial တစ်ခုအနေနဲ့ ထပ်ပီး တင်ဆက်ပေးအုံးမှာမလို့ Stay tune ပါဆရာကြီးတို့။ အဆုံးထိဖတ်ပေးတဲ့ အတွက်လည်းကျေးဇူးပါဗျ။
