aws-nuke로 계정의 모든 리소스 제거하는 방법
간혹 credit이 생겨 새로운 계정에서 테스트 하는 경우가 있다.
테스트가 끝나면 바로바로 리소스를 지워줘야 되는데 IaC로 생성한 리소스가 아니면 하나하나 찾아서 지우는게 여간 번거로운 일이 아니다.
그때 aws-nuke로 계정 내 모든 리소스를 일괄로 지울 수 있다.
https://github.com/rebuy-de/aws-nuke
해당 사이트에서 최신 버전을 다운 받아 사용하면 된다.
여러 방법이 있지만 MAC에선 편하게 사용할 수 있는 MacPorts가 있다.
https://www.macports.org/install.php
MacPorts를 받은 후 아래 명령어 실행
sudo port install aws-nuke
# config 예시 문서 확인
cat /opt/local/share/aws-nuke/examples/example.yaml
aws-nuke을 사용하기 위해선 config.yml 파일이 필요하다. 샘플 파일을 참고하여 각자 환경에 맞게 사용하면 된다.
---
regions: ##### aws-nuke를 진행할 리전 정의
- "global" # global 리소스용 리전
- "eu-west-1"
- "ap-northeast-2"
account-blocklist: ##### aws-nuke에서 제외할 계정들 정의
- 1234567890
resource-types: ##### 리소스들 제한 또는 제외
excludes: ##### targets - 리소스 제한 / excludes - 리소스 제외
- IAMUser
- IAMUserPolicyAttachment
- IAMUserAccessKey
- S3Bucket
- S3Object
- Route53HostedZone
accounts:
555133742: ##### aws-nuke 진행할 계정 id
filters: ##### 삭제하면 안되는 리소스들 정의
IAMUser:
- "admin"
IAMUserPolicyAttachment:
- property: RoleName
value: "admin"
IAMUserAccessKey:
- property: UserName
value: "admin"
참고로 aws-nuke를 실행하기 위해선 aws 계정에 alias가 설정되어야 한다.
aws-nuke -c config.yml --profile [profile]
awscli 사용하듯 credentials 설정 후 사용하면 된다.
아무래도 계정을 초기화시키는 매우 공격적인 작업이다 보니 alias로 이중 체크하는 것 같다. 한번 더 alias를 입력하면 삭제할 리소스들이 나열된다.
이후 aws-nuke -c config.yml --no-dry-run
을 입력하면 리소스가 삭제된다.
별다른 FAIL이나 ERROR가 안뜨면 해당 계정은 초기화됐다고 봐도 무방한다.