행 수준 보안(RLS)을 사용하여 데이터 세트 액세스 제한 - Amazon QuickSight

행 수준 보안(RLS)을 사용하여 데이터 세트 액세스 제한

Amazon QuickSight의 Enterprise Edition에서 행 수준 보안(RLS)을 구성하여 데이터 액세스를 제한할 수 있습니다. 데이터 세트를 공유하기 전이나 이후에 이를 수행할 수 있습니다. 공유한 사용자만이 데이터를 볼 수 있습니다. 열 수준 보안을 추가하여 액세스를 추가로 제어할 수 있습니다.

이를 수행하려면 이름이 UserName, GroupName인 하나의 열을 보유한 쿼리 또는 파일을 생성하거나 둘 모두를 생성합니다. 이를 해당 사용자 또는 그룹에 대해 규칙을 추가하는 것으로 간주할 수도 있습니다. 그 다음에는 액세스 권한을 부여하거나 제한하고자 하는 각 필드의 쿼리 또는 파일에 열을 추가할 수 있습니다. 추가한 각 사용자 또는 그룹 이름에서 각 필드의 값을 추가합니다. NULL(값이 없음)을 사용하면 모든 값을 나타낼 수 있습니다. 데이터 세트 규칙의 예시를 보려면 행 수준 보안(RLS)에 대한 데이터 세트 규칙 생성 단원을 참조하십시오.

데이터 세트 규칙을 적용하려면 데이터 세트에 대한 권한 데이터 세트로서의 규칙을 추가합니다. 그 다음에는 데이터 세트 규칙에 따라 액세스를 명시적으로 허용할지 또는 거부할지 여부를 선택합니다. 액세스를 허용하는 것으로 기본 설정되어 있습니다. 액세스를 허용 및 거부할 때 이러한 점에 유의하십시오.

  • 권한 데이터 세트에는 중복 값이 포함되어서는 안 됩니다. 규칙을 적용하는 방법을 평가할 때 중복 값이 무시됩니다.

  • 액세스 권한 부여 규칙을 사용하는 경우, 지정된 각 사용자 또는 그룹은 데이터 세트 규칙의 필드 값과 일치하는 행만 볼 수 있습니다.

  • 사용자 또는 그룹에게 규칙을 추가하고 기타 모든 열에는 값이 없는 상태(NULL)로 두면 사용자 또는 그룹에게 모든 데이터에 대한 액세스 권한을 허용하는 것입니다.

  • 사용자 또는 그룹에게 규칙을 추가하지 않는 경우 그 사용자 또는 그룹은 데이터를 전혀 볼 수 없습니다.

  • 액세스 거부 규칙을 사용하는 경우 지정된 각 사용자 또는 그룹은 데이터 세트 규칙의 필드 값과 일치하지 않는 행만 볼 수 있습니다.

  • 사용자 또는 그룹에게 규칙을 추가하고 기타 모든 열에는 값이 없는 상태(NULL)로 두면 사용자 또는 그룹에게 모든 데이터에 대한 액세스 권한을 거부하는 것입니다.

  • 사용자 또는 그룹에게 규칙을 추가하지 않는 경우 그 사용자에게는 아무 것도 거부되지 않습니다. 바꿔 말하면 모든 데이터를 볼 수 있습니다.

  • 사용자별로 적용되는 전체 규칙 레코드 세트는 999개를 초과하지 않아야 합니다. 이는 사용자 이름에 직접 할당된 총 규칙 수와 그룹 이름을 통해 사용자에게 할당된 모든 규칙에 적용됩니다.

Amazon QuickSight는 공백을 리터럴 값으로 취급합니다. 제한하려는 필드에 공백이 있으면 그 행에는 데이터 세트 규칙이 적용됩니다. Amazon QuickSight는 NULL과 공백(빈 문자열 “”) 모두 "값이 없음"으로 간주합니다. NULL은 빈 필드 값입니다.

데이터 세트의 데이터 원본에 따라 권한 테이블에 액세스할 직접 쿼리를 구성할 수 있습니다. 안에 공백이 있는 용어는 따옴표로 구분해서는 안 됩니다. 직접 쿼리를 사용하는 경우 원래 데이터 원본에서 쿼리를 손쉽게 변경할 수 있습니다.

