소개

완료됨

앱의 구성 비밀 관리와 관련해서 잘못될 수 있는 사항을 파악하려는 경우 수석 개발자인 Steve의 스토리만 살펴보면 됩니다.

Steve는 몇 주 동안 반려동물 사료 배달 회사에서 일하고 있었습니다. 회사 웹앱의 세부 정보(신용 카드 청구 및 고객 주소 매핑용 타사 API와 주문 정보를 저장하는 데 Azure SQL 데이터베이스를 사용한 .NET Core 웹앱)를 살펴보던 중, Steve는 실수로 주문 데이터베이스의 연결 문자열을 퍼블릭 포럼에 붙여넣었습니다.

며칠 후 회계 부서는 대량의 반려동물 사료가 값이 지불되지 않은 채 배달되고 있음을 알았습니다. 누군가가 연결 문자열을 사용하여 데이터베이스에 액세스하여 데이터베이스를 직접 업데이트하여 주문을 작성한 것이었습니다.

실수를 깨달은 Steve는 서둘러 데이터베이스 암호를 변경하여 공격자의 접근을 차단했습니다. Steve가 암호를 변경하자 웹 사이트는 사용자에게 오류를 반환하기 시작했습니다. 앱 서버에는 새 암호를 사용하여 업데이트한 구성이 필요했습니다. Steve는 앱 서버에 직접 로그인한 후 재배포 대신 앱 구성을 변경했지만, 서버에는 여전히 실패한 요청이 표시되고 있었습니다.

Steve는 앱의 여러 인스턴스가 서로 다른 서버에서 실행된다는 사실을 잊고 있었습니다. 그는 하나의 서버만 구성을 변경했습니다. 전체 재배포가 필요했지만, 그러려면 추가로 30분의 가동 중지 시간이 발생합니다.

다행히 Steve의 경우에는 회계팀이 오류를 빨리 고칠 수 있었고, 하루치 주문량에만 영향을 미쳤습니다. 하지만 앞으로는 그렇게 운이 좋지 못할 것이며, 앱의 보안과 유지 보수성을 개설할 방법을 찾아야 합니다.

데이터베이스 연결 문자열, API 키 또는 서비스 암호의 누수는 치명적일 수 있습니다. 데이터 도난 또는 삭제, 재정적 피해, 앱 가동 중지 시간, 비즈니스 자산, 평판에 미치는 막대한 피해 등이 모두 잠재적인 결과입니다. 그러나 비밀 값은 종종 동시에 여러 위치에 배포하고 부적절한 시간에 변경해야 합니다. 뿐만 아니라 ‘어딘가에’ 저장해야만 합니다. Steve가 Azure Key Vault를 통해 어떻게 위험을 줄이고 앱의 보안과 유지를 개선할 수 있는지 확인해 보세요.

학습 목표

이 모듈에서는 다음을 수행합니다.

  • Azure Key Vault에 저장할 수 있는 정보 형식 탐색
  • Azure Key Vault를 만들고 이를 사용하여 비밀 구성 값 저장
  • Azure 리소스에 대한 관리 ID를 사용하여 Azure App Service 웹앱에서 Azure Key Vault에 안전하게 액세스할 수 있게 함
  • Azure Key Vault에서 비밀을 검색하는 웹앱 구현