Blob 다이제스트를 저장하는 관리형 애플리케이션 만들기

필수 조건

개요

Confidential Ledger에서 지원하는 Blob Storage Digest 관리형 애플리케이션을 사용하면 Blob 컨테이너 내의 Blob을 신뢰할 수 있고 변조되지 않도록 보장할 수 있습니다. 스토리지 계정에 연결된 애플리케이션은 다이제스트를 계산하고 Azure Confidential Ledger에 저장하는 것 외에도 스토리지 계정의 모든 컨테이너에 추가되는 모든 Blob을 실시간으로 추적합니다. Blob의 유효성을 확인하고 Blob 컨테이너가 변조되지 않았는지 확인하기 위해 언제든지 감사를 수행할 수 있습니다.

관리형 애플리케이션 배포

관리형 애플리케이션은 Azure Marketplace의 Confidential Ledger에서 지원하는 Blob Storage Digests(미리 보기)에서 찾을 수 있습니다.

생성될 리소스

필수 필드가 채워지고 애플리케이션이 배포되면 관리되는 리소스 그룹 아래에 다음 리소스가 만들어집니다.

스토리지 계정을 관리형 애플리케이션에 연결

관리형 애플리케이션이 만들어지면 관리형 애플리케이션을 스토리지 계정에 연결하여 Blob 컨테이너 다이제스트 처리를 시작하고 Azure Confidential Ledger에 레코딩할 수 있습니다.

스토리지 계정에 대한 토픽 및 이벤트 구독 만들기

관리형 애플리케이션은 Azure Service Bus 큐를 사용하여 모든 Blob 만들기 이벤트를 추적하고 기록합니다. 관리형 애플리케이션에 의해 관리되는 리소스 그룹에 생성된 큐를 사용하고 이를 Blob을 생성하는 모든 스토리지 계정에 대한 이벤트 구독자로 추가합니다.

스토리지 이벤트 구독을 설정하는 방법을 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

Azure Portal에서 Blob 다이제스트 생성을 시작하려는 스토리지 계정으로 이동하여 Events 블레이드로 이동할 수 있습니다. 여기에서 이벤트 구독을 만들고 이를 Azure Service Bus 큐 엔드포인트에 연결할 수 있습니다.

스토리지 이벤트 구독 세션 ID를 설정하는 방법을 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

큐는 세션을 사용하여 여러 스토리지 계정의 순서를 유지 관리하므로 Delivery Properties 탭으로 이동하고 이 이벤트 구독에 대한 고유한 세션 ID를 입력해야 합니다.

스토리지 계정에 필요한 역할 추가

관리형 애플리케이션은 각 Blob에 대한 해시를 읽고 만들기 위한 Storage Blob Data Owner 역할이 필요하며 다이제스트를 올바르게 계산하려면 이 역할을 추가해야 합니다.

관리형 앱에 대한 관리 ID 설정 방법을 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

참고 항목

여러 스토리지 계정을 단일 관리형 애플리케이션 인스턴스에 연결할 수 있습니다. 현재 사용량이 많은 Blob 컨테이너를 포함하는 최대 10개의 스토리지 계정을 권장합니다.

Blob 추가 및 다이제스트 생성

스토리지 계정이 관리형 애플리케이션에 제대로 연결되면 Blob이 스토리지 계정 내의 컨테이너에 추가되기 시작할 수 있습니다. Blob은 실시간으로 추적되며 다이제스트가 계산되어 Azure Confidential Ledger에 저장됩니다.

트랜잭션 및 블록 테이블

모든 Blob 만들기 이벤트는 관리형 애플리케이션 내에 저장된 내부 테이블에서 추적됩니다.

Blob 해시가 저장되는 트랜잭션 테이블을 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

트랜잭션 테이블에는 각 Blob에 대한 정보와 Blob의 메타데이터 및/또는 콘텐츠의 조합을 사용하여 생성된 고유 해시가 포함됩니다.

다이제스트 정보가 저장되는 블록 테이블을 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

블록 테이블은 Blob 컨테이너에 대해 생성된 모든 다이제스트와 관련된 정보를 보유하며 다이제스트에 대한 관련 트랜잭션 ID는 Azure Confidential Ledger에 저장됩니다.

