아마존 클라우드

[클라우드] Amazon CloudtraiL CloudWatch 사용법

트리스탄1234 2023. 8. 6. 07:02
728x90
반응형

 
안녕하세요 이웃님들 ^.^
좋은 아침 입니다. 
 
오늘은 Amazon에서 기본 감사 기능에 대해서 포스팅 해보려고 합니다. AWS Management Console을 사용하여 Amazon EC2, Amazon VPC, Amazon IAM, Amazon Security Groups, AWS CloudTrail 및 Amazon CloudWatch와 같은 여러 AWS 서비스의 사용을 감사하는 방법을 알아 보고  AWS 내의 조직 거버넌스, 자산 구성, 논리적 액세스 제어, 운영 체제, 데이터베이스 및 애플리케이션 보안 구성과 관련된 기존 감사 목표의 범위를 확장하는 방법을 알아 보도록 하겠습니다. 
 
우선 첫번째로 IAM 사용자의 권한을 감사해보겠습니다. 우선 AWS Console에서 IAM을 입력 하고 클릭 한뒤.. 
아래 그림과 같이 사용자 메뉴를 클릭 하고 감사할 대상인 USER-1을 클릭 합니다. 

보안자겨증명 텝을 클릭 합니다, 그리고 세부 설정값들을 확인해 봅니다. 

 
여기서 사용자가 가진 액세스 키의 수, 액세스 키가 생성된 시기, MFA(Multi-Factor Authentication) 디바이스가 할당되었는지 여부 등을 확인할 수 있습니다. 

  • 액세스 키: 키는 활성 또는 비활성일 수 있으며 관리자만 키를 비활성화하거나 삭제할 수 있습니다. 제한된 권한이 있는 사용자가 액세스 키를 비활성화하거나 삭제하려고 하면 다음과 유사한 메시지가 표시됩니다.
    • We encountered the following errors while processing your request: User:arn:aws:iam::111122223333:user/user-1_01 is not authorized to perform: iam:UpdateAccessKey on resource: user user-1_01
  • 서명 인증서: 서명된 인증서, X.509 인증서 및/또는 타사 도구(예: OpenSSL)일 수 있습니다.
  • 콘솔 암호: AWS Management Console에 대한 액세스 권한이 있는 사용자에게는 암호가 필요합니다. 암호는 IAM 대시보드 내에서 관리자가 생성하거나 변경할 수 있습니다. 암호는 조직 기본 설정에 따라 자동 생성되거나 사용자 지정으로 생성할 수 있습니다.
  • 할당된 MFA(Multi-Factor Authentication) 디바이스: MFA(Multi-Factor Authentication)는 사용자 이름과 암호를 기반으로 별도의 보호 계층을 추가하는 간단한 모범 사례입니다.
  • 가상: 개방형 TOTP 표준을 지원하는 애플리케이션을 실행하는 기존 스마트폰, 태블릿 또는 컴퓨터를 사용합니다.
  • 하드웨어 전자 열쇠: 타사 제공업체인 Gemalto에서 제공하는 변조 방지 하드웨어 전자 열쇠 디바이스입니다.
  • 하드웨어 디스플레이 카드: 타사 제공업체인 Gemalto에서 제공하는 변조 방지 하드웨어 디스플레이 카드 디바이스입니다.

그리고 그룹 텝을 클릭을 해서 어떤 그룹에 속해 있고 어떤 권한이 부여되어 있는지 살펴 보겠습니다. 

USER1GROUP에 속해 있고 권한은 전체 리소스에 대한 읽기 권한만 부여 되어 있는걸 확인할 수 있습니다. 
새 웹 브라우저를 열고 IAM 정책 시뮬레이터 링크를 입력 합니다. 
 
LINK: https://policysim.aws.amazon.com/home/index.jsp?# 

https://policysim.aws.amazon.com/home/index.jsp?

policysim.aws.amazon.com

IAM 정책 시뮬레이터 페이지의 사용자, 그룹 및 역할 창에서 user-1을 선택합니다.
정책 시뮬레이터 창의 서비스 선택 드롭다운 메뉴에서 Identity and Access Management를 선택을 하고 
Select actions 드롭다운 메뉴에서 아래 2개의 옵션을 선택 한후 Run Simulator를 클릭 합니다. 

  • DeleteGroup
  • DeleteRolePolicy

결과는 아래 그림과 같이 해당 권한이 없어서 거부가 결과로 표시가 됩니다. 

 
이제 Amazon EC2에 대한 보안 구성을 점검 해보겠습니다.
우선 EC2의 보안 그룹에 대한 간략한 설명을 먼저 해보겠습니다. 
 
