공부/AWS

[AWS 리소스 초기화] aws-nuke in MAC

haejang 2022. 5. 19. 19:31
728x90
728x90

 

 

aws-nuke 란?

AWS 내의 리소스들을 한꺼번에 날릴 수 있는 오픈소스

https://github.com/rebuy-de/aws-nuke

 

GitHub - rebuy-de/aws-nuke: Nuke a whole AWS account and delete all its resources.

Nuke a whole AWS account and delete all its resources. - GitHub - rebuy-de/aws-nuke: Nuke a whole AWS account and delete all its resources.

github.com

 

 

MAC에서 사용하기

여러 방법이 있지만,,,더 편하게 사용하기 위해 MacPorts를 받았다

https://www.macports.org/install.php

 

The MacPorts Project -- Download & Installation

Quickstart Install Xcode and the Xcode Command Line Tools Agree to Xcode license in Terminal: sudo xcodebuild -license Install MacPorts for your version of the Mac operating system: Installing MacPorts MacPorts version 2.7.2 is available in various formats

www.macports.org

 

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