AWS Systems Manager Session Manager
Session Manager는 종합 관리형 AWS Systems Manager 기능입니다. Session Manager를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, 엣지 디바이스, 온프레미스 서버 및 가상 머신을 관리할 수 있습니다. 대화형 원클릭 브라우저 기반 셸 또는 AWS Command Line Interface(AWS CLI)을 사용할 수 있습니다. Session Manager는 인바운드 포트를 열고, Bastion Host를 유지하고, SSH 키를 관리할 필요 없이 보안성과 감사 가능성을 갖춘 노드 관리 기능을 제공합니다. 또한 Session Manager를 통해 노드에 대한 제어된 액세스를 요구하는 회사 정책, 엄격한 보안 관행을 손쉽게 준수하고, 관리형 노드 액세스 세부 정보가 포함된 완전히 감사 가능한 로그를 제공하는 동시에 최종 사용자에게 관리형 노드에 대한 간단한 원 클릭 교차 플랫폼 액세스를 제공합니다. Session Manager를 시작하려면 Systems Manager 콘솔
Session Manager가 조직에 주는 이점은 무엇인가요?
Session Manager에서 제공하는 이점은 다음과 같습니다.
-
IAM 정책을 사용하여 관리형 노드에 대한 중앙 집중식 액세스 제어
관리자가 한 곳에서 관리형 노드에 대한 액세스 권한을 부여하고 취소할 수 있습니다. AWS Identity and Access Management(IAM) 정책만 사용하는 경우에는 Session Manager를 사용할 수 있는 조직 내 개별 사용자 또는 그룹과 이들이 액세스할 수 있는 관리형 노드를 제어할 수 있습니다.
-
인바운드 포트를 열 필요가 없고 Bastion Host 또는 SSH 키를 관리할 필요가 없음
관리형 노드에 인바운드 PowerShell 포트와 원격 PowerShell 포트를 열어 두면 관리형 노드에서 개체가 권한이 없거나 악의적인 명령을 실행할 위험이 매우 높아집니다. Session Manager에서는 이러한 인바운드 포트를 닫도록 하고, SSH 키 및 인증서, Bastion Host 및 점프박스를 관리할 필요가 없도록 해 보안 태세를 강화하도록 합니다.
-
클릭 한 번으로 콘솔 및 CLI에서 관리형 노드에 액세스
AWS Systems Manager 콘솔 또는 Amazon EC2 콘솔을 사용하여 한 번의 클릭으로 세션을 시작할 수 있습니다. AWS CLI를 사용하여 단일 명령 또는 일련의 명령을 실행하는 세션을 시작할 수도 있습니다. 관리형 노드에 대한 권한이 SSH 키 또는 기타 메커니즘을 대신 IAM 정책을 통해 제공되기 때문에 연결 시간이 크게 줄어듭니다.
-
하이브리드 및 멀티클라우드 환경의 Amazon EC2 인스턴스와 비 EC2 관리형 노드에 모두 연결
하이브리드 및 멀티클라우드 환경의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 비 EC2 관리형 노드에 모두 연결할 수 있습니다.
Session Manager를 사용하여 비EC2 노드에 연결하려면 먼저 고급 인스턴스 티어를 활성화해야 합니다. 고급 인스턴스 티어를 사용하는 데는 요금이 부과됩니다. 그러나 Session Manager를 사용하여 EC2 인스턴스에 연결하는 데는 추가 요금이 부과되지 않습니다. 자세한 내용은 인스턴스 티어 구성을 참조하세요.
-
포트 전달
원격 관리형 노드 내부의 포트를 클라이언트의 로컬 포트로 리디렉션합니다. 그런 다음 로컬 포트에 연결하고 노드 내부에서 실행 중인 서버 애플리케이션에 액세스합니다.
-
Windows, Linux 및 macOS에 대한 크로스 플랫폼 지원
Session Manager에서는 단일 도구의 Windows, Linux 및 macOS에 대한 지원을 제공합니다. 예를 들면, Windows Server 관리형 노드의 Linux 및 macOS 관리형 노드 또는 RDP 연결에 SSH 클라이언트를 사용할 필요가 없습니다.
-
세션 활동 로깅 및 감사
조직의 작업 또는 보안 요구 사항을 충족하기 위해 관리형 노드에 대한 연결과 해당 인스턴스에서 실행된 명령에 대한 기록을 제공해야 할 수 있습니다. 또한 조직의 사용자가 세션 활동을 시작 또는 종료할 때 알림을 받을 수도 있습니다.
로깅 및 감사 기능은 다음 AWS 서비스와(과)의 통합을 통해 제공됩니다.
-
AWS CloudTrail - AWS CloudTrail에서는 AWS 계정에서 수행된 Session Manager API 호출에 대한 정보를 캡처해 지정한 Amazon Simple Storage Service(Amazon S3) 버킷에 저장되는 로그 파일에 기록합니다. 계정에 대한 모든 CloudTrail 로그를 저장하는 데 버킷 하나가 사용됩니다. 자세한 내용은 AWS CloudTrail을 사용하여 AWS Systems Manager API 호출 로깅 단원을 참조하십시오.
-
Amazon Simple Storage Service - 디버깅 및 문제 해결을 위해 선택한 Amazon S3 버킷에 세션 로그 데이터를 저장하도록 선택할 수 있습니다. 로그 데이터는 AWS KMS key를 사용하여 암호화를 적용하거나 적용하지 않은 상태로 Amazon S3 버킷으로 전송할 수 있습니다. 자세한 내용은 Amazon S3를 사용하여 세션 데이터 로깅(콘솔) 단원을 참조하십시오.
-
Amazon CloudWatch Logs - CloudWatch Logs를 사용하면 다양한 AWS 서비스의 로그 파일을 모니터링, 저장 및 액세스할 수 있습니다. 디버깅 및 문제 해결을 위해 CloudWatch Logs 로그 그룹으로 세션 로그 데이터를 전송할 수 있습니다. 로그 데이터는 KMS 키를 사용하여 AWS KMS 암호화를 적용하거나 적용하지 않은 상태로 로그 그룹으로 스트리밍할 수 있습니다. 자세한 내용은 Amazon CloudWatch Logs를 사용하여 세션 데이터 로깅(콘솔) 단원을 참조하십시오.
-
Amazon EventBridge 및 Amazon Simple Notification Service - EventBridge를 사용하면 지정한 AWS 리소스에 변경 사항이 발생할 때 이를 감지하는 규칙을 설정할 수 있습니다. 조직 내 사용자가 세션을 시작 또는 중지하면 이를 감지하는 규칙을 생성하면 Amazon SNS를 통해 해당 이벤트에 대한 알림(예: 문자 메시지 또는 이메일 메시지)을 받을 수 있습니다. 또한 다른 응답을 시작하도록 CloudWatch 이벤트를 구성할 수도 있습니다. 자세한 내용은 Amazon EventBridge를 사용하여 세션 활동 모니터링(콘솔) 단원을 참조하십시오.
참고
포트 전달 또는 SSH를 통해 연결하는 Session Manager 세션에는 로깅을 사용할 수 없습니다. SSH는 모든 세션 데이터를 암호화하고 Session Manager는 SSH 연결을 위한 터널 역할만 하기 때문입니다.
-
Session Manager는 누가 사용해야 하나요?
-
보안 및 감사 상태를 강화하고, 관리형 노드의 액세스 제어를 중앙에서 관리하여 운영 오버헤드를 절감하고, 인바운드 노드를 줄이고자 하는 모든 AWS 고객
-
관리형 노드 액세스와 활동을 모니터링하고 추적하며, 관리형 노드에서 인바운드 포트를 닫거나 퍼블릭 IP 없이 관리형 노드와 연결하기를 원하는 정보 보안 전문가
-
단일 위치의 액세스 권한을 부여하고 취소하며 Linux, macOS 및 Windows Server 관리형 노드의 솔루션 하나를 사용자에게 제공하려는 관리자입니다.
-
SSH 키를 제공할 필요 없이 브라우저 또는 AWS CLI에서 한 번의 클릭으로 관리형 노드에 연결하고자 하는 사용자
Session Manager의 주요 기능은 무엇입니까?
-
Windows Server, Linux 및 macOS 관리형 노드 지원
Session Manager를 사용하면 Amazon Elastic Compute Cloud(EC2) 인스턴스, 엣지 디바이스, 온프레미스 서버 및 가상 머신과의 보안 연결을 설정할 수 있습니다. 지원되는 운영 체제 유형의 목록은 Session Manager 설정 섹션을 참조하세요.
참고
Session Manager온프레미스 머신에 대한 지원은 고급 인스턴스 티어에만 제공됩니다. 자세한 내용은 고급 인스턴스 티어 설정을 참조하세요.
-
콘솔 CLI 및 SDK를 통해 Session Manager 기능에 액세스
다음과 같은 방식으로 Session Manager 작업을 수행할 수 있습니다.
AWS Systems Manager 콘솔에서는 관리자 및 최종 사용자 둘 다를 위한 모든 Session Manager 기능에 액세스할 수 있습니다. Systems Manager 콘솔을 사용하여 세션에 연결된 모든 태스크를 수행할 수 있습니다.
Amazon EC2 콘솔에서는 최종 사용자가 세션 권한이 부여된 EC2 인스턴스에 연결할 수 있는 기능을 제공합니다.
AWS CLI에서는 최종 사용자를 위한 Session Manager 기능에 액세스할 수 있습니다. AWS CLI를 사용해 세션을 시작하고, 세션 목록을 보고, 세션을 영구히 종료할 수 있습니다.
참고
AWS CLI를 사용하여 세션 명령을 실행하려면 CLI의 버전 1.16.12(또는 이상)를 사용하고 로컬 시스템에 Session Manager 플러그인을 설치해야 합니다. 자세한 내용은 AWS CLI의 Session Manager 플러그인 설치을 참조하세요. GitHub의 플러그인을 보려면 session-manager-plugin
을 참조하세요. -
IAM 액세스 제어
IAM 정책 사용을 통해 관리형 노드에 대한 세션을 시작할 조직 내 멤버와 해당 멤버가 액세스할 수 있는 노드를 제어할 수 있습니다. 또한 관리형 노드에 대한 임시 액세스를 제공할 수도 있습니다. 예를 들어, 대기 중인 엔지니어(또는 대기 중인 엔지니어 그룹)에게 교대 근무 중에만 프로덕션 서버에 액세스할 수 있는 권한을 부여하려고 할 수 있습니다.
-
로깅 및 감사 기능 지원
Session Manager에서는 여러 가지 다른 AWS 서비스와(과)의 통합을 통해 AWS 계정 계정 내 세션 기록을 감사 및 로깅할 수 있는 옵션을 제공합니다. 자세한 내용은 세션 활동 감사 및 세션 로깅 활성화 및 비활성화 단원을 참조하세요.
-
구성 가능한 셸 프로파일
Session Manager는 세션 내에서 기본 설정을 구성할 수 있는 옵션을 제공합니다. 이러한 사용자 정의 가능한 프로파일을 사용하면 셸 기본 설정, 환경 변수, 작업 디렉터리 및 세션 시작 시 여러 명령 실행과 같은 기본 설정을 정의할 수 있습니다.
-
고객 키 데이터 암호화 지원
Amazon Simple Storage Service(Amazon S3) 버킷으로 전송하거나 CloudWatch Logs 로그 그룹으로 스트리밍하는 세션 데이터 로그를 암호화하도록 Session Manager를 구성할 수 있습니다. 세션 중에 클라이언트 시스템과 관리형 노드 사이에 전송되는 데이터를 추가로 암호화하도록 Session Manager을 구성할 수도 있습니다. 자세한 내용은 세션 로깅 활성화 및 비활성화 및 세션 기본 설정 구성을 참조하세요.
-
퍼블릭 IP 주소 없이 관리형 노드에 대한 AWS PrivateLink 지원
AWS PrivateLink로 Systems Manager용 VPC 엔드포인트를 설정하여 세션을 더욱 안전하게 보호할 수도 있습니다. AWS PrivateLink는 관리형 노드, Systems Manager 및 Amazon EC2 간의 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다. 자세한 내용은 Systems Manager용 VPC 엔드포인트를 사용하여 EC2 인스턴스의 보안 개선을 참조하세요.
-
터널링
세션에서 세션 유형 AWS Systems Manager(SSM) 문서를 사용하여 트래픽을 터널링합니다(예: 클라이언트 시스템의 로컬 포트와 관리형 노드의 원격 포트 간 http 또는 사용자 정의 프로토콜).
-
대화형 명령
세션을 사용하여 단일 명령을 대화형으로 실행하고 사용자가 관리형 노드에서 할 수 있는 것을 관리할 방법을 제공하는 세션 유형 SSM 문서를 생성합니다.
세션이란 무엇입니까?
세션은 Session Manager를 사용한 관리형 노드 연결입니다. 세션은 클라이언트(사용자) 와 명령에 대한 입력 및 출력을 스트리밍하는 원격 관리형 노드 간의 안전한 양방향 통신 채널을 기반으로 합니다. 클라이언트와 관리형 노드 간의 트래픽은 TLS 1.2를 사용하여 암호화되며, 연결을 생성하기 위한 요청은 SigV4를 사용하여 서명됩니다. 이 양방향 통신을 통해 관리형 노드에 대한 대화형 bash 및 PowerShell 액세스가 가능합니다. AWS Key Management Service(AWS KMS) 키를 사용하여 기본 TLS 암호화 이상으로 데이터를 추가로 암호화할 수도 있습니다.
예를 들어, John이 IT 부서의 대기 중인 엔지니어라고 생각해 보겠습니다. John은 원격으로 관리형 노드에 액세스해야 하는 문제에 대한 알림을 받습니다(예: 문제 해결 또는 노드에 대한 간단한 구성 옵션을 변경하는 지침이 필요한 장애). John은 AWS Systems Manager 콘솔, Amazon EC2 콘솔 또는 AWS CLI를 사용해 관리형 노드에 연결하는 세션을 시작하고, 노드에서 태스크를 완료하는 데 필요한 명령을 실행한 다음 세션을 종료합니다.
John이 세션을 시작하라는 첫 번째 명령을 보내면 Session Manager서비스에서 John의 ID를 인증하고, IAM 정책에 따라 John에게 부여된 권한을 확인한 다음 구성 설정(예: 세션에 대해 허용된 제한 확인)을 확인하고 SSM Agent에 양방향 연결을 열라는 메시지를 보냅니다. 연결이 설정되어 John이 다음 명령을 입력하면 SSM Agent의 명령 출력이 이 통신 채널로 업로드되고 다시 John의 로컬 시스템으로 전송됩니다.