복사 작업의 원본을 스토리지 계정으로 제한

보안상의 이유로 스토리지 관리자는 데이터를 보안 계정에 복사할 수 있는 환경을 제한하려고 할 수 있습니다. 허용되는 복사 작업의 범위를 제한하면 신뢰할 수 없는 테넌트 또는 가상 네트워크에서 원치 않는 데이터의 침입을 방지할 수 있습니다.

이 문서에서는 복사 작업의 원본 계정을 대상 계정과 동일한 테넌트 내의 계정 또는 대상과 동일한 가상 네트워크에 대한 프라이빗 링크로 제한하는 방법을 보여 줍니다.

Important

복사 작업에 허용되는 범위는 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

복사 작업에 허용되는 범위(미리 보기)

스토리지 계정의 AllowedCopyScope 속성은 데이터를 대상 계정에 복사할 수 있는 환경을 지정하는 데 사용됩니다. Azure Portal에서 복사 작업에 허용되는 범위(미리 보기) 구성 설정으로 표시됩니다. 이 속성은 기본적으로 설정되어 있지 않으며 명시적으로 설정할 때까지 값을 반환하지 않습니다. 세 가지 값은 다음과 같습니다.

  • (null)(기본값): 스토리지 계정에서 대상 계정으로 복사할 수 있습니다.
  • Microsoft Entra ID: 대상 계정과 동일한 Microsoft Entra 테넌트 내의 계정에서만 복사할 수 있습니다.
  • PrivateLink: 대상 계정과 동일한 가상 네트워크에 대한 프라이빗 링크가 있는 스토리지 계정에서만 복사할 수 있습니다.

이 설정은 Blob 복사URL에서 Blob 복사 작업에 적용됩니다. Blob 복사를 사용하는 도구의 예로는 AzCopy 및 Azure Storage Explorer가 있습니다.

복사 요청의 원본이 이 설정에 지정된 요구 사항을 충족하지 않으면 HTTP 상태 코드 403(사용할 수 없음)으로 요청이 실패합니다.

AllowedCopyScope 속성은 Azure Resource Manager 배포 모델을 사용하는 저장소 계정에 대해서만 지원됩니다. 어떤 스토리지 계정이 Azure Resource Manager 배포 모델을 사용하는지에 대한 자세한 내용은 스토리지 계정 유형을 참조하세요.

복사 작업의 원본 스토리지 계정 식별

스토리지 계정에 대해 AllowedCopyScope 값을 변경하기 전에 변경의 영향을 받는 사용자, 애플리케이션 또는 서비스를 식별합니다. 결과에 따라 설정을 원하는 모든 복사 원본을 포함하는 범위를 조정하거나 일부 원본 스토리지 계정에 대한 네트워크 또는 Microsoft Entra 구성을 조정해야 할 수 있습니다.

Azure Storage 로그는 복사 작업의 원본 및 대상을 포함하여 스토리지 계정에 대한 요청에 대한 Azure Monitor의 세부 정보를 캡처합니다. 자세한 내용은 Azure Storage 모니터링을 참조하세요. 로그를 사용하도록 설정하고 분석하여 대상 스토리지 계정에 대해 AllowedCopyScope 를 변경하여 영향을 받을 수 있는 복사 작업을 식별합니다.

Azure Portal에서 진단 설정 만들기

Azure Monitor를 사용하여 Azure Storage 데이터를 로깅하고 Azure Log Analytics를 사용하여 분석하려면 먼저 데이터를 로깅할 요청 유형과 스토리지 서비스를 나타내는 진단 설정을 만들어야 합니다. Azure Portal에서 진단 설정을 만들려면 다음 단계를 수행합니다.

  1. Azure Storage 계정이 포함된 구독에서 새 Log Analytics 작업 영역을 만들거나 기존 Log Analytics 작업 영역을 사용합니다. 스토리지 계정에 대한 로깅을 구성하면 Log Analytics 작업 영역에서 로그를 사용할 수 있습니다. 자세한 내용은 Azure Portal에서 Log Analytics 작업 영역 만들기를 참조하세요.

  2. Azure Portal의 스토리지 계정으로 이동합니다.

  3. 모니터링 섹션에서 진단 설정을 선택합니다.

  4. 요청을 로그할 Azure Storage 서비스를 선택합니다. 예를 들어 Blob Storage에 요청을 로그하려면 Blob을 선택합니다.

  5. 진단 설정 추가를 선택합니다.

  6. 진단 설정의 이름을 제공합니다.

  7. 범주로그 섹션에서 StorageRead, StorageWrite, StorageDelete를 선택하여 선택한 서비스에 대한 모든 데이터 요청을 로그합니다.

  8. 대상 세부 정보에서 Log Analytics 작업 영역으로 보내기를 선택합니다. 다음 이미지와 같이, 구독 및 이전에 만든 Log Analytics 작업 영역을 선택하고 저장을 선택합니다.

    Screenshot showing how to create a diagnostic setting for logging requests.

진단 설정을 만든 후에는 이 설정에 따라 스토리지 계정에 대한 요청이 로그됩니다. 자세한 내용은 Azure에서 리소스 로그 및 메트릭을 수집하기 위한 진단 설정 만들기를 참조하세요.

복사 요청에 대한 쿼리 로그

