금융권과 같이 인터넷 접근이 제한된 폐쇄망 환경에서는
AWS 콘솔이나 외부 관리 도구를 활용해 전체 AWS 자산 현황을 한 번에 확인하거나,
운영 문서에 바로 활용할 수 있는 형태로 정리된 데이터를 추출하는 데 많은 제약이 있습니다.
실제로 고객사를 대상으로 월간 운영 리포트를 작성하는 과정에서
사용 중인 AWS 서비스와 리소스 현황을 정기적으로 정리해야 했지만,
표준적인 방식으로는 운영 목적에 맞는 형태의 결과를 얻기 어려웠습니다.
이에 따라 AWS CLI를 기반으로 EC2, VPC 등 서비스별 자산 현황을 커스텀하게 출력할 수 있도록
직접 스크립트를 작성해 운영 문서용 자산 목록을 추출했습니다.
업무에서 겪은 문제를, 개인적으로 정리하고 공개 가이드로 재구성하였습니다. 같은 어려움을 겪는 분이 없었으면 합니다
이 글에서는 이러한 환경에서 AWS CLI와 직접 작성한 스크립트를 활용해
원하는 AWS 서비스 정보를 커스텀하게 추출한 방법을 정리합니다.
- 로컬 컴퓨터에 aws cli를 설치했다는 전제로 생성된 가이드입니다.
- 메인계정에서 architect 역할을 통해 최종 콘솔로 접속하는 경우를 전제로 생성된 가이드입니다.
config파일, crefentials 파일 위치 및 내용 수정
파워쉘에 들어가 명령어로 config파일을 열어줍니다.
기본적으로 디폴트 config가 들어가 있는 것을 확인할 수 있습니다.
C:\Users\본인컴퓨터이름\.aws\config

파워쉘에서 crefentials 파일로 열어서 확인해줍니다.
마찬가지로 디폴트 값이 들어가 있는것을 확인할 수 있습니다.
C:\Users\본인컴퓨터이름\.aws\credentials

config 파일을 수정합니다
원하는 프로필로 접속하기 위해 프로필을 만들어줍니다

crefentials 파일도 원하는 프로필로 접속을 위해 프로필 대상 접근 id와 접근 키를 넣어줍니다

aws token 정보 쉘 스크립트
aws-token.sh, customer-aws-token.sh 두개의 쉘 스크립트 파일이 필요합니다
자세한 스크립트 내용은 아래 github에서 확인하실 수 있습니다.
https://github.com/ssyeon-721/AWS-Inventory/tree/main
GitHub - ssyeon-721/AWS-Inventory
Contribute to ssyeon-721/AWS-Inventory development by creating an account on GitHub.
github.com
Git Bash 설정
git bash에 접속해서 위 쉘 스크립트 파일이 위치한 폴더로 이동합니다.
목록을 확인하여 aws-token.sh, customer-aws-token.sh 파일이 잘 들어가 있는지 확인 후 명령어를 실행합니다.
./customer-aws-token.sh 원하는계정ID 프로필이름
여기서 말하는 원하는 계정 ID는 최종적으로 접속해야하는 ID 번호를 뜻합니다
메인계정이 존재하고 architect 라는 이름의 역할을 통해 최종 콘솔로 접속하는 구조이므로 최종콘솔의 ID 번호를 입력해주면 됩니다.
여기서 오류나면 사진과 같이 명령어 실행 후 문구가 안뜹니다 사진과 같은 화면이면 성공!

다시 config 파일로 돌아간다면 방금 만든 gaming 프로필을 확인할 수 있습니다
자동으로 프로필이 생성이 완료됩니다 빨강색 박스로 표시된 부분에서 확인할 수 있습니다.

aws-token.sh 파일 인증도 해줍니다
MFA는 AWS콘솔에 접속할때 사용하는 MFA를 사용하여 넣어줍니다
./aws-token.sh 이메일앞부분 MFA번호

설정이 잘 되었는지 확인하기 위해서 화면에 나오는 명령어를 입력해보면 메인 계정의 ID가 뜨는것을 확인할 수 있습니다
aws sts get-caller-identity --profile 프로필명 --query Account --output text
aws-token.sh 쉘 스트립트 23줄을 보면 프로필 명을 mine으로 설정해둔 것의 영향으로 mine 이라는 프로필이 자동으로 생성이 됩니다. 아래 사진에 빨강 박스 부분이 자동 생성 된 것을 확인할 수 있습니다

원하는 서비스 파일 출력을 위한 쉘 스크립트 준비
모든 쉘 스크립트 상단에 프로필과 아웃풋 파일을 지정하는데 이 부분을 수정하면 원하는 프로필로 출력되는 파일 이름을 커스덤하게 만들 수 있습니다.
profile="프로필 이름"
output_file="iam_users_log.csv" ##파일 이름을 변경하고 싶으면 여기서 변경하세요
AWS-Inventory/Services at main · ssyeon-721/AWS-Inventory
Contribute to ssyeon-721/AWS-Inventory development by creating an account on GitHub.
github.com
실행하기
쉘스크립트 파일의 위치를 확인하고 실행하면 csv 파일이 생성이 완료됩니다
서비스의 양에 따라서 만들어지는 시간이 다른데 내용이 별로 없으면 바로 만들어지고 양이 많다면 15~20분 정도 걸릴때도 있습니다
쉘스크립트 파일이 있는 경로에 해당 이름의 csv 파일이 생성됨을 확인할 수 있습니다.

아래와 같은 다양한 서비스의 csv 문서를 생성할 수 있습니다

AWS CLI를 활용한 자산 목록 추출 방식은
폐쇄망 환경에서도 AWS 리소스를 운영 문서에 활용 가능한 형태로 정리할 수 있는 하나의 방법입니다.
각 환경의 제약 조건과 운영 목적에 맞게 출력 형식이나 대상 서비스를 조정해 활용해 보시기 바랍니다.
Made by 이승연 (LEE SEUNGYEON)
'AWS > 운영' 카테고리의 다른 글
| ADOT(AWS Distro for OpenTelemetry)설명 및 배포 가이드 (0) | 2025.11.25 |
|---|---|
| 가비아 도메인을 AWS ACM에 등록하기 (0) | 2024.05.22 |
댓글