Azure Storage의 데이터에 대한 액세스 권한 부여
스토리지 계정의 데이터에 액세스할 때마다 클라이언트 애플리케이션에서 HTTP/HTTPS를 통해 Azure Storage에 요청합니다. 기본적으로 Azure Storage의 모든 리소스는 보호되며, 보안 리소스에 대한 모든 요청에 권한이 부여되어야 합니다. 권한 부여는 클라이언트 애플리케이션dl 스토리지 계정의 특정 리소스에 액세스할 수 있는 적절한 권한을 갖도록 합니다.
Important
최적의 보안을 위해, 가능하면 관리 ID와 함께 Microsoft Entra ID를 사용하여 Blob, 큐 및 테이블 데이터에 대한 요청에 권한을 부여하는 것이 좋습니다. Microsoft Entra ID 및 관리 ID를 사용한 권한 부여는 공유 키 권한 부여보다 뛰어난 보안과 사용 편의성을 제공합니다. 관리 ID에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID란?을 참조하세요. .NET 애플리케이션에 대해 관리 ID를 활성화하고 사용하는 방법에 대한 예는 .NET을 사용하여 Azure 리소스에 대해 Azure 호스팅 앱 인증을 참조하세요.
온-프레미스 애플리케이션과 같이 Azure 외부에서 호스트되는 리소스의 경우 Azure Arc를 통해 관리 ID를 사용할 수 있습니다. 예를 들어 Azure Arc 지원 서버에서 실행되는 앱은 관리 ID를 사용하여 Azure 서비스에 연결할 수 있습니다. 자세히 알아보려면 Azure Arc 지원 서버를 사용하여 Azure 리소스에 대해 인증을 참조하세요.
SAS(공유 액세스 서명)가 사용되는 시나리오의 경우 사용자 위임 SAS를 사용하는 것이 좋습니다. 사용자 위임 SAS는 계정 키 대신 Microsoft Entra 자격 증명으로 보호됩니다. 공유 액세스 서명에 대해 알아보려면 공유 액세스 서명을 사용하여 데이터에 대한 제한된 액세스 권한 부여를 참조하세요. .NET을 사용하여 사용자 위임 SAS를 만들고 사용하는 방법에 대한 예는 .NET을 사용하여 Blob에 대한 사용자 위임 SAS 만들기를 참조하세요.
데이터 작업에 대한 권한 부여
다음 섹션에서는 각 Azure Storage 서비스에 대한 권한 부여 지원 및 권장 사항을 설명합니다.
다음 표에서는 Blob에 지원되는 권한 부여 옵션에 대한 정보를 제공합니다.
권한 부여 옵션 | 지침 | 추천 |
---|---|---|
Microsoft Entra ID | Microsoft Entra ID를 사용하여 Azure Storage 데이터에 대한 액세스 권한 부여 | Microsoft는 관리 ID와 함께 Microsoft Entra ID를 사용하여 Blob 리소스 요청에 권한을 부여하는 것이 좋습니다. |
공유 키(스토리지 계정 키) | 공유 키로 권한 부여 | 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않는 것이 좋습니다. |
SAS(공유 액세스 서명) | SAS(공유 액세스 서명) 사용 | SAS 권한 부여가 필요한 경우 Microsoft에서는 Blob 리소스에 대한 제한된 위임 액세스를 위해 사용자 위임 SAS를 사용하는 것이 좋습니다. SAS 권한 부여는 Blob Storage 및 Data Lake Storage에 대해 지원되며 엔드포인트 및 dfs 엔드포인트에 대한 호출에 blob 사용할 수 있습니다. |
익명 읽기 권한 | 개요: BLOB 데이터에 대한 익명 읽기 권한 수정 | Microsoft에서는 모든 스토리지 계정에 대해 익명 액세스를 사용하지 않도록 설정하는 것이 좋습니다. |
스토리지 로컬 사용자 | SFTP에만 지원됩니다. 자세한 내용은 SFTP 클라이언트의 Blob Storage에 대한 액세스 권한 부여를 참조하세요. | 옵션에 대한 지침을 참조하세요. |
다음 섹션에서는 Azure Storage에 대한 권한 부여 옵션을 간략하게 설명합니다.
공유 키 권한 부여: Blob, 파일, 큐 및 테이블에 적용됩니다. 공유 키를 사용하는 클라이언트는 스토리지 계정 액세스 키를 사용하여 서명된 모든 요청에 헤더를 전달합니다. 자세한 내용은 공유 키를 사용하여 권한 부여를 참조하세요.
스토리지 계정 액세스 키는 주의해서 사용해야 합니다. 액세스 키가 있는 사람은 누구나 스토리지 계정에 대한 요청에 권한을 부여할 수 있으며 모든 데이터에 효과적으로 액세스할 수 있습니다. 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않는 것이 좋습니다. 공유 키 권한 부여가 허용되지 않으면 클라이언트에서 Microsoft Entra ID 또는 사용자 위임 SAS를 사용하여 해당 스토리지 계정의 데이터에 대한 권한을 요청에 부여해야 합니다. 자세한 내용은 Azure Storage 계정에 대한 공유 키 권한 부여 방지를 참조하세요.
Blob, 파일, 큐 및 테이블에 대한 공유 액세스 서명. SAS(공유 액세스 서명)는 서명된 URL을 통해 스토리지 계정의 리소스에 대해 제한적으로 위임된 권한을 제공합니다. 서명된 URL은 리소스에 부여된 권한과 서명이 유효한 간격을 지정합니다. 서비스 SAS 또는 계정 SAS는 계정 키로 서명되지만 사용자 위임 SAS는 Microsoft Entra 자격 증명으로 서명되고 Blob에만 적용됩니다. 자세한 내용은 SAS(공유 액세스 서명) 사용을 참조하세요.
Microsoft Entra 통합: Blob, 큐 및 테이블 리소스에 적용됩니다. Microsoft는 최적의 보안과 사용 편의성을 위해 가능한 경우 데이터 요청에 권한을 부여하기 위해 관리 ID와 함께 Microsoft Entra 자격 증명을 사용하는 것이 좋습니다. Microsoft Entra 통합에 대한 자세한 내용은 Blob, 큐 또는 테이블 리소스에 대한 문서를 참조하세요.
Azure RBAC(역할 기반 액세스 제어)를 사용하여 스토리지 계정의 Blob, 큐 및 테이블 리소스에 대한 보안 주체의 권한을 관리할 수 있습니다. 또한 Azure ABAC(특성 기반 액세스 제어)를 사용하여 조건을 Blob 리소스에 대한 Azure 역할 할당에 추가할 수 있습니다.
RBAC에 대한 자세한 내용은 Azure RBAC(Azure 역할 기반 액세스 제어)란?을 참조하세요.
ABAC에 대한 자세한 내용은 Azure ABAC(Azure 특성 기반 액세스 제어)란?을 참조하세요. ABAC 기능 상태에 대해 알아보려면 Azure Storage의 ABAC 조건 기능 상태를 참조하세요.
Microsoft Entra Domain Services 인증: Azure Files에 적용됩니다. Azure Files는 Microsoft Entra Domain Services를 통해 SMB(서버 메시지 블록)에 대한 ID 기반 권한 부여를 지원합니다. Azure RBAC를 사용하여 스토리지 계정의 Azure Files 리소스에 대한 클라이언트의 액세스를 세부적으로 제어할 수 있습니다. 도메인 서비스를 사용한 Azure Files 인증에 대한 자세한 내용은 SMB 액세스를 위한 Azure Files ID 기반 인증 옵션 개요를 참조하세요.
온-프레미스 Active Directory Domain Services(AD DS 또는 온-프레미스 AD DS) 인증: Azure Files에 적용됩니다. Azure Files는 AD DS를 통해 SMB에 대한 ID 기반 권한 부여를 지원합니다. AD DS 환경은 온-프레미스 머신 또는 Azure VM에서 호스팅될 수 있습니다. 파일에 대한 SMB 액세스는 온-프레미스 또는 Azure의 도메인 조인 머신에서 AD DS 자격 증명을 사용하여 지원됩니다. 공유 수준 액세스 제어를 위한 Azure RBAC와 디렉터리/파일 수준 사용 권한 적용을 위한 NTFS DACL의 조합을 사용할 수 있습니다. 도메인 서비스를 사용하는 Azure Files 인증에 대한 자세한 내용은 개요를 참조하세요.
익명 읽기 권한: Blob 리소스에 적용됩니다. 이 방법은 권장되지 않습니다. 익명 액세스가 구성되면 클라이언트가 권한 부여 없이 Blob 데이터를 읽을 수 있습니다. 모든 스토리지 계정에 대해 익명 액세스를 사용하지 않도록 설정하는 것이 좋습니다. 자세한 내용은 개요: Blob 데이터에 대한 익명 읽기 권한 문제 수정을 참조하세요.
스토리지 로컬 사용자: SFTP가 포함된 blob 또는 SMB가 포함된 파일에 적용됩니다. 스토리지 로컬 사용자는 권한 부여를 위해 컨테이너 수준 권한을 지원합니다. 스토리지 로컬 사용자를 SFTP와 함께 사용할 수 있는 방법에 대한 자세한 내용 SFTP(SSH 파일 전송 프로토콜)를 사용하여 Azure Blob Storage에 연결을 참조하세요.
액세스 키 보호
스토리지 계정 액세스 키는 스토리지 계정 데이터에 대한 모든 권한과 SAS 토큰 생성 기능을 제공합니다. 항상 액세스 키를 보호해야 합니다. Azure Key Vault를 사용하여 키를 안전하게 관리하고 회전합니다. 공유 키에 대한 액세스는 사용자에게 스토리지 계정의 데이터에 대한 모든 권한을 부여합니다. 공유 키에 대한 액세스는 신중하게 제한되고 모니터링되어야 합니다. Microsoft Entra ID 기반 권한 부여를 사용할 수 없는 시나리오에서는 액세스 범위가 제한된 사용자 위임 SAS 토큰을 사용합니다. 액세스 키를 하드 코딩하거나 다른 사용자가 액세스할 수 있는 일반 텍스트로 저장하지 않도록 합니다. 키가 손상되었다고 생각되면 키를 교체하세요.
Important
사용자가 공유 키를 사용하여 스토리지 계정의 데이터에 액세스하지 못하도록 하려면 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않을 수 있습니다. 최소한의 권한이 필요한 데이터에 대한 세분화된 액세스는 보안 모범 사례로 권장됩니다. OAuth를 지원하는 시나리오에는 관리 ID를 사용하는 Microsoft Entra ID 기반 권한 부여를 사용해야 합니다. SMB를 통한 Azure Files에는 Kerberos 또는 SMTP를 사용해야 합니다. REST를 통한 Azure Files 경우에는 SAS 토큰을 사용할 수 있습니다. 의도하지 않은 사용을 방지하기 위해 필요하지 않은 경우 공유 키 액세스를 사용하지 않도록 설정해야 합니다. 자세한 내용은 Azure Storage 계정에 대한 공유 키 권한 부여 방지를 참조하세요.
Microsoft Entra 조건부 액세스 정책을 사용하여 Azure Storage 계정을 보호하려면 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않아야 합니다.
공유 키 액세스를 사용하지 않도록 설정했음에도 진단 로그에 공유 키 권한 부여가 보고된 경우, 이는 신뢰할 수 있는 액세스가 스토리지에 액세스하는 데 사용되고 있음을 나타냅니다. 자세한 내용은 Microsoft Entra 테넌트에 등록된 리소스에 대한 신뢰할 수 있는 액세스를 참조하세요.
다음 단계
- Microsoft Entra ID를 사용하여 Blob, 큐 또는 테이블 리소스에 대한 액세스 권한을 부여합니다.
- 공유 키로 권한 부여
- SAS(공유 액세스 서명)를 사용하여 Azure Storage 리소스에 대한 제한된 액세스 권한 부여