Azure Storage 로그에는 다른 원본에서 스토리지 계정으로 데이터를 복사하는 모든 요청이 포함됩니다. 로그 항목에는 대상 스토리지 계정의 이름 및 원본 개체의 URI와 복사본을 요청하는 클라이언트를 식별하는 데 도움이 되는 정보가 포함됩니다. Azure Monitor의 Azure Storage 로그에서 사용할 수 있는 필드에 대한 참조는 리소스 로그(미리 보기)를 참조하세요.

지난 7일 동안 수행된 Blob을 복사하는 요청에 대한 로그를 검색하려면 다음 단계를 수행합니다.

  1. Azure Portal의 스토리지 계정으로 이동합니다.

  2. 모니터링 섹션에서 로그를 선택합니다.

  3. 다음 쿼리를 새 로그 쿼리에 붙여넣고 실행합니다. 이 쿼리는 지정된 스토리지 계정에 데이터를 복사하기 위한 요청에서 가장 자주 참조되는 원본 개체를 표시합니다. 다음 예제에서는 <account-name> 자리 표시자 텍스트를 사용자 고유의 스토리지 계정 이름으로 바꿉니다.

    StorageBlobLogs
    | where OperationName has "CopyBlobSource" and TimeGenerated > ago(7d) and AccountName == "<account-name>"
    | summarize count() by Uri, CallerIpAddress, UserAgentHeader
    

쿼리 결과는 다음과 비슷합니다.

Screenshot showing how a Copy Blob Source log query might look.

URI는 복사되는 원본 개체의 전체 경로이며 스토리지 계정 이름, 컨테이너 이름 및 파일 이름을 포함합니다. URI 목록에서 특정 AllowedCopyScope 설정이 적용된 경우 복사 작업이 차단되는지 여부를 확인합니다.

이 쿼리를 기반으로 계정에 대한 Blob 복사 요청에 대해 알리도록 경고 규칙을 구성할 수도 있습니다. 자세한 내용은 Azure Monitor를 사용하여 로그 경고 만들기, 보기 및 관리를 참조하세요.

복사 작업에 허용되는 범위 제한 사항(미리 보기)

복사 요청의 소스를 특정 범위로 안전하게 제한할 수 있다고 확신하는 경우 스토리지 계정에 대한 AllowedCopyScope 속성을 해당 범위로 설정할 수 있습니다.

복사 작업에 허용되는 범위를 변경하기 위한 권한(미리 보기)

스토리지 계정에 대한 AllowedCopyScope 속성을 설정하려면 사용자에게 스토리지 계정을 만들고 관리할 수 있는 권한이 있어야 합니다. 이러한 권한을 제공하는 Azure RBAC(Azure 역할 기반 액세스 제어) 역할에는 Microsoft.Storage/storageAccounts/write 또는 Microsoft.Storage/storageAccounts/* 작업이 포함됩니다. 이 작업이 포함된 기본 제공 역할은 다음과 같습니다.

이러한 역할은 Microsoft Entra ID를 통해 스토리지 계정의 데이터에 대한 액세스 권한을 제공하지 않습니다. 그러나 계정 액세스 키에 대한 액세스 권한을 부여하는 Microsoft.Storage/storageAccounts/listkeys/action이 포함되어 있습니다. 이 권한이 있는 사용자는 계정 액세스 키를 사용하여 스토리지 계정의 모든 데이터에 액세스할 수 있습니다.

사용자가 스토리지 계정에 대해 복사 작업의 범위를 제한하도록 허용하려면 역할 할당 범위를 저장소 계정 수준 이상으로 지정해야 합니다. 역할 범위에 대한 자세한 내용은 Azure RBAC의 범위 이해를 참조하세요.

이러한 역할은 스토리지 계정을 만들거나 해당 속성을 업데이트하는 기능이 필요한 사용자에게만 제한적으로 할당해야 합니다. 최소 권한의 원칙을 사용하여 사용자에게 작업을 수행하는 데 필요한 최소 권한을 부여합니다. Azure RBAC를 사용하여 액세스를 관리하는 방법에 대한 자세한 내용은 Azure RBAC 모범 사례를 참조하세요.

참고 항목

클래식 구독 관리자 역할인 서비스 관리자 및 공동 관리자에는 Azure Resource Manager 소유자 역할에 해당하는 항목이 포함됩니다. 소유자 역할은 모든 작업을 포함하므로 이러한 관리 역할 중 하나가 있는 사용자는 스토리지 계정을 만들고 관리할 수도 있습니다. 자세한 내용은 Azure 역할, Microsoft Entra 역할 및 클래식 구독 관리자 역할을 참조하세요.

복사 작업에 허용되는 범위 구성(미리 보기)

필요한 권한이 있는 계정을 사용하여 PowerShell을 사용하거나 Azure CLI를 사용하여 Azure Portal에서 복사 작업에 허용되는 범위를 구성합니다.

Azure Portal에서 기존 스토리지 계정에 대해 복사 작업에 허용되는 범위를 구성하려면 다음 단계를 수행합니다.

  1. Azure Portal의 스토리지 계정으로 이동합니다.

  2. 설정에서 구성을 선택합니다.

  3. 복사 작업에 허용되는 범위(미리 보기)를 다음 중 하나로 설정합니다.

    • 모든 스토리지 계정에서
    • 동일한 Microsoft Entra 테넌트의 스토리지 계정에서
    • 프라이빗 엔드포인트가 있는 스토리지 계정에서 동일한 가상 네트워크로

    Screenshot showing how to disallow Shared Key access for a storage account.

  4. 저장을 선택합니다.

다음 단계