Purpose
Terminal에서 AWS Session Manager를 이용하여 빠르게 instance에 접속
EC2 인스턴스 terminal에서 gossm을 이용하여 다른 인스턴스에 접근
AWS Systems Manager Session Manager
Session Manager는 Systems Manager의 기능 중 하나로,
- EC2 인스턴스
- 엣지 디바이스
- 온프레미스 서버 및 가상머신
위의 항목들을 관리할 수 있습니다.
예를 들어, EC2 인스턴스에 접속하려면
- 인바운드 포트를 열고
- 배스천 호스트를 유지하고
- SSH 키를 사용하여
접속해야 합니다.
그러나, Session manager를 사용하면 위의 과정 없이도 바로 인스턴스에 접속할 수 있습니다.
Session manager를 사용하기 위한 사전 조건은 아래의 정식 문서를 참조하시기 바랍니다.
Amazon Session manager prerequisites
Setting Base instance
gossm을 설치하고, 다른 인스턴스에 접근을 시도할 인스턴스에 대한 설정입니다.
IAM
AWS EC2 인스턴스에는 role을 적용할 수 있습니다.
gossm을 사용하기 위해서는 특정 policy를 적용한 role을 해당 인스턴스에 적용해야 합니다.
AWS IAM 서비스에서 위와 같이 새로운 role을 생성하고 두 개의 policy를 적용합니다.
Policy 01 : SSM_gossm_policy
해당 policy는 사용자가 직접 생성해야 합니다.
policy 생성을 누르고 json 형식에 아래 코드를 붙여넣기해서 생성합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ssm:StartSession",
"ssm:TerminateSession",
"ssm:DescribeSessions",
"ssm:DescribeInstanceInformation",
"ssm:DescribeInstanceProperties",
"ssm:GetConnectionStatus"
],
"Resource": "*"
}
]
}
Policy 02 : AmazonSSMManagedInstanceCore
해당 policy는 managed policy로, AWS에서 관리하는 정책입니다.
role에서 정책을 attach 시킬 때 검색해서 선택할 수 있습니다.
role 생성을 완료했다면, AWS EC2 서비스에서 base 인스턴스에 해당 role을 적용합니다.
Install gossm
Base instance에 gossm을 설치합니다.
wget https://github.com/gjbae1212/gossm/releases/download/v1.4.6/gossm_1.4.6_Linux_x86_64.tar.gz
tar xzf gossm_1.4.6_Linux_x86_64.tar.gz
cp ./gossm_1.4.6_Linux_x86_64/gossm /usr/local/bin
Start gossm
아래 명령어로 gossm을 실행시킵니다.
gossm start