세션 활동 로깅 활성화 및 비활성화 - AWS Systems Manager

세션 활동 로깅 활성화 및 비활성화

Session Manager는 Systems Manager 콘솔에서 현재 세션 및 완료된 세션에 대한 정보를 제공하는 것 외에 AWS 계정의 세션 활동을 감사 및 로깅하기 위한 옵션을 제공합니다. 따라서 다음을 수행할 수 있습니다.

  • 보관을 위해 세션 로그를 생성해 저장합니다.

  • 지난 30일 동안 Session Manager를 사용해 관리형 노드에 설정한 모든 연결에 대한 세부 정보를 보여주는 보고서를 생성합니다.

  • Amazon Simple Notification Service(Amazon SNS) 알림과 같이 AWS 계정의 세션 활동 알림을 생성합니다.

  • 세션 활동의 결과로 AWS 리소스에 대한 다른 작업이 자동으로 시작됩니다(AWS Lambda 기능 실행, AWS CodePipeline 파이프라인 시작 또는 AWS Systems Manager Run Command 문서 실행).

중요

Session Manager에 대해 다음과 같은 요구 사항 및 제한 사항에 유의합니다.

  • Session Manager는 세션 기본 설정에 따라 세션 중에 입력한 명령과 출력을 기록합니다. 암호와 같은 민감한 데이터가 세션 로그에 표시되지 않도록 하려면 세션 중에 민감한 데이터를 입력할 때 다음 명령을 사용하는 것이 좋습니다.

    Linux & macOS
    stty -echo; read passwd; stty echo;
    Windows
    $Passwd = Read-Host -AsSecureString
  • Windows Server 2012 이하를 사용하는 경우 로그의 데이터가 최적 상태로 지정되지 않을 수 있습니다. 최적 로그 형식을 위해 Windows Server 2012 R2 이상을 사용하는 것이 좋습니다.

  • Linux 또는 macOS 관리형 노드를 사용하는 경우 screen 유틸리티가 설치되어 있어야 합니다. 설치되지 않은 경우 로그 데이터가 잘릴 수 있습니다. Amazon Linux 1, Amazon Linux 2, AL2023, Ubuntu Server에는 기본적으로 화면 유틸리티가 설치됩니다. screen을 수동으로 설치하려면 Linux 버전에 따라 sudo yum install screen 또는 sudo apt-get install screen을 실행합니다.

  • 포트 전달 또는 SSH를 통해 연결하는 Session Manager 세션에는 로깅을 사용할 수 없습니다. SSH는 모든 세션 데이터를 암호화하고 Session Manager는 SSH 연결을 위한 터널 역할만 하기 때문입니다.

세션 데이터 로그에 Amazon S3 또는 Amazon CloudWatch Logs를 사용하는 데 필요한 권한에 대한 자세한 내용은 Session Manager, Amazon S3 및 CloudWatch Logs에 대한 권한이 있는 IAM 역할 생성(콘솔) 섹션을 참조하세요.

Session Manager의 로깅 옵션에 대한 자세한 내용은 다음 주제를 참조하세요.

Amazon CloudWatch Logs를 사용하여 세션 데이터 스트리밍(콘솔)

세션 데이터 로그의 연속 스트림을 Amazon CloudWatch Logs로 보낼 수 있습니다. 사용자가 세션에서 실행한 명령, 명령을 실행한 사용자의 ID, 세션 데이터가 CloudWatch Logs로 스트리밍되는 시간에 대한 타임스탬프와 같은 필수 세부 정보는 세션 데이터를 스트리밍할 때 포함됩니다. 세션 데이터를 스트리밍할 때 로그는 JSON 형식이므로 기존 로깅 솔루션과 통합할 수 있습니다. 대화형 명령에는 세션 데이터 스트리밍이 지원되지 않습니다.

참고

Windows Server 관리형 노드에서 세션 데이터를 스트리밍하려면 PowerShell 5.1 이상이 설치되어 있어야 합니다. 기본적으로 Windows Server 2016 이상에는 필요한 PowerShell 버전이 설치되어 있습니다. 그러나 Windows Server 2012 및 2012 R2에는 필요한 PowerShell 버전이 기본적으로 설치되어 있지 않습니다. 아직 Windows Server 2012 또는 2012 R2 관리형 노드에서 PowerShell을 업데이트하지 않은 경우 Run Command를 사용하여 업데이트할 수 있습니다. Run Command를 사용하는 PowerShell 업데이트에 대한 자세한 내용은 Run Command를 사용하여 PowerShell 업데이트 섹션을 참조하세요.

중요

Windows Server 관리형 노드에 PowerShell 트랜스크립션(PowerShell Transcription) 정책 설정이 구성되어 있으면 세션 데이터를 스트리밍할 수 없습니다.

