스토리지 계정 및 보안

Azure Storage 계정은 빠르고 일관된 응답 시간을 요구하거나 초당 IOP(입출력 작업 수)가 많은 워크로드에 이상적입니다. 스토리지 계정에는 다음을 포함하는 모든 Azure Storage 데이터 개체가 포함됩니다.

  • Blob
  • 파일 공유
  • 테이블
  • 디스크

스토리지 계정은 HTTP 또는 HTTPS 어디서나 액세스할 수 있는 데이터에 고유한 네임스페이스를 제공합니다.

다양한 기능을 지원하는 다양한 유형의 스토리지 계정에 대한 자세한 내용은 스토리지 계정 유형을 참조하세요.

Azure Storage 계정이 애플리케이션 워크로드에 대한 보안을 강화하는 방법을 이해하려면 다음 문서를 참조하세요.

다음 섹션에는 Azure Storage 계정 및 보안과 관련된 디자인 고려 사항, 구성 검사 목록 및 권장 구성 옵션이 포함됩니다.

디자인 고려 사항

Azure 스토리지 계정에는 다음과 같은 디자인 고려 사항이 포함됩니다.

  • 스토리지 계정 이름은 3자에서 24자 사이여야 하고 숫자 및 소문자만 포함할 수 있습니다.
  • 현재 SLA 사양의 경우 스토리지 계정에 대한 SLA를 참조합니다.
  • 특정 시나리오에 가장 적합한 중복 옵션을 결정하려면 Azure Storage 중복성으로 이동합니다.
  • 스토리지 계정 이름은 Azure 내에서 고유해야 합니다. 두 개의 스토리지 계정이 같은 이름을 사용할 수 없습니다.

검사 목록

보안을 염두에 두고 Azure Storage 계정을 구성했나요?

  • 모든 스토리지 계정에 대해 Azure Defender를 사용하도록 설정합니다.
  • Blob 데이터에 대한 일시 삭제를 활성화합니다.
  • Microsoft Entra ID를 사용하여 Blob 데이터에 대한 액세스 권한을 부여합니다.
  • Azure RBAC를 통해 Microsoft Entra 보안 주체에 권한을 할당할 때 최소 권한 원칙을 고려합니다.
  • 관리 ID를 사용하여 Blob 및 큐 데이터에 액세스합니다.
  • Blob 버전 관리 또는 변경할 수 없는 Blob을 사용하여 중요 비즈니스용 데이터를 저장합니다.
  • 스토리지 계정에 대한 기본 인터넷 액세스를 제한합니다.
  • 방화벽 규칙을 사용합니다.
  • 특정 네트워크에 대한 네트워크 액세스를 제한합니다.
  • 신뢰할 수 있는 Microsoft 서비스에서 스토리지 계정에 액세스하도록 허용합니다.
  • 모든 스토리지 계정에서 보안 전송 필요 옵션을 사용하도록 설정합니다.
  • SAS(공유 액세스 서명) 토큰을 HTTPS 연결로만 제한합니다.
  • 공유 키 권한 부여를 사용하여 스토리지 계정에 액세스하지 않도록 방지합니다.
  • 계정 키를 주기적으로 다시 생성합니다.
  • 클라이언트에게 발급하는 SAS에 대한 해지 계획을 만들고 현재 위치에 둡니다.
  • 임시 SAS, 서비스 SAS 또는 계정 SAS에서 짧은 만료 시간을 사용합니다.

구성 권장 사항

Azure Storage 계정을 구성할 때 다음 권장 사항을 고려합니다.

