프로그래밍/AWS

AWS Session manager 란? (설명 및 설정 방

Hwan2 2023. 5. 6. 21:54
반응형

 

 

 

 

EC2를 접속할 때 기본적으로 SSH를 통해서 접속합니다.

SSH를 통해서 접속하려면 SSH key가 필요하고 EC2 Inbound 22 port를 허용해 줘야 합니다.

SSH를 사용하게 되면 Key 없이는 접속할 수 없고, Key를 분실하거나 탈취 당하게 되면 해킹의 우려가 있습니다.

 

AWS에서는 Session manager를 통한 EC2접속을 할 수 있는 서비스를 제공해주고 있습니다.

 

AWS Session manager architecture

https://aws.amazon.com/ko/blogs/architecture/how-wego-secured-developer-connectivity-to-amazon-relational-database-service-instances/

 

AWS Session Manager로 접속할 수 있는 방법은 3가지 입니다.

 

1. IGW를 통한 접속

2. VPC Endpoint를 이용한 접속. (인터넷 연결이 안되도 접속이 가능 합니다.)

 

우선 Session Manager의 메커니즘에 대해 알아 봅시다.

 

1. AWS Session Manager의 동작 원리

AWS Session Manager는 AWS Systems Manager(SSM)에서 관리하고 있습니다.

그리고 AWS 내부적으로 AWS Systems Manager API Endpoint 서비스가 돌고 있습니다.

 

그래서 클라이언트가 AWS CLI, AWS SDK, ,AWS WebConsole로 AWS EC2에 SSM으로 접근을 하게되면,

클라이언트는 AWS SSM과 통신을 하게 됩니다.

 

그 후 SSM에서 인증 과정을 거친 후 EC2로 세션을 연결하게 됩니다.

인증은 보통 IAM Role을 통해서 인증을 하게 됩니다.

 

여기서 EC2는 AWS SSM Agent가 있어야하고, Outbound 443만 열려 있으면 됩니다.

그 이유는 AWS SSM Agent에서 AWS SSM에 지속적인 Polling을 통해서 연결을 유지하기 때문입니다.

 

그래서 EC2 Inbound가 열려있지 않아도 연결이 가능한 것입니다.

기본적으로 AWS Security Group은 Inbound 또는 Outbound를 통해서 연결이 된다면 송.수신이 가능합니다.

때문에 AWS ACL이나 Linux Iptables와는 다르게, Outbound를 통해서 Session이 맺어지면, 송.수신이 가능합니다.

 

EC2의 AWS SSM Agent가 설치되면 SSM과 Session을 유지 합니다. 그 후 5분에 한번씩 Health Check를 통해서 

AWS SSM Agent는 SSM과의 Session을 지속적으로 유지하는 것입니다. 때문에 EC2의 Outbound만 열어놔도 

AWS SSM과 송.수신이 가능해 집니다.

 

그리고 EC2 SSM Agent가 AWS SSM과 통신을 하려면 권한이 있어야 하는데, 

"AmazonSSMManagedInstanceCore" 정책이 EC2에 적용되어야 합니다.

 

정리하자면 다음과 같은 조건이 필요합니다.

 

1. AWS EC2의 SG에는 Outbound 443이 열려 있어야 한다.

2. AWS EC2에는 "AmazonSSMManagedInstanceCore" 정책이 적용되어 있어야 한다.

3. AWS EC2의 OS에는 AWS SSM Agent 설치가 되어 있어야 한다. (기본적으로 Amazone2에는 설치가 되어 있습니다.)

 

 

반응형