Amazon CloudWatch Logs를 사용하여 세션 데이터를 스트리밍하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Session Manager를 선택합니다.

  3. 기본 설정 탭을 선택하고 편집을 선택합니다.

  4. [CloudWatch 로깅(CloudWatch logging)]에서 [사용(Enable)] 확인란을 선택합니다.

  5. [세션 로그 스트리밍] 옵션을 선택합니다.

  6. (권장) [암호화된 CloudWatch 로그 그룹만 허용(Allow only encrypted CloudWatch log groups)] 옆의 확인란을 선택합니다. 이 옵션을 설명하면 로그 데이터가 로그 그룹에 지정된 서버 측 암호화 키를 사용하여 암호화됩니다. CloudWatch Logs로 전송되는 로그 데이터를 암호화하지 않으려면 확인란을 선택 취소합니다. 로그 그룹에서 암호화가 허용되지 않는 경우에도 확인란의 선택을 취소해야 합니다.

  7. [CloudWatch 로그(CloudWatch logs)]에 대해 세션 로그를 업로드할 AWS 계정의 기존 CloudWatch Logs 로그 그룹을 지정하려면 다음 중 하나를 선택합니다.

    • 세션 로그 데이터를 저장하기 위해 계정에 이미 생성된 로그 그룹의 이름을 텍스트 상자에 입력합니다.

    • [로그 그루 찾아보기(Browse log groups)]: 계정에서 이미 생성한 로그 그룹을 선택하여 세션 로그 데이터를 저장합니다.

  8. Save(저장)를 선택합니다.

Amazon S3를 사용하여 세션 데이터 로깅(콘솔)

디버깅 및 문제 해결을 위해 지정된 Amazon Simple Storage Service(Amazon S3) 버킷에 세션 로그 데이터를 저장하도록 선택할 수 있습니다. 기본 옵션은 암호화된 Amazon S3 버킷으로 전송할 로그에 적용됩니다. 암호화는 버킷에 지정한 키인 AWS KMS key 또는 Amazon S3 서버 측 암호화(SSE) 키(AES-256)를 사용하여 수행됩니다.

중요

Secure Sockets Layer(SSL)와 함께 가상 호스팅 방식의 버킷을 사용할 경우, SSL 와일드카드 인증서는 마침표가 포함되지 않은 버킷에만 연결됩니다. 이 문제를 해결하려면 HTTP를 사용하거나, 인증서 확인 로직을 직접 작성합니다. 가상 호스팅 방식의 버킷을 사용할 경우 버킷 이름에 마침표(".")를 사용하지 않는 것이 좋습니다.

Amazon S3 버킷 암호화

로그를 암호화된 Amazon S3 버킷으로 전송하려면 해당 버킷에서 암호화가 허용되어야 합니다. Amazon S3 버킷 암호화에 대한 자세한 내용은 S3 버킷에 대한 Amazon S3 기본 암호화를 참조하세요.

고객 관리형 키

사용자가 스스로 관리하는 KMS 키를 사용해 버킷을 암호화하는 경우 인스턴스에 연결된 IAM 인스턴스 프로파일에는 키를 읽을 수 있는 명시적인 권한이 있어야 합니다. AWS 관리형 키을(를) 사용하는 경우 인스턴스에는 이러한 명시적 권한이 필요하지 않습니다. 인스턴스 프로파일에 키를 사용할 수 있는 액세스 권한 제공에 대한 자세한 내용은 AWS Key Management Service Developer GuideAllows Key Users to Use the key를 참조하세요.

다음 단계에 따라 Amazon S3 버킷에 세션 로그를 저장하도록 Session Manager를 구성합니다.

참고

또한 AWS CLI를 사용하여 세션 데이터가 전송되는 Amazon S3 버킷을 지정 또는 변경할 수 있습니다. 자세한 설명은 Session Manager 기본 설정 업데이트(명령줄)을 참조하세요.

Amazon S3를 사용하여 세션 데이터를 로그하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Session Manager를 선택합니다.

  3. 기본 설정 탭을 선택하고 편집을 선택합니다.

  4. [S3 로깅(S3 logging)]에서 [사용(Enable)] 확인란을 선택합니다.

  5. (권장) [암호화된 S3 버킷만 허용(Allow only encrypted S3 buckets)] 옆의 확인란을 선택합니다. 이 옵션을 설명하면 로그 데이터가 버킷에 지정된 서버 측 암호화 키를 사용하여 암호화됩니다. Amazon S3로 전송되는 로그 데이터를 암호화하지 않으려면 확인란을 선택 취소합니다. S3 버킷에서 암호화가 허용되지 않는 경우에도 확인란의 선택을 취소해야 합니다.

  6. S3 버킷 이름에 대해 다음 중 한 가지를 선택합니다.

    참고

    가상 호스팅 방식의 버킷을 사용할 경우 버킷 이름에 마침표(".")를 사용하지 않는 것이 좋습니다. Amazon S3 버킷 명명 규칙에 대한 자세한 내용은 Amazon Simple Storage Service 개발자 안내서버킷 규제 및 제한을 참조하세요.

    • 목록에서 버킷 이름 선택: 계정에서 이미 생성한 Amazon S3 버킷을 선택하여 세션 로그 데이터를 저장합니다.

    • 텍스트 상자에 버킷 이름 입력: 계정에서 이미 생성한 Amazon S3 버킷의 이름을 입력하여 세션 로그 데이터를 저장합니다.

  7. (선택 사항) S3 키 접두사에 대해 선택한 버킷에서 로그를 저장할 기존 폴더 또는 새 폴더의 이름을 입력합니다.

  8. Save(저장)를 선택합니다.