또는 텍스트 파일 또는 스프레드시트에서 데이터 세트 규칙을 업로드할 수 있습니다. CSV(쉼표로 분리된 값) 파일을 사용하는 경우에는 해당 줄에 공백이 포함되어서는 안 됩니다. 안에 공백이 있는 용어는 따옴표로 구분해야 합니다. 파일 기반의 데이터 세트 규칙을 사용하는 경우 데이터 세트의 권한 설정에 있는 기존 규칙을 덮어쓰는 방식으로 변경 사항을 적용해야 합니다.

제한된 데이터 세트는 Your Data Sets(내 데이터 세트) 화면에서 RESTRICTED(제한)라는 단어와 함께 표시됩니다.

행 수준 보안은 텍스트 데이터를 포함하는 필드에 대해서만 작동합니다(string, char, varchar 등). 날짜 또는 숫자 필드에 대해서는 작동하지 않습니다.

행 수준 보안(RLS)에 대한 데이터 세트 규칙 생성

다음 절차를 사용하여 권한 파일 또는 쿼리를 생성하여 데이터 세트 규칙으로 사용합니다.

  1. 행 수준 보안(RLS)을 위해 데이터 세트 규칙(권한)을 포함한 파일 또는 쿼리를 생성합니다.

    필드의 순서는 중요하지 않습니다. 하지만 모든 필드는 대소문자를 구분합니다. 필드 이름 및 값과 정확히 일치해야 합니다.

    구조는 다음 중 하나와 같은 모습이어야 합니다. 사용자 또는 그룹을 식별하는 하나 이상의 필드가 있어야 합니다. 둘 다 포함할 수 있지만 한 개만 필요하며 한 번에 하나만 사용됩니다. 사용자 또는 그룹에 사용하는 필드에는 사용자가 선택한 이름을 지정할 수 있습니다.

    참고

    그룹을 지정하는 경우 Amazon QuickSight 그룹 또는 Microsoft AD 그룹만 사용하십시오.

    다음 예는 그룹이 있는 테이블을 보여줍니다.

    그룹 이름 리전 Segment
    EMEA 영업 팀 EMEA 엔터프라이즈,SMB,스타트업
    미국 영업 팀 미국 엔터프라이즈
    미국 영업 팀 미국 SMB, 스타트업
    미국 영업 팀 미국 Startup
    APAC 영업 팀 APAC 엔터프라이즈,SMB
    Corporate-Reporting
    APAC 영업 팀 APAC 엔터프라이즈,스타트업

    다음 예는 사용자 이름이 있는 테이블을 보여줍니다.

    UserName 리전 Segment
    AlejandroRosalez 유럽 중동 아프리카 엔터프라이즈,SMB,스타트업
    MarthaRivera US 엔터프라이즈
    NikhilJayashankar US SMB,스타트업
    PauloSantos US Startup
    SaanviSarkar 아시아 태평양 엔터프라이즈,SMB
    sales-tps@example.com
    ZhangWei 아시아 태평양 엔터프라이즈,스타트업

    .csv 파일을 사용하는 것을 선호하는 경우 구조는 다음 중 하나와 같은 모습이어야 합니다.

    UserName,Region,Segment AlejandroRosalez,EMEA,"Enterprise,SMB,Startup" MarthaRivera,US,Enterprise NikhilJayashankars,US,SMB PauloSantos,US,Startup SaanviSarkar,APAC,"SMB,Startup" sales-tps@example.com,"","" ZhangWei,APAC-Sales,"Enterprise,Startup"
    GroupName,Region,Segment EMEA-Sales,EMEA,"Enterprise,SMB,Startup" US-Sales,US,Enterprise US-Sales,US,SMB US-Sales,US,Startup APAC-Sales,APAC,"SMB,Startup" Corporate-Reporting,"","" APAC-Sales,APAC,"Enterprise,Startup"

    다음은 SQL의 예입니다.

    /* for users*/ select User as UserName, Region, Segment from tps-permissions; /* for groups*/ select Group as GroupName, Region, Segment from tps-permissions;
  2. 데이터 세트 규칙에 대한 데이터 세트를 생성합니다. 쉽게 찾을 수 있도록 Permissions-Sales-Pipeline과 같은 의미 있는 이름을 지정하십시오.

행 수준 보안(RLS) 생성

