SAS(공유 액세스 서명)를 사용하여 Azure Storage 계정의 리소스에 대한 액세스를 위임할 수 있습니다. SAS 토큰에는 대상 리소스, 부여된 권한 및 액세스가 허용되는 간격이 포함됩니다. 모범 사례에서는 SAS가 손상된 경우를 대비해 SAS의 간격을 제한하는 것이 좋습니다. 스토리지 계정에 대한 SAS 만료 정책을 설정하여 사용자가 사용자 위임 SAS, 서비스 SAS 또는 계정 SAS를 만들 때 상한 만료 제한(최대 유효성 간격)을 권장하거나 적용할 수 있습니다.
공유 액세스 서명에 대한 자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여를 참조하세요.
중요
SAS(공유 액세스 서명)를 사용하는 시나리오의 경우 사용자 위임 SAS를 사용하는 것이 좋습니다. 사용자 위임 SAS는 계정 키 대신 Microsoft Entra 자격 증명으로 보호되어 뛰어난 보안 기능을 제공합니다.
SAS 만료 정책 정보
스토리지 계정에 대한 SAS 만료 정책을 구성할 수 있습니다. SAS 만료 정책은 사용자 위임 SAS, 서비스 SAS 또는 계정 SAS의 유효 기간 상한을 지정합니다. 상한은 일, 시간, 분 및 초의 결합된 수인 날짜/시간 값으로 지정됩니다.
SAS의 유효 간격은 서명된 만료 필드의 날짜/시간 값에서 서명된 시작 필드의 날짜/시간 값을 빼서 계산됩니다. 결과 값이 권장 상한보다 작거나 같으면 SAS가 SAS 만료 정책을 준수하는 것입니다.
스토리지 계정에 대해 SAS 만료 정책이 적용되는 경우 모든 SAS에 대해 서명된 시작 필드가 필요합니다. 서명된 시작 필드가 SAS에 포함되어 있지 않고 Azure Monitor로 로깅하기 위한 진단 설정을 구성한 경우 Azure Storage는 사용자가 서명된 시작 필드 값 없이 SAS를 사용할 때마다 로그의 SasExpiryStatus 속성에 메시지를 씁니다.
SAS 만료 정책을 구성한 후 권장 상한을 초과하는 간격으로 SAS를 만드는 모든 사용자에게 권장되는 최대 간격과 함께 경고가 표시됩니다.
SAS 만료 작업 정의
SAS 만료 정책은 다음 두 가지 작업을 지원합니다.
[기본값] 로그: 정책 외부 SAS를 사용하여 수행된 요청은 허용됩니다. Azure Monitor를 사용하여 로깅하기 위한 진단 설정을 구성한 경우 Azure Storage는 사용자가 권장 간격 후에 만료되는 SAS를 사용할 때마다 로그의 SasExpiryStatus 속성에 메시지를 씁니다. 이 메시지는 SAS의 유효 간격이 권장 간격을 초과했음을 나타냅니다. 이 옵션은 워크플로를 방해하지 않고 액세스를 모니터링하고 감사하는 데 권장됩니다.
차단: 정책 외부 SAS로 수행된 요청은 거부됩니다. 조직의 요구 사항에 따라 액세스 제어를 적용하기 위한 가장 엄격한 옵션입니다.
정책 외 SAS는 서명된 시작이 없거나 유효 간격이 상한보다 큰 SAS입니다.
먼저 현재 SAS 토큰 사용량을 검토하고 스토리지 계정에 대한 적절한 만료 정책을 설정합니다. 로그 작업부터 시작하여 정책 위반에 대한 진단 로그를 모니터링하는 것이 좋습니다. 차단 작업을 사용하여 SAS 토큰이 스토리지 계정에 설정된 만료 기간의 유효성을 통과한 경우 스토리지에 대한 액세스를 차단해야 합니다.
중요
저장된 액세스 정책을 사용하는 HDFS 엔드포인트 또는 서비스 수준 공유 액세스 서명을 통한 사용자 위임 SAS에는 SAS 만료 작업이 지원되지 않습니다.
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 만료 정책을 구성하려면 다음 단계를 따르세요.
Azure Portal의 스토리지 계정으로 이동합니다.
설정에서 구성을 선택합니다.
SAS(공유 액세스 서명) 만료 정책에 대한 설정을 찾아 사용으로 설정합니다.
참고
설정이 회색으로 표시된 경우 만료 정책을 설정 하기 전에 두 계정 액세스 키를 모두 회전해야 할 수 있습니다.
이 스토리지 계정의 리소스에 생성되는 새 공유 액세스 서명에 대해 원하는 최대 간격에 대해 SAS 만료 간격의 상한 아래에 시간 값을 지정합니다.
[선택 사항] 만료 작업을 정의합니다. 기본 로그 작업은 사용자를 방해하지 않고 추세를 감지하고 액세스를 조사하는 데 도움이 되며, 차단 작업을 사용하면 정책 외 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 만료 정책을 구성합니다.