공유 액세스 서명에 대한 만료 정책 구성

SAS(공유 액세스 서명)를 사용하여 Azure Storage 계정의 리소스에 대한 액세스를 위임할 수 있습니다. SAS 토큰에는 대상 리소스, 부여된 권한 및 액세스가 허용되는 간격이 포함됩니다. 모범 사례에서는 SAS가 손상된 경우를 대비해 SAS의 간격을 제한하는 것이 좋습니다. 스토리지 계정에 대한 SAS 만료 정책을 설정하면 사용자가 서비스 SAS 또는 계정 SAS를 만들 때 권장되는 만료 상한을 제공할 수 있습니다.

공유 액세스 서명에 대한 자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하세요.

SAS 만료 정책 정보

스토리지 계정에 대한 SAS 만료 정책을 구성할 수 있습니다. SAS 만료 정책은 서비스 SAS 또는 계정 SAS의 서명된 만료 필드에 대해 권장되는 상한을 지정합니다. 권장 상한은 일, 시간, 분 및 초를 결합한 날짜/시간 값으로 지정됩니다.

SAS의 유효 간격은 서명된 만료 필드의 날짜/시간 값에서 서명된 시작 필드의 날짜/시간 값을 빼서 계산됩니다. 결과 값이 권장 상한보다 작거나 같으면 SAS가 SAS 만료 정책을 준수하는 것입니다.

SAS 만료 정책을 구성한 후 권장 상한을 초과하는 간격으로 서비스 SAS 또는 계정 SAS를 만드는 사용자에게 경고가 표시됩니다.

SAS 만료 정책은 사용자가 정책에서 권장하는 제한을 초과하는 만료를 사용하여 SAS를 만드는 것을 방지하지 않습니다. 사용자가 정책을 위반하는 SAS를 만들면 권장되는 최대 간격과 함께 경고가 표시됩니다. Azure Monitor를 사용하여 로깅하기 위한 진단 설정을 구성한 경우 Azure Storage는 사용자가 권장 간격 후에 만료되는 SAS를 사용할 때마다 로그의 SasExpiryStatus 속성에 메시지를 씁니다. 이 메시지는 SAS의 유효 간격이 권장 간격을 초과했음을 나타냅니다.

스토리지 계정에 대해 SAS 만료 정책이 적용되는 경우 모든 SAS에 대해 서명된 시작 필드가 필요합니다. 서명된 시작 필드가 SAS에 포함되어 있지 않고 Azure Monitor로 로깅하기 위한 진단 설정을 구성한 경우 Azure Storage는 사용자가 서명된 시작 필드 값 없이 SAS를 사용할 때마다 로그의 SasExpiryStatus 속성에 메시지를 씁니다.

SAS 만료 정책 구성

스토리지 계정에 대한 SAS 만료 정책을 구성하면 해당 정책은 계정 키로 서명된 각 유형의 SAS에 적용됩니다. 계정 키로 서명된 공유 액세스 서명 유형은 서비스 SAS 및 계정 SAS입니다.

먼저 계정 액세스 키를 순환해야 하나요?

SAS 만료 정책을 구성하기 전에 각 계정 액세스 키를 한 번 이상 교체해야 할 수 있습니다. 스토리지 계정의 keyCreationTime 속성에 계정 액세스 키(key1 및 key2) 중 하나에 대해 null 값이 있는 경우 이를 순환해야 합니다. keyCreationTime 속성이 null인지 확인하려면 스토리지 계정에 대한 계정 액세스 키의 생성 시간 가져오기를 참조하세요. SAS 만료 정책을 구성하려고 하고 키를 먼저 순환해야 하는 경우 작업이 실패합니다.

SAS 만료 정책을 구성하는 방법

Azure Portal, PowerShell 또는 Azure CLI를 사용하여 SAS 만료 정책을 구성할 수 있습니다.