보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할 수행 합니다
 보안 그룹은 서브넷 수준이 아니라 인스턴스 수준에서 실행이 되고 각 보안 그룹에 대해 인스턴스에 대한 인바운드 트래픽을 제어하는 규칙과 아웃바운드 트래픽을 제어하는 별도의 규칙 집합을 추가 하는 방식으로 동작을 합니다. 
 
다음은 보안 그룹의 기본 특징은 다음과 같습니다. 

  • 허용 규칙을 지정할 수 있지만 거부 규칙은 지정할 수 없습니다.
  • 인바운드 및 아웃바운드 트래픽에 대해 별도의 규칙을 지정할 수 있습니다.
  • 보안 그룹에 인바운드 규칙을 추가할 때까지 인바운드 트래픽은 기본적으로 허용되지 않습니다.
  • 그룹에 아웃바운드 규칙을 추가할 때까지 기본적으로 모든 아웃바운드 트래픽이 허용됩니다. 그런 다음, 허용되는 아웃바운드 트래픽을 지정합니다.
  • 허용된 인바운드 트래픽에 대한 응답은 아웃바운드 규칙과 관계없이 아웃바운드로 흐르는 것이 허용되며 반대의 경우도 마찬가지인데 그 이유는 보안 그룹이 상태를 저장하기 때문입니다.
  • 보안 그룹과 연결된 인스턴스는 이를 허용하는 규칙을 추가하지 않는 한 서로 통신할 수 없습니다.
    • 예외: 기본 보안 그룹에는 기본적으로 이러한 규칙이 있습니다.
  • 인스턴스를 시작한 후 인스턴스와 연결된 보안 그룹을 변경할 수 있습니다.

그럼 이제 Amazon 콘솔창에서 EC2를 검색하고 클릭을 한후 왼쪽 메뉴에서 인스턴스를 클릭 합니다.

EC2가 3개가 존재 하는걸 확인할 수 있습니다. 각각의 인스턴스에는 적용된 보안 그룹을 위에서 확인할 수 있습니다.
그럼 각각의 보안 그룹이 어떻게 설정이 되어 있는지 확인을 하기 위해서 왼쪽 메뉴에서 네트워크 및 보안 메뉴 밑의 보안 그룹을 클릭 합니다. 

그럼 설정되어 있는 보안 그룹의 리스트가 나타나는데 여기서 WEB Server의 보안 규칙을 확인 하기 위해  WebserverSG를 클릭을 하고 인바운드 규칙 텝을 클릭을 합니다.  

인바운드 규칙에 http, https, rdp를 허용하는 3가지 규칙이 있습니다. 
이런 식으로 나머지 인스턴스에 대한 보안 그룹을 확인해 보세요. 
 
 
이제 VPC의 보안 구성을 검토해 보겠습니다. 
우선 VPC는 보안을 위해 아래 두가지의 보안 기능을 제공 합니다. 

  • 보안 그룹: 연결된 Amazon EC2 인스턴스에 대한 방화벽 역할을 하여 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어합니다.
  • 네트워크 액세스 제어 목록(ACL): 연결된 서브넷에 대한 방화벽 역할을 하여 서브넷 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어합니다.

그리고 VPC에서 인스턴스를 시작하면 생성한 보안 그룹을 하나 이상 연결할 수 있고, VPC에 있는 각 인스턴스가 서로 다른 보안 그룹 세트에 속할 수 있습니다.  인스턴스를 시작할 때 보안 그룹을 지정하지 않으면 인스턴스는 자동으로 VPC의 기본 보안 그룹에 속합니다.
 
이제 VPC의 보안 검토를 위해 위의 화면 왼족에서 인스턴스를 클릭을 하고 Web Server를 클릭 합니다. 

그럼 detail 정보가 나타나고 위에서 VPC ID를 복사해 메모장에 저장을해 둡니다. 
이제 AWS 콘솔창에서 VPC를 검색 후 클릭을 하고 왼쪽 메뉴에서 VPC를 클릭 합니다. 

Lab VPC를 선택을 하고 세부 정보에서 기본 네트워크 ACL을 클릭 합니다. 

그럼 Access Control List가 나타나는데 거기서 기본값이 예로 설정되어 있는 acl을 클릭 합니다.

여기서 인바운드 텝, 아웃바운드 규칙 템을 클릭 하여 각각 어떤 Access control list가 적용이 되어 있는지 확인할 수 있습니다. 

 
그럼 이제 VPC의 보안 설정값 들을 모두 확인해 보았습니다. 그럼 이제 CloudWatch를 이용해 확인해 보는 방법을 살펴 보겠습니다. 
 
