boto3에 의해 여러 버전 관리가 활성화된 S3 버킷 삭제

4226 단어 devopsawspython
AWS 콘솔에서 버전 관리가 활성화된 여러 개의 비어 있지 않은 S3 버킷을 삭제하려고 시도한 적이 있습니까? 모든 S3 버킷을 통과하는 것이 얼마나 짜증나는 일입니까? AWS 콘솔에서 버킷을 삭제하려면 다음을 수행해야 합니다.
  • 버킷의 모든 객체 삭제
  • 버킷 이름을 입력하여 버킷을 비웁니다
  • .
  • 'delete'를 입력하여 버킷 삭제

  • 2번의 확인을 거쳐야 합니다. 삭제할 버킷이 최대 20개이고 각 버킷을 통과하여 확인하려면 최대 40개의 확인을 거쳐야 합니다. 이는 완전히 지옥입니다. 따라서 프로그래밍 방식으로 선택합니다. 이 게시물을 통해 여러 버킷을 삭제하는 간단한 스크립트를 작성해 보겠습니다.

    전제 조건


  • AWS CLI가 설치되었습니다. here에서 다운로드하십시오.
  • AWS CLI에서 AWS 자격 증명을 구성합니다. AWS CLI를 구성하는 방법은 this document을 참조하십시오.
  • Git을 로컬 시스템에 설치하고 활성화하십시오.
  • pip가 설치되었습니다. pip는 Python용 패키지 관리자입니다. NodeJS의 npm과 같습니다. pip를 설치하려면 this document을 참조하십시오.

  • 이 자습서에서는 관리 계정을 사용하고 있습니다. 항상 사용자에게 최소 권한 권한을 제공하는 것이 좋습니다.

    연습



    이 프로젝트에서는 다음을 사용합니다.
  • boto3: Python의 AWS SDK
  • inquirer: 최종 사용자 질문, 구문 분석, 답변 확인, 계층적 프롬프트 관리 및 오류 피드백 제공 프로세스를 쉽게 하기 위해
  • 저장소를 복제하고 터미널에서 s3 디렉토리로 이동합니다.

  • git clone https://github.com/andylim0221/aws_scripts.git
    
    cd aws_scripts/s3
    


  • boto3 및 inquirer와 같은 필수 패키지를 설치합니다.

  • pip install -r requirements.txt
    


  • 프로필 또는 기본 프로필로 스크립트를 실행합니다.

  • python delete_bucket.py # default profile
    
    # or with profile any
    python delete_bucket.py --profile any 
    
    


    그러면 아래와 유사한 목록이 표시됩니다.


    space 막대를 누르고 up arrowdown arrow 버튼으로 이동하여 삭제할 버킷을 선택할 수 있습니다. 선택한 옵션은 노란색 글꼴 색상으로 표시됩니다. 선택한 버킷에서 space bar를 다시 클릭하면 옵션에서 제거됩니다.



    선택이 완료되면 Enter 버튼을 눌러 다음 단계로 이동합니다.



    이전에 선택한 버킷을 삭제할 것인지 확인하는 질문이 표시됩니다. delete 를 입력하면 작업이 확인되고 버킷 삭제가 진행됩니다.



    이제 삭제가 진행되는 동안 좋은 커피 한 잔을 마시기만 하면 됩니다.

    스크립트가 완료되면 선택한 버킷이 삭제되었는지 확인하기 위해 버킷을 나열하여 버킷을 확인합니다.

    aws s3 ls #list all buckets
    


    작업을 취소하거나 버킷을 다시 선택하려면 Ctrl-C까지 스크립트를 종료해야 합니다.

    문제 해결



    버킷을 나열할 때 삭제된 버킷이 여전히 있는 경우가 있는데, 목록이 즉시 업데이트되지 않기 때문에 여전히 목록에 있는 이유입니다. AWS 콘솔에서 확인할 수 있으며 삭제된 버킷이 아래와 같이 표시되는 것을 볼 수 있습니다.



    최대 24시간이 지나면 버킷이 목록에서 사라집니다.

    결론



    이 간단한 스크립트에서 다음을 수행할 수 있습니다.
  • 개체 제거
  • 버전이 지정된 개체 제거
  • 빈 객체
  • 버킷 삭제

  • 물론 이것은 보안이나 효율성 면에서 개선될 수 있지만 작업에 적합해야 합니다. 이 솔루션에서 버그나 문제를 발견한 경우 의견에 알려주십시오.

    즐거운 코딩하세요! 💻

    좋은 웹페이지 즐겨찾기