Azure SQL Database 원장 살펴보기

완료됨

Azure SQL Database 원장 기능은 데이터베이스에서 변조 증거 기능을 제공합니다. 감사자 또는 다른 비즈니스 당사자와 같은 다른 당사자에게 데이터가 변조되지 않았음을 암호화된 방식으로 증명할 수 있습니다.

작동 방법

암호화 및 블록체인은 다양한 수준으로 성공을 거두며 광범위한 기술 영역에 나타나기 시작했습니다. 유용하고 유익한 것으로 입증된 한 사례가 바로 Azure SQL Database 원장 기능의 기반 기술로 사용되는 분야입니다. 원장 기능은 데이터베이스에서 변조 증거 기능을 제공합니다. Azure SQL Database 원장 기능을 사용하면 감사자, 비즈니스 파트너 또는 이해 관계자에게 변경되거나 변조된 데이터에 대한 구체적인 증거를 제공할 수 있습니다.

기존 원장은 특정 유형의 계정 컬렉션으로 정의되며, 이는 Azure SQL Database 원장 기능이 사용자 환경에서 제공하는 것과 정확히 일치합니다. 공격자 또는 데이터베이스 또는 클라우드 관리자를 포함하여 악의적인 행위자로부터 데이터를 투명하게 보호합니다. 또한 암호화 데이터 무결성을 보장하면서 Azure SQL Database의 기능, 유연성 및 성능은 그대로 유지할 수 있습니다.

 Diagram of the ledger table architecture.

데이터베이스에서 받은 각 트랜잭션은 암호화된 해시(SHA-256)입니다. 함수는 블록체인과 같이 모든 트랜잭션을 암호화하여 함께 연결합니다.

구성 요소

Azure SQL Database 원장 함수는 현재 업데이트 가능한 원장 테이블과 추가 전용 원장 테이블이라는 두 가지 형식의 테이블에 대해 존재합니다.

업데이트 가능한 원장 테이블

업데이트 가능한 원장 테이블은 업데이트, 삭제 및 삽입을 발급하는 애플리케이션에 사용할 수 있습니다. 팩트 레코드 보관 및 감사가 필요하고 발생하는 레코드 애플리케이션 및 트랜잭션 시스템의 시스템에 적합합니다. 업데이트 가능한 원장 테이블은 모든 행에 대한 변경 기록을 추적하고 기본 제공 시스템 버전 관리를 사용하여 모든 업데이트 또는 삭제에 대해 이전 버전의 행을 저장하는 기록 테이블을 만듭니다.

추가 전용 원장 테이블

추가 전용 원장 테이블은 여전히 감사 또는 SIEM(보안 정보 및 이벤트 관리) 애플리케이션이 필요한 회계 시스템과 같은 애플리케이션만 삽입하는 데 잘 작동합니다. 추가 전용 원장 테이블은 API 수준에서 모든 업데이트 및 삭제를 차단하므로 확실성을 제공할 뿐만 아니라 관리를 보조합니다.

이점

Azure SQL Database 원장 기능은 다음과 같은 여러 가지 이점을 제공합니다.

간편한 감사 - 잠재적인 공격을 줄이기 위한 적절한 보안 제어가 이루어지도록 감사가 정기적으로 진행되고, 백업 및 복원 관행이 필요에 따라 수행되며, 철저한 재해 복구 절차가 마련됩니다. 원장은 감사 프로세스에서 데이터가 변경되지 않았다는 문서화된 증거를 제공합니다.

신뢰 증가 - 원장은 네트워크 합의로 인해 발생할 수 있는 복잡성과 성능상 영향 없이도 다자간 비즈니스 프로세스 간에 신뢰를 구축하는 데 도움이 될 수 있습니다.