우선 클라우드 와치에 대해서 잠깐 알아 봅시다. 
Amazon CloudWatch는 개발자, 시스템 운영자, 사이트 신뢰성 엔지니어(SRE) 및 IT 관리자를 위해 구축된 모니터링 및 관리 서비스입니다. CloudWatch는 애플리케이션을 모니터링하고, 시스템 전반의 성능 변경 사항을 파악하여 이에 대응하고, 리소스 사용률을 최적화하고, 운영 상태에 대한 통합 보기를 확보하는 데 필요한 데이터와 실행 가능한 인사이트를 제공합니다. CloudWatch는 로그, 지표, 이벤트의 형태로 모니터링 및 운영 데이터를 수집하여, AWS 및 온프레미스 서버에서 실행되는 AWS 리소스, 애플리케이션 및 서비스에 대한 통합 보기를 제공합니다. CloudWatch를 사용하면 고해상도 경보를 설정하고, 로그와 지표를 나란히 시각화하며, 자동화된 작업을 수행하고, 문제를 해결하며, 애플리케이션을 최적화하기 위한 인사이트를 발견하고, 애플리케이션이 원활하게 실행되도록 할 수 있습니다.
 
그럼 이제 AWS Consol에서 CloudWatch를 검색하고 클릭을 합니다.  페이지 왼쪽에 있는 탐색 창의 지표를 클릭 하고 모든 지표를 클릭 한 후 EC2를 클릭 합니다. 

아래 그림 처럼 인스턴스별 지표를 클릭한 후 검색창에서 CPUUtilization를 입력 하고 검색을 합니다. 

출력 결과에서 SQL-server를 클릭 하고 아래 그림처럼 그래프로 표시된 지표 텝을 클릭 합니다. 

그럼 아래 그림 처럼 설정된 대상에 대한 지표에 대해 그래프로 그 추이를 보여 줍니다. 

 
이제 Elastic Block Storage에 대해 모니터링을 해봅시다. AWS 콘솔에서 EC2를 검색 하고 클릭을 합니다. 
아래 화면과 같이 왼쪽 메뉴에서 볼륨을 클릭 합니다. 

이중 Web Server에 연결된 볼륨을 클릭 합니다. 

 
아래 그럼 처럼 모니터링 텝을 클릭 합니다. 

그럼 위의 그림에서와 같이 Cloudwatch에서 관리하는 지표들이 그래프로 표시가 됩니다. 
 
이제 AWS CloudTrail을 사용하여 구성 세부 정보와 S3 스토리지 위치를 검토하는 방법에 대해서 살표 보겠습니다.
우선 CloudTrail이 뭔지 간략히 살펴보면  AWS 계정의 거버넌스, 규정 준수, 운영 감사, 위험 감사를 지원하는 서비스입니다.
 
CloudTrail을 사용하면 AWS 인프라에서 계정 활동과 관련된 작업을 기록하고 지속적으로 모니터링하며 보관할 수 있고AWS Management Console, AWS SDK, 명령줄 도구 및 기타 AWS 서비스를 통해 수행된 작업을 비롯하여 AWS 계정 활동의 이벤트 기록을 제공해서 다른 서비스와 연계하여 다양한 작업들을 가능하게 해줍니다. 
 
그럼 이제 사용 방법을 살펴 보겠습니다. 
우선 AWS 콘솔창에서 Cloudtrail을 입력하고 클릭을 하고 왼족 화면의 쿼리를 클릭한 후 LabCloudTrail을 클릭 합니다. 

아래 그림 처럼 trail로그가 저장되는 위치를 확인 합니다. 

그럼 이제 저장 위치에 저장이 되는지 검색을 해보겠습니다. 우선 Amazon 콘솔창에서 S3를 검색 후 클릭 합니다.

그럼 위의 화면과 같이 저장된 위치를 확인할 수 있습니다. 그럼 해당 버킷을 클릭 합니다. 

로그 파일이 보일때까지 해당 링크를 클릭 합니다. 

로그 파일이 나오면 그중 하나를 클릭을 하고 아래 화면처럼 Open을 클릭 합니다. 

그럼 설정값에 따라 다르긴 하지만. 아래와 같은 세부 로그들을 살펴볼 수 있습니다.

그럼 보안 관련해서 Amazon에서 제공하는 기본 리소스들에 대한 보안 설정 및 모니터링 방법에 대해서 살펴 보았습니다.
 
오늘도 행복한 하루 보내시구요.
도움이 되었다면, 구독과 광고클릭 부탁 합니다 ^.^
 

728x90
반응형