Azure Portal에서 SAS 만료 정책을 구성하려면 다음 단계를 수행합니다.

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

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

  3. SAS(공유 액세스 서명) 만료 간격에 대한 권장 상한 허용 설정을 찾아서 사용으로 설정합니다.

    참고 항목

    설정이 회색으로 표시되고 아래 이미지와 같은 메시지가 표시되는 경우 SAS 만료 간격 권장 상한 값을 설정하려면 먼저 두 계정 액세스 키를 모두 순환해야 합니다.

    Screenshot showing the option to configure a SAS expiration policy is grayed out in the Azure portal.

  4. 이 스토리지 계정의 리소스에 생성된 새 공유 액세스 서명에 대해 권장되는 간격의 시간 값을 SAS 만료 간격의 권장 상한 아래에 지정합니다.

    Screenshot showing how to configure a SAS expiration policy in the Azure portal.

  5. 저장을 선택하여 변경 내용을 저장합니다.

정책 위반에 대한 로그 쿼리

SAS 만료 정책에서 권장하는 것보다 더 긴 간격으로 유효한 SAS의 사용을 기록하려면 먼저 로그를 Azure Log Analytics 작업 영역에 보내는 진단 설정을 만듭니다. 자세한 내용은 Azure Log Analytics에 로그 보내기를 참조하세요.

그런 다음 Azure Monitor 로그 쿼리를 사용하여 정책 위반 여부를 모니터링합니다. Log Analytics 작업 영역에서 새 쿼리를 만들고, 다음 쿼리 텍스트를 추가한 다음, 실행을 누릅니다.

StorageBlobLogs 
| where SasExpiryStatus startswith "Policy violated"
| summarize count() by AccountName, SasExpiryStatus

기본 제공 정책을 사용하여 규정 준수 모니터링

Azure Policy로 스토리지 계정을 모니터링하여 구독의 스토리지 계정이 SAS 만료 정책을 구성하는지 확인할 수 있습니다. Azure Storage에는 계정에 이 설정이 구성되었는지 확인하는 기본 제공 정책이 있습니다. 기본 제공 정책에 대한 자세한 정보는 기본 제공 정책 정의 목록에서 스토리지 계정에 구성된 SAS(공유 액세스 서명) 정책이 있어야 함을 참조하세요.

리소스 범위에 대한 기본 제공 정책 할당

Azure Portal의 적절한 범위에 기본 제공 정책을 할당하려면 다음 단계를 따릅니다.

  1. Azure Portal에서 Policy를 검색하여 Azure Policy 대시보드를 표시합니다.

  2. 작성 섹션에서 할당을 선택합니다.

  3. 정책 할당을 선택합니다.

  4. 정책 할당 페이지의 기본 탭에 있는 범위 섹션에서 정책 할당 범위를 지정합니다. 구독 및 선택적 리소스 그룹을 선택하려면 기타 단추를 선택합니다.

  5. 정책 정의 필드에서 기타 단추를 선택하고 검색 필드에 스토리지 계정 키를 입력합니다. 스토리지 계정 키는 만료되지 않아야 함이라는 정책 정의를 선택합니다.

    Screenshot showing how to select the built-in policy to monitor validity intervals for shared access signatures for your storage accounts

  6. 검토 + 만들기를 선택하여 정책 정의를 지정된 범위에 할당합니다.

    Screenshot showing how to create the policy assignment

키 만료 정책 준수 모니터링

키 만료 정책을 준수하는지 스토리지 계정을 모니터링하려면 다음 단계를 따릅니다.

  1. Azure Policy 대시보드에서 정책 할당에 지정한 범위에 대한 기본 제공 정책 정의를 찾습니다. 검색 상자에서 Storage accounts should have shared access signature (SAS) policies configured를 검색하여 기본 제공 정책을 필터링할 수 있습니다.

  2. 원하는 범위의 정책 이름을 선택합니다.

  3. 기본 제공 정책의 정책 할당 페이지에서 규정 준수 보기를 선택합니다. 정책 요구 사항을 충족하지 않는 지정된 구독 및 리소스 그룹의 모든 스토리지 계정은 규정 준수 보고서에 나타납니다.

    Screenshot showing how to view the compliance report for the SAS expiration built-in policy

스토리지 계정을 규정 준수로 불러오려면 SAS 만료 정책 구성에 설명된 바와 같이 해당 계정에 대한 SAS 만료 정책을 구성합니다.

참고 항목