공유 액세스 서명에 대한 만료 정책 구성
SAS(공유 액세스 서명)를 사용하여 Azure Storage 계정의 리소스에 대한 액세스를 위임할 수 있습니다. SAS 토큰에는 대상 리소스, 부여된 권한 및 액세스가 허용되는 간격이 포함됩니다. 모범 사례에서는 SAS가 손상된 경우를 대비해 SAS의 간격을 제한하는 것이 좋습니다. 스토리지 계정에 대한 SAS 만료 정책을 설정하여 사용자가 사용자 위임 SAS, 서비스 SAS 또는 계정 SAS를 만들 때 권장되는 상한 만료 제한을 제공할 수 있습니다.
공유 액세스 서명에 대한 자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하세요.
Important
SAS(공유 액세스 서명)를 사용하는 시나리오의 경우 사용자 위임 SAS를 사용하는 것이 좋습니다. 사용자 위임 SAS는 계정 키 대신 Microsoft Entra 자격 증명으로 보호되어 뛰어난 보안 기능을 제공합니다.
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)에 적용됩니다. 서비스 SAS 및 계정 SAS 유형은 계정 키로 서명되고 사용자 위임 SAS는 Microsoft Entra 자격 증명으로 서명됩니다.
참고 항목
사용자 위임 SAS는 Microsoft Entra 자격 증명을 사용하여 가져온 사용자 위임 키로 서명됩니다. 사용자 위임 키에는 SAS 만료 정책의 적용을 받지 않는 자체 만료 간격이 있습니다. SAS 만료 정책은 서명된 사용자 위임 키가 아닌 사용자 위임 SAS에만 적용됩니다.
사용자 위임 SAS는 SAS 만료 정책에 관계없이 최대 만료 간격이 7일입니다. SAS 만료 정책이 7일보다 큰 값으로 설정된 경우 정책은 사용자 위임 SAS에 영향을 주지 않습니다. 사용자 위임 키가 만료되면 해당 키로 서명된 모든 사용자 위임 SAS가 유효하지 않으며 SAS를 사용하려고 하면 오류가 반환됩니다.
먼저 계정 액세스 키를 순환해야 하나요?
이 섹션은 계정 키로 서명된 서비스 SAS 및 계정 SAS 유형에 적용됩니다. SAS 만료 정책을 구성하기 전에 각 계정 액세스 키를 한 번 이상 교체해야 할 수 있습니다. 스토리지 계정의 keyCreationTime 속성에 계정 액세스 키(key1 및 key2) 중 하나에 대해 null 값이 있는 경우 이를 순환해야 합니다. keyCreationTime 속성이 null인지 확인하려면 스토리지 계정에 대한 계정 액세스 키의 생성 시간 가져오기를 참조하세요. SAS 만료 정책을 구성하려고 하고 키를 먼저 순환해야 하는 경우 작업이 실패합니다.
SAS 만료 정책을 구성하는 방법
Azure Portal, PowerShell 또는 Azure CLI를 사용하여 SAS 만료 정책을 구성할 수 있습니다.
Azure Portal에서 SAS 만료 정책을 구성하려면 다음 단계를 수행합니다.
정책 위반에 대한 로그 쿼리
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의 적절한 범위에 기본 제공 정책을 할당하려면 다음 단계를 따릅니다.
Azure Portal에서 Policy를 검색하여 Azure Policy 대시보드를 표시합니다.
작성 섹션에서 할당을 선택합니다.
정책 할당을 선택합니다.
정책 할당 페이지의 기본 탭에 있는 범위 섹션에서 정책 할당 범위를 지정합니다. 구독 및 선택적 리소스 그룹을 선택하려면 기타 단추를 선택합니다.
정책 정의 필드에서 기타 단추를 선택하고 검색 필드에 스토리지 계정 키를 입력합니다. 스토리지 계정 키는 만료되지 않아야 함이라는 정책 정의를 선택합니다.
검토 + 만들기를 선택하여 정책 정의를 지정된 범위에 할당합니다.
키 만료 정책 준수 모니터링
키 만료 정책을 준수하는지 스토리지 계정을 모니터링하려면 다음 단계를 따릅니다.
Azure Policy 대시보드에서 정책 할당에 지정한 범위에 대한 기본 제공 정책 정의를 찾습니다. 검색 상자에서
Storage accounts should have shared access signature (SAS) policies configured
를 검색하여 기본 제공 정책을 필터링할 수 있습니다.원하는 범위의 정책 이름을 선택합니다.
기본 제공 정책의 정책 할당 페이지에서 규정 준수 보기를 선택합니다. 정책 요구 사항을 충족하지 않는 지정된 구독 및 리소스 그룹의 모든 스토리지 계정은 규정 준수 보고서에 나타납니다.
스토리지 계정을 규정 준수로 불러오려면 SAS 만료 정책 구성에 설명된 바와 같이 해당 계정에 대한 SAS 만료 정책을 구성합니다.