공부/AWS
[AWS 리소스 초기화] aws-nuke in MAC
haejang
2022. 5. 19. 19:31
728x90
728x90
aws-nuke 란?
AWS 내의 리소스들을 한꺼번에 날릴 수 있는 오픈소스
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를 돌리면 안되는 계정 id들
- 1234567890
- 5678901234
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"
regions
:aws-nuke
를 진행할 리전들을 명시하며, 글로벌 리소스들 (s3, iam 등)은 global 리전으로 명시해주어야 한다account-blocklist
: 아무래도 무시무시한 작업을 진행할거다 보니, 민감한 계정들은 미리 block시킬 수 있다resource-types
: 삭제할 리소스들 종류를 제한하거나 제외할 수 있다targets
: 명시된 리소스들만 삭제exludes
: 명시된 리소스들은 삭제에서 제외- 리소스들 이름 확인 :
aws-nuke resource-types
accounts
: aws-nuke를 진행할 account id- filter를 걸어서 삭제 시 무시할 리소스들을 하나하나 명시해줄 수 있다
aws-nuke
를 돌리기 위해선 aws 계정 자체에 alias 설정이 되어있어야 한다
만약 alias 설정이 없다면 아래 명령을 사용하자
aws iam create-account-alias --account-alias honglab
plan 돌리기 (dry-run)
aws-nuke -c config.yml
특정 profile을 사용해야 한다면 awscli 쓰듯이 뒤에 --profile=honglab
요렇게 붙이면 된다
아무래도 민감한 작업이다 보니 aws credential 말고도 alias로 확인을 한번 더 진행하는 듯 하다
alias를 입력해주면 삭제할 예정인 리소스들이 쭈루루루루루루룩 뜬다
실제 삭제 진행하기
aws-nuke -c config.yml --no-dry-run
여기서는 alias 확인을 2번 진행한다
끝
728x90
728x90