AWS SSM(Systems Manager)

설탕찍은사과·2023년 12월 2일
0
post-thumbnail

Pem 키 를 생성하지 않고 EC2를 생성해야 보안에 안전해요!!

AWS SSM (Systems Manager) ?

AWS Systems Manager는 AWS 애플리케이션 및 리소스를 위한 운영 허브이자, 안전한 운영이 대규모로 활성화되는 하이브리드 및 멀티클라우드 환경을 위한 안전한 엔드 투 엔드 관리 솔루션입니다.
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/what-is-systems-manager.html

Importance Focus

EC2 의 IAM Role 에 AmazonSSMManagedInstanceCore 추가 등록

AWS SSM 을 사용하기 위해 필요한 툴 설치

AWSCLI

brew install awscli

AWS Session Manager Plugin 설치

brew tap dkanejs/aws-session-manager-plugin

brew install aws-session-manager-plugin

(위의 것으로 설치하기 싫으실때) gossm

  • golang으로 개발
  • session-manager-plugin을 별도 설치할 필요 없이 프로그램에서 자동으로 다운로드하여 제공하기 때문에 의존성 없이 독립적으로 동작
  • 와챠의 개발자 한 분이 오픈소스로 개발

https://github.com/gjbae1212/gossm

설치

# install
brew tap gjbae1212/gossm
brew install gossm

# upgrade
brew upgrade gossm

위의 gossm을 이용하면 Interactive 한 화면이 똭!! 나온다 (멋짐)

SSM 을 통해 파일업로드 는?

  • SSM을 이용하면 Pem 키 없이 바로 bash-shell 이 접속됨을 확인할 수 있다.
  • 그런데. 파일업로드를 해야 할 경우에는 어떻게 해야 할까?
  • 그렇다고 pem키를 다시 등록해야 할까?

자신의 맥북에서 id_rsa.pub의 내용을 복사

  • 만약 ~/.ssh/id_rsa.pub 가 없다면 생성을 해주면 됩니다.

EC2 접속

아래의 명령어를 이용하여 쉡 접속이 필요한 서버를 찾아 들어갑니다.

gossm start

id_rsa.pub 등록

아래의 경로의 파일에 id_rsa.pub 등록

cd ~/.ssh/authorized_keys 

id_rsa / id_rsa.pub 생성하기

ssh-keygen

참고로 Gitlab 에서는 좀 다르게 생성이 필요합니다. (참고로 기록해둡니다.)

ssh-keygen -t rsa -C "GitLab" -b 4096

gossm scp 를 이용하여 파일 업로드

scp [FileName] ec2-user@[EC2-InstanceID]:/home/ec2-user

추가 (ssm을 ssh 처럼 사용하는 것과 같이 속이기?)

[AWS SSM SSH ProxyCommand] 다운로드

설정

  1. aws-ssm-ec2-proxy-command.sh 파일 이동 (아래의 경로에 파일을 옮깁시다)
~/.ssh/aws-ssm-ec2-proxy-command.sh
  1. 파일의 권한변경
chmod +x ~/.ssh/aws-ssm-ec2-proxy-command.sh
  1. ~/.ssh/config 에 aws ec2 인스턴스에 대한 ssh 구성 항목을 추가합니다. 필요한 경우 키 파일 경로를 조정합니다.
host i-* mi-*
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ~/.ssh/aws-ssm-ec2-proxy-command.sh %h %r %p ~/.ssh/id_rsa.pub
  StrictHostKeyChecking no
  1. SSH 처럼 접속
ssh <INSTACEC_USER>@<INSTANCE_ID>

Reference

profile
귀찮아하지말고 계속 정리하고 공부하자

0개의 댓글