RcloneView로 Azure Blob Storage SAS 토큰 및 인증 오류 해결하기
Azure Blob Storage 인증은 여러 방식과 미묘한 설정 오류로 인해 까다로울 수 있습니다. RcloneView는 설정 과정을 단순화하고 401/403 오류를 빠르게 해결하도록 도와줍니다.
Azure Blob Storage는 강력하고 널리 사용되는 객체 스토리지 서비스이지만, rclone에서 연결하려면 인증을 정확하게 설정해야 합니다. 액세스 키, SAS 토큰, 또는 서비스 주체(Service Principal) 중 무엇을 사용하든, 설정값 하나만 잘못되어도 워크플로 전체를 막아버리는 알기 힘든 오류 메시지가 발생할 수 있습니다.
이 가이드는 rclone에서 자주 발생하는 Azure Blob Storage 인증 오류를 다루고, 사용 가능한 다양한 인증 방식을 설명하며, RcloneView의 시각적 리모트 설정을 사용하여 각 문제를 해결하는 방법을 안내합니다.

모든 클라우드를 한 곳에서 관리하고 동기화하세요
RcloneView는 rclone의 크로스플랫폼 GUI입니다. 폴더를 비교하고, 파일을 전송·동기화하고, 깔끔한 시각적 인터페이스로 멀티 클라우드 워크플로를 자동화하세요.
- 원클릭 작업: 복사 · 동기화 · 비교
- 안정적인 자동화를 위한 스케줄러와 작업 이력
- Google Drive, OneDrive, Dropbox, S3, WebDAV, SFTP 등 지원
핵심 기능은 무료. Plus로 자동화 기능 이용 가능.
Azure 인증 방식 개요
Azure Blob Storage는 rclone을 통해 여러 인증 방식을 지원합니다. 현재 어떤 방식을 사용하고 있는지 파악하는 것이 문제 해결의 첫 단계입니다.
- 스토리지 계정 액세스 키: 전체 스토리지 계정에 대한 전체 액세스 권한을 부여하는 공유 키입니다. 간단하지만 강력하므로 루트 비밀번호처럼 취급해야 합니다.
- SAS 토큰(공유 액세스 서명): 특정 권한, 시간 제한, 선택적 IP 제한과 함께 제한된 액세스를 부여하는 범위 지정 토큰입니다. 외부 공유 시 액세스 키보다 더 안전합니다.
- 서비스 주체(Azure AD): Azure AD 애플리케이션을 사용하는 OAuth 기반 인증입니다. 역할 기반 액세스 제어가 필요한 엔터프라이즈 환경에 적합합니다.
- 관리 ID(Managed Identity): Azure 내부(예: Azure VM)에서 실행할 때 사용 가능합니다. Azure의 ID 서비스를 자동으로 사용합니다.
각 방식마다 고유한 설정 매개변수와 실패 유형이 있습니다. 아래 섹션에서는 각 방식에서 가장 흔히 발생하는 오류를 다룹니다.
만료된 SAS 토큰 (401 Unauthorized)
가장 흔한 SAS 토큰 오류는 만료입니다. SAS 토큰에는 시작 시간과 만료 시간이 있습니다. 토큰이 만료되면 모든 요청이 401 Unauthorized 또는 403 AuthenticationFailed 오류를 반환합니다.
증상:
HTTP 401: Server failed to authenticate the request.
AuthenticationFailed: Signed expiry time must be after signed start time.
해결 방법:
- Azure Portal을 열고 해당 스토리지 계정으로 이동합니다.
- 보안 + 네트워킹 섹션의 공유 액세스 서명으로 이동합니다.
- 넉넉한 기간으로 새 만료 날짜를 설정합니다(예: 개인 용도라면 1년, 공유 액세스라면 더 짧게).
- 새 SAS 토큰을 생성합니다.
- RcloneView에서 Azure Blob 리모트를 편집하고 이전 SAS 토큰을 새 토큰으로 교체합니다.
- 연결을 테스트하여 액세스가 복구되었는지 확인합니다.
잘못된 SAS 토큰 권한 (403 Forbidden)
SAS 토큰이 유효하더라도 원하는 작업에 필요한 권한이 부족할 수 있습니다. 예를 들어, 읽기 권한만 있는 토큰은 rclone이 업로드, 삭제, 또는 컨테이너 목록 조회를 시도할 때 실패합니다.
증상:
HTTP 403: This request is not authorized to perform this operation.
AuthorizationPermissionMismatch
rclone 작업에 필요한 권한:
| 작업 | 필요한 SAS 권한 |
|---|---|
| 컨테이너 목록 조회 | List |
| 파일 탐색 | Read, List |
| 파일 업로드 | Write, Create |
| 파일 삭제 | Delete |
| 전체 동기화 | Read, Write, Delete, List, Create |
해결 방법: Azure Portal에서 필요한 모든 권한을 포함한 새 SAS 토큰을 생성하세요. rclone 동기화 작업의 경우 일반적으로 Read, Write, Delete, List, Add, Create 권한이 필요합니다. 확실하지 않다면 개인 스토리지 계정에서는 모든 권한을 활성화하세요.
IP 제한으로 인한 액세스 차단 (403 Forbidden)
SAS 토큰은 특정 IP 주소 또는 범위로 제한될 수 있습니다. 사무실 네트워크에서 토큰을 생성했지만 집에서 사용하려고 하면 IP 제한으로 인해 차단됩니다.
증상:
HTTP 403: This request is not authorized to perform this operation using this source IP.
해결 방법:
- IP 제한 없이 새 SAS 토큰을 생성하거나,
- SAS 토큰 설정에서 허용 범위에 현재 IP 주소를 추가하거나,
- IP 제한을 받지 않는 스토리지 계정 액세스 키를 대신 사용합니다.
동적 IP를 사용하는 경우(대부분의 가정용 인터넷), 정기적으로 업데이트할 수 없다면 IP 제한이 있는 SAS 토큰 사용을 피하세요.
액세스 키 오류 (401 Unauthorized)
스토리지 계정 액세스 키를 사용하는 경우, 오류는 대개 키가 잘못되었거나 계정 이름이 올바르지 않다는 의미입니다.
흔한 원인:
- 키를 복사할 때 공백이나 줄바꿈 문자가 함께 복사됨.
- Key1이 교체되어 현재는 Key2가 활성화된 상태에서 Key1을 사용함.
- 스토리지 계정 이름 오타.
- 키 대신 연결 문자열(connection string)을 사용함.
RcloneView에서 해결하는 방법:
- Azure Portal에서 해당 스토리지 계정으로 이동하여 액세스 키를 엽니다.
- Key1 또는 Key2 옆의 표시를 클릭한 후 키를 신중하게 복사합니다.
- RcloneView에서 Azure Blob 리모트를 편집하고
key필드에 키를 붙여넣습니다. account필드가 스토리지 계정 이름과 정확히 일치하는지(대소문자 구분) 다시 확인합니다.- 연결을 테스트합니다.
서비스 주체 설정 오류
서비스 주체 인증에는 테넌트 ID, 클라이언트 ID, 클라이언트 시크릿 세 가지 값이 필요합니다. 이 중 하나라도 누락되거나 잘못되면 인증에 실패합니다.
증상:
HTTP 401: AADSTS7000215: Invalid client secret provided.
HTTP 401: AADSTS70001: Application with identifier 'xxx' was not found.
해결 방법:
- Azure Portal에서 Azure Active Directory > 앱 등록으로 이동합니다.
- 해당 애플리케이션을 찾아 애플리케이션(클라이언트) ID를 확인합니다.
- 개요 페이지에서 디렉터리(테넌트) ID를 확인합니다.
- **인증서 및 비밀번호(Certificates & secrets)**에서 기존 클라이언트 시크릿이 만료되었다면 새로 생성합니다.
- RcloneView에서 리모트 설정을 올바른 tenant, client_id, client_secret 값으로 업데이트합니다.
- 서비스 주체에 스토리지 계정에 대한 Storage Blob Data Contributor 역할이 할당되어 있는지 확인합니다.
올바른 SAS 토큰을 단계별로 생성하기
SAS 토큰 문제를 애초에 방지하려면 다음 절차를 따르세요.
- Azure Portal을 열고 해당 스토리지 계정으로 이동합니다.
- 왼쪽 메뉴에서 공유 액세스 서명을 클릭합니다.
- 허용된 서비스에서 Blob을 선택합니다.
- 허용된 리소스 유형에서 컨테이너와 개체를 선택합니다.
- 허용된 권한에서 필요한 모든 권한을 선택합니다(Read, Write, Delete, List, Add, Create).
- 시작 날짜를 오늘로, 만료 날짜를 적절한 미래 날짜로 설정합니다.
- IP 제한이 필요하지 않다면 허용된 IP 주소를 비워둡니다.
- 허용된 프로토콜을 HTTPS만으로 설정합니다.
- SAS 및 연결 문자열 생성을 클릭합니다.
- SAS 토큰(
?sv=로 시작)을 복사합니다. rclone 설정에 붙여넣을 때는 앞의?를 제거하세요.