2019년 5월 17일, 세일즈포스는 자사의 Pardot 마케팅 제품과 관련된 데이터베이스 스크립트를 실행했는데, 이는 "사용자에게 의도한 것보다 더 광범위한 데이터 접근 권한을 부여하는 결과를 낳았다": 현직 및 전직 Pardot 사용자들이 권한 설정을 무시하고 자신의 조직 내 모든 것을 읽고 편집할 수 있게 된 것이다. 노출을 억제하기 위해 세일즈포스는 영향을 받은 고객이 있는 모든 인스턴스, 즉 총 105개 인스턴스에 대한 접근을 차단했고, 이로 인해 Pardot과 아무 관련이 없는 테넌트들까지 중단되었다.
전체 장애는 15시간 8분 동안 지속되어 5월 18일 PDT 0104에 끝났으며, 바로 그 같은 분에 새로운 장애가 시작되었다. 인스턴스를 안전하게 다시 열 수 있도록 세일즈포스는 영향을 받은 사용자의 권한을 삭제하고 관리자 계정만 복원했으며, 고객에게 사용자 권한을 수동으로 재할당하라고 지시했다. 주말 동안 세일즈포스는 백업에서 권한을 복원하는 스크립트를 만들었지만, 일요일까지 성공률이 89%라고 보고했기에 약 10개 조직 중 1개는 여전히 사용자 권한이 삭제된 상태였고, 일부 실행에서는 그 스크립트가 제거하려던 광범위한 접근 권한을 다시 부여하기도 했다.
복구 작업은 다음 주까지 이어졌다: 5월 20일 월요일까지 수천 건의 티켓이 열려 있었고, 샌드박스 인스턴스는 여전히 다운되어 있었으며, 엔지니어링 담당 수석 부사장인 안몰 바신은 고객 통화에서 첫 수정이 "성공적이지 못했다"고 사과하며 사용 가능한 모든 엔지니어링 자원이 이 문제에 투입되고 있다고 말했다. 그 수정은 원래의 고장보다 더 길어진 두 번째 장애가 되었다.
105개 인스턴스 오프라인; 약 15시간의 전체 장애, 그 후 며칠간의 읽기 전용 정리 작업; 주말 복원 스크립트는 약 10개 조직 중 1개에서 실패했다
왜 일어났나
그 변경은 의도한 범위를 훨씬 넘어서 실행되었다: 일부 Pardot 조직을 위한 권한 수정이 전체 플랫폼에 적용되었고, 사용자들이 결코 보아서는 안 될 데이터를 보기 전에 그 확대를 막는 보호 장치가 없었다.
유일하게 안전한 억제 방법은 전체 인스턴스를 오프라인으로 전환하는 것이었기에, 한 제품 팀의 실수가 같은 인프라를 사용하는 무관한 고객들에게 공통의 장애가 되었다.
롤백은 애초에 설계된 적이 없었다: 복원 스크립트는 압박 속에서 주말에 작성되었고, 약 11%의 조직에서 실패했으며, 때로는 제거하려던 접근 권한을 다시 부여하기도 했다.
복구는 고객에게 작업을 떠넘겼다 - 관리자들이 사용자 권한을 수동으로 재구축했다 - 이로써 하루짜리 사건이 일주일간의 정리 작업과 지원 부담으로 늘어났다.
교훈
범위가 지정되지 않은 데이터베이스 스크립트는 회사 차원의 위험이다. 모든 변경에 범위를 지정하고, 롤아웃을 단계적으로 진행하며, 롤백을 먼저 구축하라 - 그렇지 않으면 치료가 질병보다 더 많은 고객을 차단하게 된다.
여파
접근 권한은 5월 18일부터 점진적으로 복원되었다; 대부분의 조직은 5월 20일 월요일까지 다시 작동했으며, 세일즈포스가 복원 스크립트를 인스턴스별로 실행하면서 샌드박스와 지연된 조직들은 며칠 더 걸렸다. 세일즈포스는 대다수 고객에게 권한 확인 외에는 필요한 조치가 없다고 말했지만, 이 사건은 멀티테넌트 SaaS를 위한 변경 범위 지정과 영향 범위 통제의 표준 사례 연구가 되었고, 플랫폼 팀이 프로덕션의 데이터베이스 스크립트를 코드 배포와 같은 주의로 다루게 된 이유가 되었다.
근거 확인하기
출처
- Salesforce? Salesfarce: Cloud giant in multi-hour meltdown after database blunder grants users access to all data The Register · theregister.com ·
- Salesforce says a major issue with its cloud service results in outage for some customers CNBC · cnbc.com ·
- Salesforces Pardot went down for 15 hours, exposing data in the cloud MarTech · martech.org ·
- Salesforce outage continues: 105 instances down, fix not yet functional The Register · theregister.com ·