AWS CLI로 S3 버킷 MFA Delete 삭제 방지 및 버전 관리 활성화하기

AWS CLI로 S3 버킷 MFA Delete 삭제 방지 및 버전 관리를 활성화하는 과정을 정리해 봤습니다.
2021.10.02

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CLI로 S3 버킷 MFA Delete 삭제 방지 및 버전 관리를 활성화하는 과정을 정리해 봤습니다.

먼저 S3에서 MFA Delete를 설정 하기 위해서는 AWS 콘솔 환경에서는 불가능하기 때문에 AWS CLI를 사용해야 합니다. Mac에서의 AWS CLI 환경을 구축하는 방법에 대해서는 아래 링크를 참고해 주세요

AWS CLI에서 버킷 생성

aws s3 mb s3://mfa-delete-s3-test
aws s3 ls

우선 터미널에서 해당 명령어로 버킷을 생성하고, 버킷 목록을 확인합니다.

「mfa-delete-s3-test」버킷이 생성된 것을 확인할 수 있습니다.

AWS CLI에서 버전 관리 활성화

Amazon S3의 버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유하는 수단입니다. S3 버전 관리를 사용하면 버킷에 저장된 모든 버전의 객체를 모두 보존, 검색 및 복원할 수 있습니다. 또한 의도치 않은 사용자 작업 및 애플리케이션 장애로 부터 더 쉽게 복구할 수 있습니다.

즉 버전 관리를 통해서 실수로 객체를 삭제 하거나, 덮어쓴 경우 쉽게 복구할 수 있습니다.

aws s3api get-bucket-versioning --bucket mfa-delete-s3-test

현재 버전 관리가 활성화되어 있는지 확인합니다. 아무것도 출력되지 않으면 버전 관리가 활성화되지 않은 상태입니다.

aws s3api put-bucket-versioning --bucket mfa-delete-s3-test --versioning-configuration Status=Enabled
aws s3api get-bucket-versioning --bucket mfa-delete-s3-test

버전 관리를 활성화 하고 다시 확인해 보면 이번에는 Enabled가 출력되는 것을 확인할 수 있습니다.

AWS CLI에서 MFA Delete 활성화

Amazon S3 버킷에서 S3 버전 관리를 사용하는 경우 선택적으로 MFA(멀티 팩터 인증) Delete를 활성화하도록 버킷을 구성하여 다른 보안 계층을 추가할 수 있습니다.

즉 MFA Delete를 활성화하면 실수로 버킷을 삭제하는 것을 방지할 수 있습니다.

aws iam list-virtual-mfa-devices

해당 명령어로 현재 가상 MFA 디바이스를 확인할 수 있습니다.

aws s3api put-bucket-versioning --bucket mfa-delete-s3-test --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "arn:aws:iam::/root-account-mfa-device mfa number"

위 명령으로 MFA Delete를 활성화 할 수 있습니다. 하지만 여기서 알아둬야 할 점은 비 IAM 사용자 즉 root 계정에서만 가능하다는 것입니다. root 계정이 아닌 IAM 사용자로 AWS를 작업하고 있다면 MFA Delete를 활성화할 수 없습니다.

참고