데이터 무결성 – 성능을 저하시키지 않고 블록체인 네트워크에서 데이터를 쿼리하기란 매우 어려운 문제일 수 있습니다. 원장은 블록체인 네트워크의 오프체인 스토리지에 필요한 데이터 무결성을 제공하므로 전체 시스템에서의 완전한 데이터 신뢰를 보장하는 데 도움이 됩니다.

원장이 사용 설정된 SQL 데이터베이스 만들기

아래 단계에 따라 원장 기능을 간편하게 사용 설정할 수 있습니다.

  1. Azure Portal의 SQL 배포 선택 옵션 페이지로 이동합니다.

  2. SQL 데이터베이스에서 리소스 유형단일 데이터베이스로 설정한 상태로 두고 만들기를 선택합니다.

    Screenshot that shows how to select SQL deployment option.

  3. SQL 데이터베이스 생성 양식의 기본 탭에 있는 프로젝트 세부 정보에서 사용할 Azure 구독을 선택합니다.

  4. 리소스 그룹의 경우 새로 만들기를 선택하고, myResourceGroup을 입력하고, 확인을 선택합니다.

  5. 데이터베이스 이름으로 demo를 입력합니다.

  6. 서버의 경우 새로 만들기를 선택합니다. 다음 값으로 새로운 서버 양식을 작성하고 확인을 선택합니다.

    • 서버 이름:<고유한 서버 이름 입력>
    • 서버 관리자 로그인: azureuser
    • 암호:<강력한 암호 입력>
    • 위치: 리소스 그룹이 생성된 지역과 동일한 지역 선택
    • Azure 서비스가 이 서버에 액세스하도록 허용: 다이제스트 스토리지에 대한 액세스를 활성화하려면 이 옵션을 선택합니다.
  7. SQL 탄력적 풀을 사용하나요?아니요로 설정된 상태로 둡니다.

  8. 컴퓨팅 + 스토리지에서 데이터베이스 구성을 선택합니다.

  9. 서버리스를 선택하고 적용을 선택합니다.

    Screenshot that shows configuring a serverless database.

  10. 네트워킹 탭에서 연결 방법에 대해 퍼블릭 엔드포인트를 선택합니다.

  11. 방화벽 규칙의 경우 현재 클라이언트 IP 주소 추가로 설정합니다. Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용아니요로 설정된 상태로 둡니다.

  12. 페이지 하단에서 다음: 보안을 선택합니다.

     Screenshot that shows the Networking tab of the Create SQL Database screen in the Azure portal.

  13. 보안 탭의 원장 섹션에서 원장 구성 링크를 선택합니다.

     Screenshot that shows configuring a ledger on the Security tab of the Azure portal.

  14. 원장 구성 창의 원장 섹션에서 이 데이터베이스의 모든 향후 테이블에 사용 확인란을 선택합니다.

    참고

    이 설정을 통해 데이터베이스의 향후 모든 테이블이 원장 테이블이 됩니다. 이러한 이유로 데이터베이스의 모든 데이터는 변조 증거를 표시합니다. 기본적으로 새 테이블은 CREATE TABLE 문에 LEDGER = ON을 지정하지 않더라도 업데이트 가능한 원장 테이블로 만들어집니다.

    이 옵션을 선택하지 않은 상태로 둘 수도 있습니다. 그런 다음, Transact-SQL을 사용하여 새 테이블을 만들 때 테이블별로 원장 기능을 사용하도록 설정해야 합니다.

  15. Digest Storage 섹션에서 자동 다이제스트 스토리지 사용이 자동으로 선택됩니다. 그런 다음, 다이제스트가 저장된 새 Azure Storage 계정과 컨테이너가 생성됩니다.

  16. 적용을 선택합니다.

    Screenshot that shows the Configure ledger (preview) pane in the Azure portal.

  17. 페이지 아래쪽에서 검토 + 만들기를 선택합니다.

     Screenshot that shows reviewing and creating a ledger database on the Security tab of the Azure portal.

  18. 검토 + 만들기 페이지에서 검토 후 만들기를 선택합니다.