[EC2] Private EC2 SSM 접속 가이드
Prerequisite
-
AWS 계정 접근 권한: IAM Role 생성 및 EC2 설정을 변경할 수 있는 권한이 필요합니다.
-
VPC 네트워크 환경: 아래와 같이 대상 Private Subnet이 외부 통신이 가능해야 합니다.
-
SSM 전용 VPC 엔드포인트 생성
-
Subnet의 트래픽이 NAT Gateway를 통해 외부로 아웃바운드 허용
-
Process
1. IAM 역할(Role) 생성 및 설정
EC2 인스턴스가 SSM 서비스와 통신할 수 있는 권한을 부여하는 단계입니다.
-
AWS Console에서 IAM 서비스로 이동합니다.

-
역할(Roles) 메뉴를 클릭합니다.

-
역할 생성(Create role) 버튼을 클릭합니다.

-
신뢰할 수 있는 엔티티 유형에서 AWS 서비스를 선택하고, 하단 사용 사례에서 EC2를 선택합니다.

-
권한 정책 검색창에
AmazonSSMManagedInstanceCore를 입력하고 해당 정책을 체크합니다.

- (Notice: 이 정책은 SSM 기능을 사용하기 위한 필수 최소 권한입니다.)
- (Notice: 이 정책은 SSM 기능을 사용하기 위한 필수 최소 권한입니다.)
-
역할 이름을 입력하고(예:
EC2-SSM-Role) 생성을 완료합니다.

2. EC2 인스턴스 구성
대상 EC2 인스턴스에 위에서 생성한 권한을 연결합니다.
-
IAM 역할 연결
-
EC2 콘솔에서 대상 인스턴스를 선택합니다.

-
인스턴스를 선택해 인스턴스 목록을 확인합니다.

-
해당 인스턴스를 선택하고 작업(Actions) > 보안(Security) > IAM 역할 수정(Modify IAM role)을 클릭합니다.

-
앞서 생성한 IAM Role (예 :
EC2-SSM-Role)을 선택하고 저장합니다.
-
3. 로컬 환경 설정 (필수 설치)
로컬 터미널에서 EC2에 접속하기 위해 필요한 도구들을 설치합니다.
-
AWS CLI 설치
-
macOS: 터미널에서
brew install awscli명령어를 실행합니다. -
Windows: AWS 공식 사이트에서 [AWSCLIV2.msi] 설치 파일을 다운로드하여 실행합니다.
- 여기를 클릭하시면 공식 설치 사이트로 이동됩니다.
-
설치 후 터미널에
aws --version을 입력하여 버전 정보를 확인합니다.
-
-
Session Manager Plugin 설치
-
(중요) AWS CLI만으로는 접속이 불가능하며, 반드시 이 플러그인이 설치되어야 합니다.
-
macOS: 서명된 설치 관리자를 사용하여 Session Manager 플러그인을 설치하려면(macOS) 터미널에서
-
Apple 실리콘 탑재 Mac
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac_arm64/session-manager-plugin.pkg" -o "session-manager-plugin.pkg" -
Intel 칩이 탑재 된 Mac
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
-
-
Windows: 다음 URL을 PowerShell에 입력하여 설치 관리자를 다운로드합니다.
https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe -
설치 후 터미널/Pow에
session-manager-plugin을 입력하여 설치 성공 메시지를 확인합니다.
-
4. AWS Access Key 발급
CLI 사용을 위해 IAM 사용자 자격 증명(Access Key)을 생성합니다.
-
AWS Console 우측 상단의 계정 이름을 클릭하고 보안 자격 증명(Security credentials)을 선택합니다.

- (또는 IAM 대시보드 -> 사용자 -> 본인 ID 클릭 -> 보안 자격 증명 탭 이동)
-
액세스 키(Access keys) 섹션에서 액세스 키 만들기(Create access key) 버튼을 클릭합니다.

-
사용 사례로 CLI(Command Line Interface)를 선택하고, 하단의 확인 체크박스를 선택 후 다음을 누릅니다.

-
설명 태그는 생략 가능하며 액세스 키 만들기를 클릭합니다.

-
(중요) .csv 파일 다운로드를 클릭하여 키 파일을 안전한 곳에 저장합니다.

-
Access Key ID: 공개되어도 식별 가능한 ID입니다.
-
Secret Access Key: 비밀번호와 같습니다. 이 화면을 벗어나면 다시는 확인할 수 없으므로 반드시 지금 복사하거나 다운로드해야 합니다.
-
5. AWS CLI 자격 증명 설정
로컬 터미널이 AWS 리소스에 접근할 수 있도록 인증 정보를 입력합니다.
-
터미널에서 다음 명령어를 실행합니다.
aws configure -
발급받은 액세스 키 정보를 차례대로 입력합니다.
-
AWS Access Key ID: (액세스 키 입력)

-
AWS Secret Access Key: (시크릿 키 입력)

-
Default region name:
ap-northeast-2(서울 리전인 경우)
-
Default output format:
json

-
5. 접속 테스트 (Start Session)
설정이 완료되었으므로 터미널을 통해 Private EC2에 접속합니다.
-
AWS 콘솔에서 접속하려는 인스턴스 ID (예: i-0xxxx)를 확인합니다.

-
터미널에서 아래 명령어를 입력합니다.
aws ssm start-session --target <인스턴스-ID>- 예시:
aws ssm start-session --target i-0123456789abcdef0

- 예시:
-
sh-4.2$또는bash-4.2$와 같은 쉘 프롬프트가 출력되면 접속 성공입니다!
Trouble Shooting
접속 명령어 입력 시 에러가 발생하거나 반응이 없는 경우 확인 사항입니다.
-
An error occurred (TargetNotConnected)...
-
EC2 인스턴스가 실행 중(Running) 상태인지 확인합니다.
-
IAM 역할(
AmazonSSMManagedInstanceCore) 연결 후 약 5~10분이 지났는지 확인합니다. (Agent 초기화 시간 필요)
-
-
반응 없이 멈춰 있는 경우
- Private Subnet의 라우팅 테이블에 NAT Gateway가 연결되어 있는지 확인합니다.