IT/Infra&Cloud

[aws] Systems Manager

Hayley Shim 2023. 10. 29. 00:49

안녕하세요. 최근 CloudNet@ AWS Security Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. 해당 내용은 ‘쉽게 적용하는 AWS 보안 레시피’ 책과 AWS Docs 내용을 기반으로 했습니다.

AWS Systems Manager

  • AWS Systems Manager는 클라우드에서 실행되는 애플리케이션 및 인프라를 관리하는 데 도움이 되는 기능입니다.
  • Systems Manager는 애플리케이션 및 리소스 관리를 간소화하고, 운영 문제를 감지하고 해결하는 시간을 단축하며, AWS 인프라를 규모에 따라 안전하게 운영 및 관리하는데 도움이 됩니다.

Systems Manager 작동 방식

Systems Manager 일반적인 예

  1. Systems Manager 액세스
  2. Systems Manager 기능 선택 — 리소스에 대해 수행할 작업을 수행하는 데 도움이 될 수 있는 기능을 확인
  3. 확인 및 처리 — Systems Manager는 AWS Identity and Access Management(IAM) 사용자, 그룹 또는 역할에 지정한 작업을 수행할 수 있는 권한이 있는지 확인. 작업 대상이 관리형 노드인 경우 노드에서 실행 중인 Systems Manager 에이전트(SSM Agent)가 작업을 수행
  4. 보고 — Systems Manager,SSM Agent 및 Systems Manager를 대신하여 작업을 수행하는 기타 AWS 서비스는 상태를 보고
  5. Systems Manager 운영 관리 기능 — 활성화된 경우 Systems Manager 운영 관리 기능(예:Explorer, OpsCenter), Incident Manager는 리소스의 이벤트나 오류에 대응하여 운영 데이터를 집계하거나 아티팩트를 생성

— 패치, 업데이트, 매니징, 로그인 등을 하나씩 해야했다면 System manager로 한꺼번에 수행할 수 있습니다.

AWS System Manager 유형

  • Node Management (노드 관리)
  • Change Management (변경 관리)
  • Operations Management (운영관리)
  • Application Management (어플리케이션 관리)

위 유형 중 Node Management와 Application Management에 대해 알아보겠습니다.

Node Management : Session manager

  • 관리자에게 EC2 인스턴스에 대한 보안 액세스를 제공할 수 있습니다.
  • 특히 Amazon EC2 인스턴스, 엣지 디바이스, 온프레미스 서버 및 가상 머신(VM)을 관리할 수 있습니다.

[Bastion host를 통한 접속]

  • Bastion Host에서 SSH Tunneling으로 Private Subnet에 있는 EC2 인스턴스에 SSH 연결해야합니다.

bastion host를 통한 접속

[SSM을 통한 접속]

  • Private Subnet에 있는 EC2 인스턴스에 바로 접속 가능합니다.
  • 수동으로 인스턴스에 사용자 계정, 암호 또는 SSH 키를 설정할 필요가 없으며 인바운드 포트를 개방하지 않아도 됩니다.
  • SSM agent를 사용하여 인스턴스에서 시작한 암호화된 채널을 통해 인스턴스와 통신하며 Bastion host가 필요하지 않습니다.
  • IAM 정책과 사용자를 사용하여 인스턴스에 대한 액세스를 제어하며 SSH 키를 배포하지 않아도 됩니다.

SSM을 통한 접속

※참고

리소스 정보

instance 배포

  1. VPC0PublicClient 배포 정보
  • Instance Profile(Role) 지정 되며, Session Manager 에 자동으로 정상 등록됩니다.
  • 간단한 웹 서버 동작합니다.

2. VPC0PrivateClient 배포 정보

  • 외부와 통신이 불가능한 격리된 Private Subnet 환경에 인스턴스가 배치됩니다.
  • Instance Profile(Role) 지정 되며, Session Manager 에 등록 되지 못합니다.

3. VPC0WebShell 배포 정보

  • 웹 서버(+php) 동작합니다.
  • Web Shell(php) 접속 가능합니다.
  • Web_Console 과 AWS_CLI 로 Session Manager 접근 시 동작합니다.
  • IAM 사용자가 Web Shell 이나 AWS CLI 등으로 접근 시 Web Shell 처럼 동작합니다.

※WebShell?

  • 웹사이트를 통해 쉘(shell)을 여는 것으로 쉘(shell)은 사용자에게 받은 지시를 해석하여 운영체제의 커널과 사용자 사이를 이어줍니다.
 

WebShell 접속 화면

SSM 세션관리

  • Systems Manager → 인스턴스 및 노드 → Session Manager → 세션 시작

Public Client 실습

 

왜 VPC0-PrivateClient 는 Session Manager에 등록되지 않았을까?

  • SSM Session Manager 통신을 위해서는 외부(인터넷) 통신이 필요합니다.
  • VPC0-PrivateClient 는 현재 외부(인터넷)가 통신이 불가능해서 등록되지않았습니다.

Application Management : Parameter Store

Parameter Store

  • 구성 데이터 관리 및 암호 관리를 위한 안전한 계층적 스토리지를 제공합니다.
  • 파라미터를 생성할 때 지정한 고유 이름을 지정해서 스크립트, 명령어 등에서 참조 가능합니다.

Parameter

  • Parameter Store의 parameter는 Parameter Store에 저장된 텍스트 블록이나 이름의 리스트, 비밀번호, 또는 AMI ID와 같은 데이터를 의미합니다.
  • Script나 Commnad에서도 안전하게 사용할 수 있습니다.

[Parameter 3가지 타입]

  • String : 모든 문자열 값
  • StringList : 쉼표를 사용하여 문자열을 구분
  • SecureString

SecureString 파라미터를 사용하는 경우

  • 명령, 함수, 에이전트 로그 또는 CloudTrail 로그에 일반 텍스트로 값을 노출하지 않고 AWS 서비스 전반에 걸쳐 데이터/파라미터를 사용하고 싶은 경우
  • 민감한 데이터에 액세스하는 대상을 제어하고 싶은 경우
  • 민감한 데이터에 액세스하는 시점을 감사하고 싶은 경우(CloudTrail)
  • 민감한 데이터를 암호화하고 싶은 경우와 자체 암호화 키로 액세스를 관리하고 싶은 경우

SecureString 실습

파라미터 스토어에 파라미터 생성 후에 CLI에서 파라미터 취득해보고 어떤 형태인지 확인해보겠습니다.

 

Parameter Store

 

Parameter Test

 

 

blog migration project

written in 2022.9.4

https://medium.com/techblog-hayleyshim/aws-system-manager-83e5083d0f80