Amazon S3 및 Amazon S3 버킷 작업에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon Simple Storage Service 사용 설명서를 참조하세요.

Amazon CloudWatch Logs를 사용하여 세션 데이터 로깅(콘솔)

Amazon CloudWatch Logs를 사용하면 다양한 AWS 서비스의 로그 파일을 모니터링, 저장 및 액세스할 수 있습니다. 디버깅 및 문제 해결을 위해 CloudWatch Logs 로그 그룹으로 세션 로그 데이터를 전송할 수 있습니다. 기본 옵션은 KMS 키를 사용하여 암호화된 로그 데이터를 전송하는 것이지만 암호화 여부에 상관없이 로그 그룹에 데이터를 보낼 수 있습니다.

다음 단계에 따라 세션 종료 시 세션 로그 데이터를 CloudWatch Logs 로그 그룹으로 보내도록 AWS Systems Manager Session Manager를 구성합니다.

참고

또한 AWS CLI를 사용하여 세션 데이터가 전송되는 CloudWatch Logs 로그 그룹을 지정할 수 있습니다. 자세한 설명은 Session Manager 기본 설정 업데이트(명령줄)을 참조하세요.

Amazon CloudWatch Logs를 사용하여 세션 데이터를 로그하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Session Manager를 선택합니다.

  3. 기본 설정 탭을 선택하고 편집을 선택합니다.

  4. [CloudWatch 로깅(CloudWatch logging)]에서 [사용(Enable)] 확인란을 선택합니다.

  5. [세션 로그 업로드(Upload session logs)] 옵션을 선택합니다.

  6. (권장) [암호화된 CloudWatch 로그 그룹만 허용(Allow only encrypted CloudWatch log groups)] 옆의 확인란을 선택합니다. 이 옵션을 설명하면 로그 데이터가 로그 그룹에 지정된 서버 측 암호화 키를 사용하여 암호화됩니다. CloudWatch Logs로 전송되는 로그 데이터를 암호화하지 않으려면 확인란을 선택 취소합니다. 로그 그룹에서 암호화가 허용되지 않는 경우에도 확인란의 선택을 취소해야 합니다.

  7. [CloudWatch 로그(CloudWatch logs)]에 대해 세션 로그를 업로드할 AWS 계정의 기존 CloudWatch Logs 로그 그룹을 지정하려면 다음 중 하나를 선택합니다.

    • 목록에서 로그 그룹 선택: 계정에서 이미 생성한 로그 그룹을 선택하여 세션 로그 데이터를 저장합니다.

    • 텍스트 상자에 로그 그룹 이름 입력: 계정에서 이미 생성한 로그 그룹의 이름을 입력하여 세션 로그 데이터를 저장합니다.

  8. Save(저장)를 선택합니다.

CloudWatch Logs에 대한 자세한 내용은 Amazon CloudWatch Logs User Guide를 참조하세요.

CloudWatch Logs 및 Amazon S3의 Session Manager 활동 로깅 비활성화

Systems Manager 콘솔 또는 AWS CLI를 사용하여계정의 세션 활동 로깅을 비활성화할 수 있습니다.

세션 활동 로깅을 비활성화하는 방법(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Session Manager를 선택합니다.

  3. 기본 설정 탭을 선택하고 편집을 선택합니다.

  4. CloudWatch 로깅을 비활성화하려면 CloudWatch 로깅 섹션에서 활성화 확인란 선택을 취소합니다.

  5. S3 로깅을 비활성화하려면 S3 로깅 섹션에서 활성화 확인란 선택을 취소합니다.

  6. Save(저장)를 선택합니다.

세션 활동 로깅을 비활성화하는 방법(AWS CLI)

AWS CLI를 사용하여 세션 활동 로깅을 비활성화하려면 Session Manager 기본 설정 업데이트(명령줄)의 지침을 따릅니다.

JSON 파일에서 s3BucketNamecloudWatchLogGroupName 입력에 값이 없는지 확인합니다. 예:

"inputs": { "s3BucketName": "", ... "cloudWatchLogGroupName": "", ... }

JSON 파일에서 모든 S3*cloudWatch* 입력을 제거하여 로깅을 비활성화할 수도 있습니다.