파일 또는 쿼리를 권한에 대한 규칙이 포함된 데이터 세트로 사용하여 행 수준 보안(RLS)을 적용하려면 다음 절차를 따르십시오.

  1. 새로운 데이터 세트로 규칙을 추가했음을 확인합니다. 추가했는데 데이터 세트 목록 아래에 보이지 않는 경우 화면을 새로 고치십시오.

  2. [Your Data Sets] 페이지에서 데이터 세트를 선택한 후 [Permissions]를 선택합니다.

  3. 데이터 세트 목록에서 권한 데이터 세트를 선택합니다.

    권한 데이터 세트가 화면에 표시되지 않는 경우 데이터 세트로 돌아가서 페이지를 새로 고치십시오.

  4. 권한 정책을 선택합니다. 선택은 두 가지입니다.

    • 데이터 세트 규칙을 사용하여 데이터 액세스를 허용하는 경우 [Grant access to data set]를 선택합니다.

    • 데이터 세트 규칙을 사용하여 데이터 액세스를 방지하는 경우 [Deny access to data set]를 선택합니다.

    각 데이터 세트에는 하나의 활성 권한 데이터 세트만이 있습니다. 보조 권한 데이터 세트를 추가하려는 경우 기존 세트를 덮어씁니다.

    중요

    일부 제한은 열 수준 보안으로 작업할 때 NULL 및 빈 문자열 값에 적용됩니다.

    제약 필드에 있는 데이터 세트에 NULL 값 또는 빈 문자열(“”)이 있는 경우 제한이 적용될 때 해당 행은 무시됩니다.

    권한 데이터 세트 내부에서 NULL 값 및 빈 문자열은 동일하게 취급됩니다. 자세한 정보는 다음 표를 참조하십시오.

    사용자 이름, 그룹 이름, 리전, 세그먼트 규칙 액세스를 허용할 경우의 결과 액세스를 거부할 경우의 결과
    AlejandroRosalez, EMEA 영업 팀, EMEA, "엔터프라이즈, SMB, 스타트업" 모든 EMEA 엔터프라이즈, SMB 및 스타트업 표시 EMEA 엔터프라이즈, SMB 및 스타트업 표시되지 않음
    sales-tps@example.com,Corporate-Reporting,"","" 모든 행 표시 행이 표시되지 않음
    사용자 또는 그룹에 항목 없음 행이 표시되지 않음 모든 행 표시

    데이터 세트 규칙에 의해 데이터 세트가 제한되지 않는 경우를 제외하고 대시보드를 공유하는 모든 사용자가 안에 있는 데이터를 볼 수 있습니다.

  5. 변경 사항을 저장하려면 [Apply data set]를 선택합니다. 그런 다음 [Confirm: saving data set rules] 화면에서 [Apply data set]를 선택합니다. 권한 변경 사항은 기존 사용자에 대해 즉시 적용됩니다.

  6. (선택 사항) 권한을 제거하려면 데이터 세트에서 데이터 세트 규칙을 제거합니다.

    데이터 세트 규칙을 확실히 제거해야 합니다. 그런 다음 권한 데이터 세트를 선택하고 [Remove data set]를 선택합니다.

    권한을 덮어쓰려면 새 권한 데이터 세트를 선택하고 이를 적용합니다. 동일한 데이터 세트 이름을 재사용할 수 있지만 [Permissions] 화면에서 새 권한을 적용하여 이 권한을 활성화해야 합니다. SQL 쿼리가 동적으로 업데이트되기 때문에 Amazon QuickSight 외부에서 관리할 수 있습니다. 이 경우 직접 쿼리가 자동적으로 새로 고침되면 권한이 새로 고침됩니다.

대상 데이터 세트에서 파일 기반 권한 데이터 세트를 제거하기 전에 이를 삭제한 경우, 제한된 사용자는 데이터 세트에 액세스할 수 없습니다. 데이터 세트가 이 상태인 경우 [RESTRICTED]로 그대로 표시됩니다. 데이터 세트에 대한 [Permissions]를 볼 때 선택한 데이터 세트 규칙이 없음을 확인할 수 있습니다. 이를 수정하려면 새 데이터 세트 규칙을 지정할 수 있습니다. 동일한 이름을 가진 데이터 세트를 생성하는 걸로는 수정할 수 없습니다. [Permissions] 화면에서 새 권한 데이터 세트를 선택해야 합니다. 이 제한 사항은 직접 SQL 쿼리에 적용되지 않습니다.