
일부 (가상) 서버가 있습니다. 그들은 응용 프로그램 키를 사용하여 Backblaze B2에 스스로 백업합니다.
이 서버 관리를 도와줄 사람을 고용하고 싶습니다.
그 사람이 내가 원하는 서버에 대한 루트 액세스 권한을 얻으면 B2 애플리케이션 키에도 액세스할 수 있습니다. 이는 그가 서버를 삭제할 수 있음을 의미합니다.그리고백업.
이 극단적인 경우를 방지하기 위해 사용할 수 있는 절차/설정은 무엇입니까? 오프라인 백업이 있지만 이는 월별 백업인 반면 B2 백업은 매일입니다.
답변1
일부 환경에서는 작업을 두 팀으로 나누면 됩니다. 한 팀은 서버를 실행/보호하고, 다른 팀은 백업을 실행/보호합니다.
다른 부분은 더욱 중요합니다. 특히 백업 중인 시스템에서 백업이 쓰기 가능한 경우 이는 좋은 백업이 아닙니다.
borg와 같은 많은 도구에서 체계적인 문제가 발생합니다. (클라우드 세계에서는) 백업을 생성만 할 수 있는 역할을 사용하여 S3에 저장하면서 백업을 AWS Glacier로 푸시할 수 있는 것이 가장 좋습니다. 삭제 일정이 있으므로 누구도 이를 "빠르게" 수행할 수 없습니다.
또한, 이것에 관한 책이 있다는 것을 잊지 마세요.
답변2
수행 방법은 다음과 같습니다.
Backblaze B2에서 파일을 삭제할 수 없는 응용 프로그램 키를 만듭니다.
b2 create-key --bucket MyBucket MyKeyName listBuckets,listFiles,readFiles,writeFiles
해당 키를 사용하고 오래된 백업 파일을 삭제하지 않도록 백업을 설정하십시오. 예를 들어, 에서는 , 또는 를
duplicity
사용하지 마십시오 . 에서는 또는 를 사용하지 마십시오 .remove-older-than
remove-all-but-n-full
remove-all-inc-of-but-n-full
duply
purge
purgeIncr
오래된 백업을 삭제하려면 버킷에 사용자 정의 수명 주기 설정을 지정하세요. 예를 들어, 로 시작하는 줄은
duplicity-full
360일 후에 숨겨지고 360일이 지나면 삭제되도록 설정합니다.duplicity-inc
및 로 시작하는 파일의 경우에도 마찬가지입니다duplicity-new
.
업데이트:
B2는 실제로 "파일 삭제" 기능을 제공하지 않습니다. 동일한 파일을 교체할 때마다 기록이 유지되므로 파일은 "버전"을 가질 수 있습니다. 일반적으로 가장 최근 버전이 필요한 버전입니다. B2가 제공하는 것은 파일을 "숨기는" 기능입니다. 파일을 숨기면 파일 기록에 해당 파일이 "삭제"되었다는 사실이 실제로 기록됩니다. 즉, 숨겨진 파일 또는 삭제된 파일인 새 파일 버전을 추가하는 것과 같습니다.
그 외에도 B2는 실제로 파일 버전을 삭제하는 기능도 제공합니다. deleteFiles 권한이 없는 사용자에게는 실제로 파일을 숨길 수 있는 권한이 있지만 파일 버전을 삭제할 수는 없습니다.
remove-...
파일을 숨김으로써 이중성 기능을 구현해야 할 것 같습니다 . (일정 시간이 지난 후 이러한 숨겨진 파일 버전을 실제로 삭제하는 것은 버킷의 구성에 달려 있습니다.) 그러나 duplicity의 B2 백엔드는 이를 수행하지 않습니다. 실제로는 파일 버전을 삭제하는 것입니다.
답변3
대부분의 퍼블릭 클라우드에서 서버에 대한 SSH 액세스가 서버를 삭제할 수 있다는 의미는 아닙니다. 서버에서 관리하는 것과 클라우드 계정에서 관리하는 것에는 차이가 있습니다. 따라서 이를 분리할 수 있습니다. 특히 Amazon AWS에서는 권한을 상당히 분할할 수도 있습니다. 예를 들어, 다른 사람에게 서버를 재부팅할 수 있는 권한을 부여할 수 있지만 삭제할 수는 없습니다. 그리고 AWS에는 VM에 대한 삭제 보호 옵션이 있습니다.
요즘 모범 사례는 Chef/Puppet/Salt/Ansible과 같은 구성 관리를 사용하여 서버에 실제로 로그인하지 않고 서버에서 변경 작업을 수행하는 것입니다.
또한 AWS의 경우 원하는 만큼 자주 서버의 스냅샷을 만들 수 있으며 이는 서버를 백업하는 가장 효율적인 방법입니다.