403 ADLS Gen2에서 고정 비트가 사용하도록 설정된 경우 액세스 거부 권한 부여 오류
이 문서는 고정 비트를 이해하고 ADLS(Azure Data Lake Storage) Gen2에서 구성하고 문제를 가져올 때 이 설정을 검사 방법에 대한 정보를 제공합니다.
ADLS Gen2의 고정 비트는 무엇인가요?
ADLS Gen2 사용자는 종종 다른 사용자에 대한 권한을 관리해야 하며, 이를 수행하는 한 가지 방법은 ACL(액세스 제어 목록)을 사용하는 것입니다. ACL은 권한 부여 실패를 일으킬 수 있는 고정 비트라는 특정 설정을 사용하는 POSIX와 유사한 액세스 제어 시스템입니다. 권한 제어 모드 및 고정 비트에 대한 자세한 내용은 Azure Data Lake Storage Gen2 ACL(액세스 제어 목록)을 참조하세요.
고정 비트는 ADLS Gen2 스토리지 계정의 ACL 설정에 필요하지 않은 고급 기능입니다. 대신 마스크 기능을 사용하여 명명된 사용자, 명명된 그룹 및 소유 그룹에 대한 최대 권한을 제한할 수 있습니다. 이는 고정 비트와 유사하게 작동하며 Azure Portal 쉽게 구성됩니다.
403 액세스 거부 권한 부여 오류
다음과 같은 경우를 생각해볼 수 있습니다.
- ADLS Gen2 스토리지 계정에는 컨테이너 라는 컨테이너와 folder/child-folder라는 폴더 경로가 있습니다.
- ACL을 권한 부여 방법으로 사용합니다.
- ADLS Gen2 스토리지 계정의 ACL 설정에서는 루트 디렉터리 및 폴더에 대한 실행(X) 권한과 자식폴더에 대한 쓰기 및 실행(WX) 권한으로 구성됩니다.
- 고정 비트는 자식 폴더에서 사용하도록 설정됩니다.
- 새 파일(예: test.txt)을 만들거나 ADLS Gen2 Storage 계정 폴더 경로 container/folder/child-folder/에 업로드하려고 합니다.
이 시나리오에서는 403 액세스 거부 권한 부여 오류가 발생합니다.
이 오류는 다음 두 가지 이유로 발생합니다.
- 폴더 경로에 액세스할 수 있는 충분한 권한이 없습니다.
- 충분한 권한이 있지만 고정 비트를 사용하도록 설정하면 이 폴더 경로의 소유자가 되지 않습니다.
고정 비트로 인해 403 액세스 거부 오류가 발생하는지 확인
폴더 및 상위 폴더의 ACL 설정을 확인한 다음 ACL 권한과 관련된 일반적인 시나리오와 비교합니다. 사용 권한으로 충분하면 403 오류가 고정 비트로 인해 발생할 수 있습니다.
Azure CLI를 사용하여 고정 비트 설정 확인
REST API 호출, PowerShell 명령 및 Azure CLI와 같이 이 설정을 검사 방법은 여러 가지가 있습니다. 추가 소프트웨어를 설치할 필요가 없고 명령을 이해하기 쉽기 때문에 Azure CLI 옵션을 사용하는 것이 좋습니다.
Azure CLI를 사용하여 고정 비트 설정을 확인하려면 다음 단계를 수행합니다.
계정으로 Azure Portal 로그인합니다. 이 계정에 ADLS Gen2 스토리지 계정에 대한 Storage Blob 데이터 소유자 역할 할당이 있는지 확인합니다.
Azure Portal Cloud Shell 선택합니다.
다음 명령을 사용하여 컨테이너/폴더 디렉터리의 ACL 및 고정 비트 설정을 가져옵니다.
az storage fs access show -p folder -f container --account-name account --auth-mode login
컨테이너 수준 ACL 및 고정 비트 설정인 루트 디렉터리의 ACL 및 고정 비트 설정을 검사 다음 명령을 사용합니다.
az storage fs access show -p / -f container --account-name account --auth-mode login
샘플 출력은 다음과 같습니다.
응답 JSON 본문에서 에 집중합니다
permissions
. 일반적으로 추가 "+" 기호가 있는 9비트 또는 10비트를 포함합니다. 이러한 문자에 대한 자세한 내용은 사용자 및 ID를 참조하세요.이전 예제에서는 모든 사용자 권한이 사용하도록 설정되어 있고 고정 비트가 사용하도록 설정되어 있음을 나타냅니다. 이 권한 표기법을 읽는 방법에 대한 자세한 내용은 기존 Unix 권한 표기법을 참조하세요.
아홉 번째 문자에는 "-", "x", "t", "T"의 네 가지 가능한 값이 있습니다. 이 문자의 값이 "t" 또는 "T"인 경우 고정 비트가 사용하도록 설정되어 있음을 의미합니다. "t"는 고정 비트가 활성화된 "x"이고 "T"는 고정 비트가 활성화된 "-"입니다.
"rwxrwxrwt"는 다음으로 설명할 수 있습니다.
- r,w 및 x 권한은 소유자에 대해 사용하도록 설정됩니다.
- r,w 및 x 권한은 소유 그룹에 대해 사용하도록 설정됩니다.
- r,w 및 x 권한은 다른 사용자에 대해 사용하도록 설정되며 고정 비트가 사용하도록 설정됩니다.
이를 더 잘 이해하려면 "rwxr-xr-T"의 또 다른 예는 다음과 같습니다.
- r,w 및 x 권한은 소유자에 대해 사용하도록 설정됩니다.
- r 및 x 권한은 소유 그룹에 대해 사용하도록 설정됩니다.
- 다른 사용자에 대해 r 권한만 사용하도록 설정되고 고정 비트가 사용하도록 설정됩니다.
사용 권한에 대한 짧은 양식에 따르면 짧은 양식 사용 권한은 세 글자("r"를 4로, "w"를 2로, "x "as 1)의 모든 그룹에 대해 계산됩니다. 따라서 "rw-rwx--x"는 4+2+0, 4+2+1, 0+0+1, 671과 같습니다. 이 계산 규칙에 따라 처음에 네 번째 문자만 추가하면 됩니다. 고정 비트가 사용하도록 설정된 경우 1로 설정합니다. 고정 비트가 비활성화된 경우 0으로 설정합니다.
다음은 몇 가지 예입니다.
- rwxrwxrwt => 1777
- rwxr-xr-T => 1754
- rw-rwx--x => 0671
고정 비트 설정 사용 안 함/사용
고정 비트 설정을 사용하지 않도록 설정/사용하려면 사용 권한을 예상 값으로 설정합니다.
이 설정을 수정하는 데 사용되는 Azure 계정에는 대상 ADLS Gen2 스토리지 계정에 대한 Storage Blob 데이터 소유자 역할이 있어야 합니다. 고정 비트 설정을 수정하는 방법에는 여러 가지가 있습니다. 지원되는 SDK는 다음과 같습니다.
SDK | 지원되는 버전 | 추가 정보 |
---|---|---|
REST API | 2019-12-12 이상 API 버전 | Path |
Az PowerShell 모듈 | 5.6.0 이상 버전 | PowerShell을 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
Azure CLI | 2.38.0 이상 버전 | Azure CLI를 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
.NET SDK | 12.14.0 이상 버전 | .NET을 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
Java SDK | 12.11.0 이상 버전 | Java를 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
Python SDK | 12.8.0 이상 버전 | Python을 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
JavaScript SDK | 12.11.0-beta.1 이상 버전 | Node.js JavaScript SDK를 사용하여 Azure Data Lake Storage Gen2 ACL 관리 |
HDFS CLI | 3.3.3 이상 버전 | Data Lake Storage Gen2 및 Apache Hadoop 3.3.3에서 HDFS CLI 사용 - HDFS 권한 가이드 |
다음은 Azure CLI를 사용하여 고정 비트 설정을 사용하지 않도록 설정/사용하도록 설정하는 예제입니다.
대상 ADLS Gen2 스토리지 계정에 Storage Blob 데이터 소유자 역할 할당이 있는 계정으로 Azure Portal 로그인합니다.
Azure Portal Cloud Shell 선택합니다.
컨테이너/폴더 디렉터리의 ACL 및 고정 비트 설정을 "rwxrwxrwt" 권한으로 설정하고 고정 비트를 사용하도록 설정하려면 다음 명령을 사용합니다.
az storage fs access set --permissions rwxrwxrwt -p folder -f container --account-name account --auth-mode login
컨테이너 수준 ACL 및 고정 비트 설정인 루트 디렉터리의 설정을 수정하려면 다음 명령을 사용합니다.
az storage fs access set --permissions rwxrwxrwt -p / -f container --account-name account --auth-mode login
이전 명령의 는
{permission notation}
긴 표기법과 짧은 형식 표기법을 모두 수락할 수 있습니다. 즉, 다음 명령도 정규화됩니다.az storage fs access set --permissions 1776 -p folder -f container --account-name account --auth-mode login
다음은 출력 예제입니다.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.