다이제스트 설정

다이제스트 설정을 표시하는 관리형 앱 프로비전의 스크린샷.

관리형 애플리케이션을 만들 때 선택할 수 있는 몇 가지 다이제스트 설정이 있습니다. 다이제스트를 만드는 데 사용되는 Hashing AlgorithmMD5 또는 SHA256 중 선택할 수 있습니다. 또한 각 다이제스트에 포함된 Blob 수 또는 Digest Size를 선택할 수 있습니다. 다이제스트 크기의 범위는 1-16이며 각 블록 내에서 함께 해시될 Blob의 수입니다. 마지막으로 Hash Contents와 각 다이제스트를 만들 때 해시할 항목을 선택할 수 있습니다. 각 Blob의 File Contents + Metadata이거나 File Contents일 수 있습니다.

Azure Confidential Ledger에서 다이제스트 보기

Ledger Explorer 블레이드로 이동하여 Azure Confidential Ledger에 직접 저장되는 다이제스트를 볼 수 있습니다.

다이제스트 트랜잭션이 있는 Azure Confidential Ledger 탐색기를 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

감사 수행

컨테이너에 추가된 Blob의 유효성을 확인하여 변조되지 않았는지 확인하려는 경우 언제든지 감사를 실행할 수 있습니다. 감사에서는 모든 Blob 만들기 이벤트를 재생하고 감사 중에 컨테이너에 저장된 Blob으로 다이제스트를 다시 계산합니다. 그런 다음, 다시 계산된 다이제스트를 Azure Confidential에 저장된 다이제스트와 비교하고 모든 다이제스트 비교와 Blob 컨테이너의 변조 여부를 표시하는 보고서를 제공합니다.

감사 트리거

관리형 애플리케이션과 연결된 Service Bus 큐에 다음 메시지를 포함하면 감사가 트리거될 수 있습니다.

{
    "eventType": "PerformAudit",
    "storageAccount": "<storage_account_name>",
    "blobContainer": "<blob_container_name>"
}

웹 브라우저의 Azure Portal 스크린샷, 큐에 메시지를 추가하여 감사를 트리거하는 방법.

큐에 세션이 사용하도록 설정되어 있으므로 Session ID를 포함해야 합니다.

감사 결과 보기

다이제스트가 일치하는 샘플 감사 레코드를 보여 주는 웹 브라우저의 Azure Portal 스크린샷.

감사가 성공적으로 수행되면 해당 스토리지 계정 내에 있는 <managed-application-name>-audit-records으로 명명된 컨테이너에서 감사 결과를 찾을 수 있습니다. 이 결과에는 다시 계산된 다이제스트, Azure Confidential Ledger에서 검색된 다이제스트 및 Blob이 변조되었는지 여부가 포함됩니다.

감사 메일 경고 설정을 표시하는 관리형 앱 프로비전의 스크린샷.

관리형 애플리케이션을 만들 때 메일 경고를 옵트인하는 경우 선택한 옵션에 따라 Audit Failure 또는 Audit Success and Failure 동안 메일로 알림이 전송됩니다.

로깅 및 오류

오류 로그는 해당 스토리지 계정 내에서 <managed-application-name>-error-logs으로 명명된 컨테이너에서 찾을 수 있습니다. Blob 만들기 이벤트 또는 감사 프로세스가 실패하면 실패의 원인이 기록되고 이 컨테이너에 저장됩니다. 오류 로그 또는 애플리케이션 기능에 대한 질문이 있는 경우 관리형 애플리케이션 세부 정보에 제공된 Azure Confidential Ledger 지원 팀에 문의하세요.

관리형 애플리케이션 정리

관리형 애플리케이션을 삭제하여 연결된 모든 리소스를 정리하고 제거할 수 있습니다. 관리형 애플리케이션을 삭제하면 모든 Blob 트랜잭션 추적이 중지되고 모든 다이제스트 생성이 중지됩니다. 감사 보고서는 삭제 전에 추가된 Blob에 대해 유효한 상태로 유지됩니다.

추가 리소스

관리형 애플리케이션 및 배포된 리소스에 대한 자세한 내용은 다음 링크를 참조하세요.

다음 단계