다음을 통해 공유


자습서: Azure Portal을 사용하여 Blob에 대한 액세스를 제한하는 역할 할당 조건 추가

대부분의 경우 역할 할당은 Azure 리소스에 필요한 권한을 부여합니다. 그러나 경우에 따라 역할 할당 조건을 추가하여 보다 세부적인 액세스 제어를 제공할 수 있습니다.

이 튜토리얼에서는 다음을 배우게 됩니다:

  • 역할 할당에 조건 추가
  • Blob 인덱스 태그를 기준으로 Blob에 대한 접근을 제한합니다.

중요합니다

Azure ABAC(Azure 특성 기반 액세스 제어)는 표준 및 프리미엄 스토리지 계정 성능 계층 모두에서 request, resource, environmentprincipal 특성을 사용하여 Azure Blob Storage, Azure Data Lake Storage Gen2 및 Azure 큐에 대한 액세스만 제어하기 위한 GA(일반 공급)입니다. 현재 목록 Blob에는 요청 특성이 포함되고 계층 구조 네임스페이스에 대한 스냅샷 요청 특성은 미리 보기로 제공됩니다. Azure Storage용 ABAC의 전체 기능 상태 정보는 Azure Storage의 조건 기능 상태를 참조하세요.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

필수 조건

역할 할당 조건을 추가하거나 편집하기 위한 사전 요구 사항은 조건 및 사전 요구 사항을 참조하세요.

조건

이 자습서에서는 특정 태그를 사용하여 Blob에 대한 액세스를 제한합니다. 예를 들어 Chandra가 태그 Project=Cascade가 있는 파일만 읽을 수 있도록 역할 할당에 조건을 추가합니다.

조건이 있는 역할 할당 다이어그램

Chandra가 태그 Project=Cascade없이 Blob을 읽으려고 하면 액세스가 허용되지 않습니다.

Project=Cascade 태그를 사용하여 Blob에 대한 읽기 액세스를 보여 주는 다이어그램

코드에서 조건의 모양은 다음과 같습니다.

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
        AND NOT
        SubOperationMatches{'Blob.List'})
    )
    OR
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
    )
)

1단계: 사용자 만들기

  1. 구독 소유자로 Azure Portal에 로그인합니다.

  2. Microsoft Entra ID를 선택합니다.

  3. 사용자를 만들거나 기존 사용자를 찾습니다. 이 자습서에서는 Chandra를 예제로 사용합니다.

2단계: 스토리지 설정

  1. Blob 인덱스 태그 기능과 호환되는 스토리지 계정을 만듭니다. 자세한 내용은 Blob 인덱스 태그를 사용하여 Azure Blob 데이터 관리 및 찾기를 참조하세요.

  2. 스토리지 계정 내에 새 컨테이너를 만들고 익명 액세스 수준을 Private(익명 액세스 없음)으로 설정합니다.

  3. 컨테이너에서 업로드 를 선택하여 Blob 업로드 창을 엽니다.

  4. 업로드할 텍스트 파일을 찾습니다.

  5. 고급을 선택하여 창을 확장합니다.

  6. Blob 인덱스 태그 섹션에서 텍스트 파일에 다음 Blob 인덱스 태그를 추가합니다.

    Blob 인덱스 태그 섹션이 표시되지 않고 구독을 등록한 경우 변경 내용이 전파될 때까지 몇 분 정도 기다려야 할 수 있습니다. 자세한 내용은 Blob 인덱스 태그를 사용하여 Azure Blob Storage에서 데이터를 관리하고 찾는 방법을 참조하세요.

    비고

    Blob은 임의의 사용자 정의 키- 메타데이터를 저장하는 기능을 지원합니다. 메타데이터는 BLOB 인덱스 태그와 유사하지만 조건으로 BLOB 인덱스 태그를 사용해야 합니다.

    열쇠 가치
    프로젝트 폭포

블로그 인덱스 태그 섹션이 있는 Blob 업로드 창을 보여 주는 스크린샷

  1. 업로드 단추를 선택하여 파일을 업로드합니다.

  2. 두 번째 텍스트 파일을 업로드합니다.

  3. 두 번째 텍스트 파일에 다음 Blob 인덱스 태그를 추가합니다.

    열쇠 가치
    프로젝트 빵 굽는 사람