권장 Description
모든 스토리지 계정에 대해 Azure Defender를 사용하도록 설정합니다. Azure Storage용 Azure Defender는 스토리지 계정에 액세스하거나 악용하려는 비정상적이고 잠재적으로 유해한 시도를 감지하는 추가 보안 인텔리전스 계층을 제공합니다. 활동에서 변칙이 발생하면 Azure Security Center에서 보안 경고가 트리거됩니다. 또한 경고는 의심스러운 활동의 세부 정보와 함께 위협을 조사하고 수정하는 방법에 대한 권장 사항을 이메일을 통해 구독 관리자에게 전송됩니다. 자세한 내용은 Azure Storage용 Azure Defender 구성을 참조하세요.
Blob 데이터에 대한 일시 삭제를 활성화합니다. Azure Storage Blob에 대한 일시 삭제를 통해 Blob 데이터를 삭제한 후 복구할 수 있습니다.
Microsoft Entra ID를 사용하여 Blob 데이터에 대한 액세스 권한을 부여합니다. Microsoft Entra ID는 Blob Storage에 대한 요청에 권한을 부여하기 위해 공유 키보다 뛰어난 보안 및 사용 편의성을 제공합니다. 가능한 경우 Blob 및 큐 애플리케이션에서 Microsoft Entra 권한 부여를 사용하여 공유 키에 내재된 잠재적인 보안 취약성을 최소화하는 것이 좋습니다. 자세한 내용은 Microsoft Entra ID를 사용하여 Azure Blob 및 큐에 대한 액세스 권한 부여를 참조하세요.
Azure RBAC를 통해 Microsoft Entra 보안 주체에 권한을 할당할 때 최소 권한 원칙을 고려합니다. 사용자, 그룹 또는 애플리케이션에 역할을 할당할 때 작업을 완료하는 데 필요한 권한만 해당 보안 주체에게 부여합니다. 리소스에 대한 액세스를 제한하면 의도하지 않은 데이터의 악의적인 오용을 방지할 수 있습니다.
관리 ID를 사용하여 Blob 및 큐 데이터에 액세스합니다. Azure Blob 및 Queue Storage는 Azure 리소스에 대한 관리 ID를 사용하여 Microsoft Entra 인증을 지원합니다. Azure 리소스에 대한 관리 ID는 Azure VM(가상 머신), 함수 앱, 가상 머신 확장 집합 및 기타 서비스에서 실행되는 애플리케이션의 Microsoft Entra 자격 증명을 사용하여 Blob 및 큐 데이터에 대한 액세스 권한을 부여할 수 있습니다. azure 리소스에 대한 관리 ID를 Microsoft Entra 인증과 함께 사용하면 클라우드에서 실행되는 애플리케이션과 만료되는 서비스 주체와 관련된 문제를 통해 자격 증명을 저장하지 않도록 방지할 수 있습니다. 자세한 내용은 Azure 리소스의 관리 ID를 사용하여 Blob 및 큐 데이터에 대한 액세스 권한 부여를 참조하세요.
Blob 버전 관리 또는 변경할 수 없는 Blob을 사용하여 중요 비즈니스용 데이터를 저장합니다. Blob 버전 관리를 사용하여 이전 버전의 개체를 유지 관리하거나, 법적 보존 및 시간 기준 보존 정책을 사용하여 Blob 데이터를 WORM(Write Once, Read Many) 상태로 저장하는 것이 좋습니다. 변경할 수 없는 Blob은 읽을 수 있지만 보존 간격 중에는 수정하거나 삭제할 수 없습니다. 자세한 내용은 변경이 불가능한 스토리지로 중요 비즈니스용 Blob 데이터 저장을 참조하세요.
스토리지 계정에 대한 기본 인터넷 액세스를 제한합니다. 기본적으로 스토리지 계정에 대한 네트워크 액세스는 제한되지 않으며 인터넷에서 들어오는 모든 트래픽에 열려 있습니다. 가능할 때마다 특정 Azure Virtual Network에 스토리지 계정에 대한 액세스 권한을 부여하거나, 프라이빗 엔드포인트를 사용하여 VNet(가상 네트워크)의 클라이언트가 Private Link를 통해 데이터에 안전하게 액세스할 수 있도록 허용해야 합니다. 자세한 내용은 Azure Storage에 프라이빗 엔드포인트 사용을 참조하세요. 인터넷을 통해 액세스할 수 있어야 하는 스토리지 계정에 대한 예외를 만들 수 있습니다.
방화벽 규칙을 사용합니다. 지정된 IP 주소, IP 범위 또는 Azure VNet(Virtual Network)의 서브넷 목록에서 시작되는 요청에 대한 스토리지 계정에 대한 액세스를 제한하는 방화벽 규칙을 구성합니다. 방화벽 규칙 구성에 대한 자세한 내용은 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
특정 네트워크에 대한 네트워크 액세스를 제한합니다. 액세스가 필요한 클라이언트를 호스트하는 네트워크에 대한 네트워크 액세스를 제한하면 기본 제공 방화벽 및 가상 네트워크 기능을 사용하거나 프라이빗 엔드포인트를 사용하여 네트워크 공격에 리소스가 노출되는 것을 줄일 수 있습니다.
신뢰할 수 있는 Microsoft 서비스에서 스토리지 계정에 액세스하도록 허용합니다. 스토리지 계정에 대해 방화벽 규칙을 켜면 기본적으로 Azure VNet(Virtual Network) 내에서 작동하는 서비스 또는 허용되는 공용 IP 주소에서 요청하지 않는 한, 들어오는 데이터 요청이 차단됩니다. 차단되는 요청에는 다른 Azure 서비스, Azure Portal, 로깅 및 메트릭 서비스 등의 요청이 포함됩니다. 신뢰할 수 있는 Microsoft 서비스에서 스토리지 계정에 액세스할 수 있도록 허용하는 예외를 추가하여 다른 Azure 서비스에서의 요청을 허용할 수 있습니다. 신뢰할 수 있는 Microsoft 서비스에 대한 예외를 추가하는 방법에 대한 자세한 내용은 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
모든 스토리지 계정에서 보안 전송 필요 옵션을 사용하도록 설정합니다. 보안 전송 필요 옵션을 사용하도록 설정하는 경우 스토리지 계정에 대한 모든 요청은 보안 연결을 통해야 합니다. HTTP를 통한 모든 요청은 실패합니다. 자세한 내용은 Azure Storage에서 보안 전송 필요를 참조하세요.
SAS(공유 액세스 서명) 토큰을 HTTPS 연결로만 제한합니다. 클라이언트가 SAS 토큰을 사용하여 Blob 데이터에 액세스할 때 HTTPS를 요구하면 도청 위험을 최소화하는 데 도움이 됩니다. 자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하세요.
공유 키 권한 부여를 사용하여 스토리지 계정에 액세스하지 않도록 방지합니다. Microsoft Entra ID를 사용하여 Azure Storage에 대한 요청에 권한을 부여하고 공유 키 권한 부여를 방지하는 것이 좋습니다. 공유 키 권한 부여가 필요한 시나리오의 경우 항상 공유 키 배포보다 SAS 토큰을 사용하는 것이 좋습니다.
계정 키를 주기적으로 다시 생성합니다. 정기적으로 계정 키를 회전하면 악의적인 행위자에게 데이터를 노출하는 위험을 줄일 수 있습니다.
클라이언트에게 발급하는 SAS에 대한 해지 계획을 만들고 현재 위치에 둡니다. SAS가 손상된 경우 해당 SAS를 즉시 철회하는 것이 좋습니다. 사용자 위임 SAS를 해지하려면 사용자 위임 키를 해지하여 해당 키와 관련된 모든 서명을 신속하게 무효화합니다. 저장된 액세스 정책과 연결된 서비스 SAS를 철회하려면 저장된 액세스 정책을 삭제하거나, 정책의 이름을 바꾸거나, 만료 시간을 과거 시간으로 변경할 수 있습니다.
임시 SAS, 서비스 SAS 또는 계정 SAS에서 짧은 만료 시간을 사용합니다. SAS가 손상될 경우 단기적으로만 유효합니다. 이 방법은 저장된 액세스 정책을 참조할 수 없는 경우에 특히 중요합니다. 또한 짧은 만료 시간은 업로드할 수 있는 시간을 제한하여 Blob에 쓸 수 있는 데이터의 양을 제한할 수 있습니다. 클라이언트는 만료일 이전에 SAS를 갱신하여 SAS를 제공하는 서비스를 사용할 수 없을 때 다시 시도할 수 있는 시간적 여유를 확보해야 합니다.

다음 단계