3단계: 스토리지 블롭 데이터 역할 할당

  1. 리소스 그룹을 엽니다.

  2. 액세스 제어(IAM) 를 선택합니다.

  3. 역할 할당 탭을 선택하여 이 범위에서 역할 할당을 확인합니다.

  4. 추가>역할 할당 추가를 선택합니다. 역할 할당 추가 페이지가 열립니다.

역할 할당 추가 > 메뉴의 스크린샷

  1. 역할 탭에서 Storage Blob 데이터 판독기 역할을 선택합니다.

역할 탭이 있는 역할 할당 추가 페이지의 스크린샷

  1. 구성원 탭에서 이전에 만든 사용자를 선택합니다.

멤버 탭이 있는 역할 할당 추가 페이지의 스크린샷

  1. (선택 사항) 설명 상자에 Project=Cascade 태그가 있는 Blob에 대한 읽기 권한을 입력합니다.

  2. 다음을 선택합니다.

4단계: 조건 추가

  1. 조건(선택 사항) 탭에서 조건 추가를 선택합니다. 역할 할당 조건 추가 페이지가 나타납니다.

새 조건에 대한 역할 할당 조건 추가 페이지의 스크린샷

  1. 작업 추가 섹션에서 작업 추가를 선택합니다.

    작업 선택 창이 나타납니다. 이 창은 조건의 대상이 될 역할 할당을 기반으로 필터링된 데이터 작업 목록입니다. Blob 읽기 옆에 있는 확인란을 선택한 다음, 선택을 선택합니다.

작업이 선택된 작업 선택 창의 스크린샷.

  1. 빌드 식 섹션에서 식 추가를 선택합니다.

    수식 섹션이 확장됩니다.

  2. 다음 식 설정을 지정합니다.

    설정 가치
    특성 원본 리소스
    특성 Blob 인덱스 태그 [키의 값]
    열쇠 프로젝트
    오퍼레이터 StringEqualsIgnoreCase
    가치 폭포

Blob 인덱스 태그에 대한 빌드 식 섹션의 스크린샷

  1. 편집기 유형까지 위로 스크롤하고 코드를 선택합니다.

    조건은 코드로 표시됩니다. 이 코드 편집기에서 조건을 변경할 수 있습니다. 시각적 편집기로 돌아가려면 Visual을 선택합니다.

코드 편집기에서 표시되는 조건의 스크린샷

  1. 저장을 선택하여 조건을 추가하고 역할 할당 추가 페이지로 돌아갑니다.

  2. 다음을 선택합니다.

  3. 검토 + 할당 탭에서 검토 + 할당을 선택하여 조건에 따라 역할을 할당합니다.

    몇 분이 지나면 선택한 범위에서 보안 주체에 역할이 할당됩니다.

역할을 할당한 후의 역할 할당 목록 스크린샷

5단계: 읽기 권한자 역할 할당

  • 이전 단계를 반복하여 리소스 그룹 범위에서 이전에 만든 사용자에게 읽기 권한자 역할을 할당합니다.

    비고

    일반적으로 읽기 권한자 역할을 할당할 필요가 없습니다. 그러나 이 작업은 Azure Portal을 사용하여 조건을 테스트할 수 있도록 수행됩니다.

6단계: 조건 테스트

  1. 새 창에서 Azure Portal에 로그인합니다.

  2. 이전에 만든 사용자로 로그인합니다.

  3. 만든 스토리지 계정 및 컨테이너를 엽니다.

  4. 인증 방법이 Access 키가 아닌 Microsoft Entra 사용자 계정으로 설정되어 있는지 확인합니다.

테스트 파일이 있는 스토리지 컨테이너의 스크린샷.

  1. Baker 텍스트 파일을 선택합니다.

    Blob을 보거나 다운로드할 수 없어야 하며 권한 부여 실패 메시지가 표시되어야 합니다.

  2. Cascade 텍스트 파일을 선택합니다.

    Blob을 보고 다운로드할 수 있어야 합니다.

7단계: 리소스 정리

  1. 추가한 역할 할당을 제거합니다.

  2. 만든 테스트 스토리지 계정을 삭제합니다.

  3. 만든 사용자를 삭제합니다.

다음 단계