

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Quick에서 행 수준 보안 사용
<a name="row-level-security"></a>


|  | 
| --- |
|  적용 대상: Enterprise Edition  | 

Amazon Quick의 엔터프라이즈 에디션에서는 데이터 세트에 행 수준 보안(RLS)을 구성하여 데이터 세트에 대한 액세스를 제한할 수 있습니다. 데이터 세트를 공유하기 전이나 이후에 이를 수행할 수 있습니다. RLS와 데이터 세트를 데이터 세트 소유자와 공유해도 여전히 모든 데이터를 볼 수 있습니다. 하지만 독자와 공유하면 독자는 권한 데이터 세트 규칙에 의해 제한된 데이터만 볼 수 있습니다.

또한 Quick의 등록되지 않은 사용자를 위해 애플리케이션에 Amazon Quick 대시보드를 포함할 때 행 수준 보안(RLS)을 사용하여 태그로 데이터를 필터링/제한할 수 있습니다. 태그는 애플리케이션의 세션을 식별하는 사용자 지정 문자열입니다. 태그를 사용하여 데이터 세트에 대한 RLS 제어를 구현할 수 있습니다. 데이터 세트에서 RLS 기반 제한을 구성하여 Quick은 사용자 자격 증명/세션에 연결된 세션 태그를 기반으로 데이터를 필터링합니다.

사용자 이름이나 그룹 기반 규칙, 태그 기반 규칙 또는 둘 다를 사용하여 데이터 세트에 대한 액세스를 제한할 수 있습니다.

Quick에서 프로비저닝(등록)된 사용자 또는 그룹의 데이터를 보호하려면 사용자 기반 규칙을 선택합니다. 이렇게 하려면 데이터에 액세스하는 각 사용자 또는 그룹에 대해 열별로 설정된 규칙이 포함된 권한 데이터 세트를 선택하세요. 규칙에 명시된 사용자 또는 그룹만 데이터에 접근할 수 있습니다.

임베디드 대시보드를 사용하고 Quick에서 프로비저닝되지 않은 사용자(등록되지 않은 사용자)의 데이터를 보호하려는 경우에만 태그 기반 규칙을 선택합니다. 이렇게 하려면 열에 태그를 정의하여 데이터를 보호하세요. 대시보드를 임베딩할 때는 값을 태그에 전달해야 합니다.

**Topics**
+ [사용자 기반 규칙과 함께 행 수준 보안을 사용하여 데이터세트 액세스 제한](restrict-access-to-a-data-set-using-row-level-security.md)
+ [익명의 사용자를 위해 대시보드를 임베딩할 때 사용자 기반 규칙과 함께 행 수준 보안을 사용하여 데이터세트 액세스 제한](quicksight-dev-rls-tags.md)

# 사용자 기반 규칙과 함께 행 수준 보안을 사용하여 데이터세트 액세스 제한
<a name="restrict-access-to-a-data-set-using-row-level-security"></a>


|  | 
| --- |
|  적용 대상: Enterprise Edition  | 

Amazon Quick의 엔터프라이즈 에디션에서는 데이터 세트에 행 수준 보안(RLS)을 구성하여 데이터 세트에 대한 액세스를 제한할 수 있습니다. 데이터 세트를 공유하기 전이나 이후에 이를 수행할 수 있습니다. RLS와 데이터 세트를 데이터 세트 소유자와 공유해도 여전히 모든 데이터를 볼 수 있습니다. 하지만 독자와 공유하면 독자는 권한 데이터 세트 규칙에 의해 제한된 데이터만 볼 수 있습니다. 행 수준 보안을 추가하여 액세스를 추가로 제어할 수 있습니다.

**참고**  
SPICE 데이터 세트를 행 수준 보안에 적용할 경우, 데이터 세트의 각 필드에 최대 2,047개의 유니코드 문자를 포함할 수 있습니다. 이 할당량을 초과하는 필드는 수집 중에 잘립니다. SPICE 데이터 할당량에 대한 자세한 내용은 [가져온 데이터에 대한 SPICE 할당량](data-source-limits.md#spice-limits) 섹션을 참조하세요.

이렇게 하려면 사용자 또는 그룹 식별을 위한 하나의 열이 있는 쿼리 또는 파일을 생성합니다. `UserName` 및 `GroupName`를 사용하거나 또는 `UserARN` 및를 사용할 수 있습니다`GroupARN`. 이를 해당 사용자 또는 그룹에 대해 규칙을 추가하는 것으로 간주할 수 있습니다. 그 다음에는 액세스 권한을 부여하거나 제한하고자 하는 각 필드의 쿼리 또는 파일에 열을 추가할 수 있습니다. 추가한 각 사용자 또는 그룹 이름에서 각 필드의 값을 추가합니다. NULL(값이 없음)을 사용하면 모든 값을 나타낼 수 있습니다. 데이터 세트 규칙의 예시를 보려면 [행 수준 보안에 대한 데이터 세트 규칙 생성](#create-data-set-rules-for-row-level-security) 단원을 참조하세요.

데이터 세트 규칙을 적용하려면, 데이터 세트에 대한 권한 데이터 세트로서의 규칙을 추가합니다. 다음 사항에 유의하세요.
+ 권한 데이터 세트에는 중복 값이 포함되어서는 안 됩니다. 규칙을 적용하는 방법을 평가할 때 중복 값이 무시됩니다.
+ 지정된 각 사용자 또는 그룹은 데이터 세트 규칙의 필드 값과 일치하는 행만 볼 수 있습니다.
+ 사용자 또는 그룹에게 규칙을 추가하고 기타 모든 열에는 값이 없는 상태(NULL)로 두면 사용자 또는 그룹에게 모든 데이터에 대한 액세스 권한을 허용하는 것입니다.
+ 사용자 또는 그룹에게 규칙을 추가하지 않는 경우 그 사용자 또는 그룹은 데이터를 전혀 볼 수 없습니다.
+ 사용자별로 적용되는 전체 규칙 레코드 세트는 999개를 초과하지 않아야 합니다. 이 한도는 사용자 이름에 직접 할당된 총 규칙 수와 그룹 이름을 통해 사용자에게 할당된 모든 규칙에 적용됩니다.
+ 필드에 쉼표(,)가 포함된 경우 Amazon Quick은 쉼표로 구분된 각 단어를 필터의 개별 값으로 취급합니다. 예를 들어 `('AWS', 'INC')`에서 `AWS,INC`은(는) `AWS` 및 `INC`(이)라는 두 개의 문자열로 간주됩니다. `AWS,INC`을 필터링하려면 권한 데이터 세트에서 문자열을 큰따옴표로 묶으세요.

  제한된 데이터 세트가 SPICE 데이터 세트인 경우, 사용자당 적용되는 필터 값 수는 각 제한 필드에 192,000개를 초과할 수 없습니다. 이는 사용자 이름에 직접 할당된 총 필터 값 수와, 그룹 이름을 통해 사용자에게 할당된 모든 필터 값에 적용됩니다.

  제한된 데이터 세트가 다이렉트 쿼리 데이터 세트인 경우, 사용자당 적용되는 필터 값 수는 데이터 소스에 따라 다릅니다.

  필터 값 제한을 초과하면 시각적 렌더링이 실패할 수 있습니다. 필터 목록을 줄일 수 있도록 제한된 데이터 세트에 열을 추가하여 원래 제한 열을 기준으로 행을 그룹으로 나누는 것이 좋습니다.

Amazon Quick은 공백을 리터럴 값으로 취급합니다. 제한하려는 필드에 공백이 있는 경우, 데이터 세트 규칙이 해당 행에 적용됩니다. Amazon Quick은 NULLs과 공백(빈 문자열 "")을 모두 "값 없음"으로 취급합니다. NULL은 빈 필드 값입니다.

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

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

제한된 데이터 세트는 **데이터** 화면에서 **RESTRICTED**라는 단어로 표시됩니다.

RLS 규칙이 활성화된 상위 데이터 세트에서 만든 하위 데이터 세트에는 상위 데이터 세트와 동일한 RLS 규칙이 유지됩니다. 하위 데이터 세트에 RLS 규칙을 더 추가할 수 있지만, 데이터 세트가 상위 데이터 세트에서 상속하는 RLS 규칙을 제거할 수는 없습니다.

RLS 규칙이 활성화된 상위 데이터 세트에서 만든 하위 데이터 세트는 직접 쿼리로만 만들 수 있습니다. 상위 데이터 세트의 RLS 규칙을 상속하는 하위 데이터 세트는 SPICE에서 지원되지 않습니다.

행 수준 보안은 텍스트 데이터를 포함하는 필드에 대해서만 작동합니다(string, char, varchar 등). 날짜 또는 숫자 필드에 대해서는 작동하지 않습니다. 행 수준 보안(RLS)을 사용하는 데이터 세트에는 예외 항목 탐지가 지원되지 않습니다.

## 행 수준 보안에 대한 데이터 세트 규칙 생성
<a name="create-data-set-rules-for-row-level-security"></a>

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

**권한 파일 또는 쿼리를 생성하여 데이터 세트 규칙으로 사용**

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

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

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

   다음 예는 그룹이 있는 표를 보여줍니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   다음 예는 사용자 이름이 있는 테이블을 보여줍니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   다음 예는 사용자 및 그룹 Amazon 리소스 이름(ARN)이 포함된 표를 보여줍니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

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

   ```
   UserName,SalesRegion,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,SalesRegion,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"
   ```

   ```
   UserARN,GroupARN,SalesRegion
   arn:aws:quicksight:us-east-1:123456789012:user/Bob,arn:aws:quicksight:us-east-1:123456789012:group/group-1,APAC
   arn:aws:quicksight:us-east-1:123456789012:user/Sam,arn:aws:quicksight:us-east-1:123456789012:group/group-2,US
   ```

   다음은 SQL의 예입니다.

   ```
   /* for users*/
   	select User as UserName, SalesRegion, Segment
   	from tps-permissions;
   
   	/* for groups*/
   	select Group as GroupName, SalesRegion, Segment
   	from tps-permissions;
   ```

1. 데이터 세트 규칙에 대한 데이터 세트 생성 쉽게 찾을 수 있도록 **Permissions-Sales-Pipeline**과 같은 의미 있는 이름을 지정하십시오.

## 행 수준 보안에 대한 규칙 데이터세트 플래그 지정
<a name="rules-dataset-flagging-for-row-level-security"></a>

다음 절차를 사용하여 데이터세트를 규칙 데이터세트로 적절하게 플래그 지정합니다.

규칙 데이터세트는 행 수준 보안에 사용되는 권한 데이터세트를 일반 데이터세트와 구분하는 플래그입니다. 2025년 3월 31일 이전에 권한 데이터세트가 일반 데이터세트에 적용된 경우 **데이터세트** 랜딩 페이지에 규칙 데이터세트 플래그가 표시됩니다.

2025년 3월 31일까지 권한 데이터세트가 일반 데이터세트에 적용되지 않은 경우 일반 데이터세트로 분류됩니다. 규칙 데이터세트로 사용하려면 권한 데이터세트를 복제하고 데이터세트를 생성할 때 콘솔에서 규칙 데이터세트로 플래그를 지정합니다. 데이터 세트 편집을 선택하고 옵션에서 DUPLICATE AS RULES DATASET을 선택합니다.

규칙 데이터세트로 복제하려면 원래 데이터세트에서 다음 사항을 확인합니다. 1. 필수 사용자 메타데이터 또는 그룹 메타데이터 열을 포함합니다. 2. 문자열 유형 열만 포함합니다.

콘솔에서 새 규칙 데이터세트를 생성하려면 새 데이터세트 드롭다운에서 새 규칙 데이터세트를 선택합니다. 프로그래밍 방식으로 규칙 데이터세트를 생성할 때 [UseAs: RLS\$1RULES](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSet.html#API_CreateDataSet_RequestSyntax) 파라미터를 추가합니다. 규칙 데이터세트를 생성하는 데만 사용되는 선택적 파라미터입니다. 콘솔을 통해 또는 프로그래밍 방식으로 데이터세트를 생성하고 규칙 데이터세트 또는 일반 데이터세트로 플래그를 지정한 후에는 변경할 수 없습니다.

데이터 세트가 규칙 데이터 세트로 플래그가 지정되면 Amazon Quick은 엄격한 SPICE 수집 규칙을 적용합니다. 데이터 무결성을 보장하기 위해 길이 제한을 초과하는 잘못된 행 또는 셀이 있는 경우 규칙 데이터세트에 대한 SPICE 수집이 실패합니다. 성공적인 수집을 다시 시작하려면 수집 문제를 해결해야 합니다. 엄격한 수집 규칙은 규칙 데이터세트에만 적용됩니다. 행을 건너뛰거나 문자열을 잘라내는 경우 일반 데이터세트에서 데이터세트 수집은 실패하지 않습니다.

## 행 수준 보안 적용
<a name="apply-row-level-security"></a>

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

**파일 또는 쿼리를 사용하여 행 수준 보안 적용**

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

1. **데이터** 페이지에서 데이터 세트를 선택합니다.

1. 열리는 데이터 세트 세부 정보 페이지에서 **행 수준 보안**을 위해 **설정**을 선택합니다.

1. 열리는 **행 수준 보안 설정** 페이지에서 **사용자 기반 규칙**을 선택합니다.

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

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

1. **권한 정책**에서 **데이터 세트에 대한 액세스 허용**을 선택합니다. 각 데이터 세트에는 하나의 활성 권한 데이터 세트만이 있습니다. 보조 권한 데이터 세트를 추가하려는 경우 기존 세트를 덮어씁니다.
**중요**  
일부 제한은 열 수준 보안으로 작업할 때 NULL 및 빈 문자열 값에 적용됩니다.  
제약 필드에 있는 데이터 세트에 NULL 값 또는 빈 문자열("")이 있는 경우 제한이 적용될 때 해당 행은 무시됩니다.
권한 데이터 세트 내부에서 NULL 값 및 빈 문자열은 동일하게 취급됩니다. 자세한 정보는 다음 표를 참조하세요.
민감한 정보가 실수로 노출되는 것을 방지하기 위해 Amazon Quick은 모든 사용자에게 액세스 권한을 부여하는 빈 RLS 규칙을 건너뜁니다. 행의 모든 열에 값이 없는 경우 빈 RLS 규칙이 발생합니다. 빠른 RLS는 NULL, 빈 문자열("") 또는 빈 쉼표로 구분된 문자열(예: ",,")을 값으로 취급하지 않습니다.  
빈 규칙을 건너뛰어도, 비어 있지 않은 다른 RLS 규칙이 계속 적용됩니다.
권한 데이터 세트에 빈 규칙만 있고 모든 규칙을 건너뛰면, 아무도 이 권한 데이터 세트로 제한된 데이터에 접근할 수 없습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

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

1. 변경 사항을 저장하려면 **데이터 세트 적용**을 선택합니다. 그런 다음 **데이터 세트 규칙을 저장할까요?** 페이지에서 **적용 및 활성화**를 선택합니다. 권한 변경 사항은 기존 사용자에 대해 즉시 적용됩니다.

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

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

   권한을 덮어쓰려면 새 권한 데이터 세트를 선택하고 이를 적용합니다. 같은 데이터 세트 이름을 재사용할 수 있습니다. 하지만 이러한 권한을 활성화하려면 권한 화면에서 새 **권한**을 적용해야 합니다. SQL 쿼리는 동적으로 업데이트되므로 Amazon Quick 외부에서 관리할 수 있습니다. 쿼리의 경우 직접 쿼리 캐시가 자동으로 새로 고쳐지면 권한이 업데이트됩니다.

대상 데이터 세트에서 파일 기반 권한 데이터 세트를 제거하기 전에 이를 삭제한 경우, 제한된 사용자는 데이터 세트에 액세스할 수 없습니다. 데이터 세트가 이 상태인 경우 **RESTRICTED**으로 그대로 표시됩니다. 데이터 세트에 대한 **권한**을 볼 때 선택한 데이터 세트 규칙이 없음을 확인할 수 있습니다.

이를 수정하려면 새 데이터 세트 규칙을 지정합니다. 동일한 이름을 가진 데이터 세트를 생성하는 걸로는 수정할 수 없습니다. **권한** 화면에서 새 권한 데이터 세트를 선택해야 합니다. 이 제한 사항은 직접 SQL 쿼리에 적용되지 않습니다.

# 익명의 사용자를 위해 대시보드를 임베딩할 때 사용자 기반 규칙과 함께 행 수준 보안을 사용하여 데이터세트 액세스 제한
<a name="quicksight-dev-rls-tags"></a>


|  | 
| --- |
|  적용 대상: Enterprise Edition  | 


|  | 
| --- |
|    대상:  Amazon Quick Administrators 및 Amazon Quick 개발자  | 

Quick에서 프로비저닝(등록)되지 않은 사용자를 위해 Amazon Quick 대시보드를 애플리케이션에 포함할 때 행 수준 보안(RLS)을 사용하여 태그를 사용하여 데이터를 필터링/제한할 수 있습니다. 태그는 애플리케이션의 세션을 식별하는 사용자 지정 문자열입니다. 태그를 사용하여 데이터 세트에 대한 RLS 제어를 구현할 수 있습니다. 데이터 세트에서 RLS 기반 제한을 구성하여 Quick은 사용자 자격 증명/세션에 연결된 세션 태그를 기반으로 데이터를 필터링합니다.

예를 들어, 여러 소매업체를 위한 고객 대면 애플리케이션을 보유한 물류 회사를 예로 들어 보겠습니다. 이러한 소매업체의 수천 명의 사용자가 애플리케이션에 액세스하여 창고에서 주문이 배송되는 방식과 관련된 지표를 확인합니다.

Quick에서 수천 명의 사용자를 관리하고 싶지 않으므로 익명 임베딩을 사용하여 인증된 사용자와 승인된 사용자가 볼 수 있는 선택한 대시보드를 애플리케이션에 포함합니다. 하지만 소매업체에서는 자사 비즈니스용 데이터만 볼 수 있고 다른 업체는 볼 수 없도록 해야 합니다. 태그가 있는 RLS를 사용하여 고객이 자신과 관련된 데이터만 보게 할 수 있습니다.

이렇게 하려면 다음 단계를 완료합니다.

1. 데이터세트에 RLS 태그를 추가하세요.

1. `GenerateEmbedUrlForAnonymousUser` API 작업을 사용하여 런타임에 해당 태그에 값을 할당합니다.

   `GenerateEmbedUrlForAnonymousUser` API 작업을 사용하여 익명 사용자를 위한 대시보드를 내장하는 방법에 대한 자세한 내용은 [익명(미등록) 사용자를 위한 Amazon Quick Sight 대시보드 임베딩](embedded-analytics-dashboards-for-everyone.md) 단원을 참조하세요.

RLS를 태그와 함께 사용하려면, 먼저 다음 사항에 유의하세요.
+ 태그와 함께 RLS를 사용하는 것은 현재 익명 임베딩, 특히 `GenerateEmbedUrlForAnonymousUser` API 작업을 사용하는 임베디드 대시보드에만 지원됩니다.
+ `GenerateEmbedURLForRegisteredUser` API 작업 또는 이전`GetDashboardEmbedUrl` API 작업을 사용하는 임베디드 대시보드에서는 태그가 포함된 RLS를 사용할 수 없습니다.
+ RLS 태그는 AWS Identity and Access Management (IAM) 또는 빠른 자격 증명 유형에서 지원되지 않습니다.
+ SPICE 데이터 세트를 행 수준 보안에 적용할 경우, 데이터 세트의 각 필드에 최대 2,047개의 유니코드 문자를 포함할 수 있습니다. 이 할당량을 초과하는 필드는 수집 중에 잘립니다. SPICE 데이터 할당량에 대한 자세한 내용은 [가져온 데이터에 대한 SPICE 할당량](data-source-limits.md#spice-limits) 섹션을 참조하세요.

## 1단계: 데이터 세트에 RLS 태그 추가
<a name="quicksight-dev-rls-tags-add"></a>

Amazon Quick의 데이터 세트에 태그 기반 규칙을 추가할 수 있습니다. `CreateDataSet` 또는 `UpdateDataSet` API 작업을 호출하여 이러한 방식으로 태그 기반 규칙을 추가할 수도 있습니다. 자세한 내용은 [API를 사용하여 데이터 세트에 RLS 태그 추가](#quicksight-dev-rls-tags-add-api) 단원을 참조하십시오.

다음 절차에 따라 Quick의 데이터 세트에 RLS 태그를 추가합니다.

**데이터 세트에 RLS 태그 추가**

1. 빠른 시작 페이지에서 왼쪽의 **데이터를** 선택합니다.

1. RLS를 추가할 데이터 세트를 선택합니다.

1. 열리는 데이터 세트 세부 정보 페이지에서 **행 수준 보안**을 위해 **설정**을 선택합니다.

1. 열리는 **행 수준 보안 설정** 페이지에서 **태그 기반 규칙**을 선택합니다.

1. **열**에서 태그 규칙을 추가할 열을 선택합니다.

   예를 들어, 물류 회사의 경우 `retailer_id` 열이 사용됩니다.

   문자열 데이터 유형의 열만 나열됩니다.

1. **태그**에는 태그 키를 입력합니다. 원하는 태그 이름을 입력할 수 있습니다.

   예를 들어, 물류 회사의 경우 태그 키 `tag_retailer_id`이 사용됩니다. 이렇게 하면 애플리케이션에 액세스하는 소매업체에 따라 행 수준 보안이 설정됩니다.

1. (선택 사항) **구분 기호**의 경우, 목록에서 구분 기호를 선택하거나 직접 입력합니다.

   태그에 둘 이상의 값을 할당할 때 구분 기호를 사용하여 텍스트 문자열을 구분할 수 있습니다. 구분 기호 값은 최대 10자까지 입력할 수 있습니다.

1. (선택 사항) **모두 일치**의 경우, **\$1**를 선택하거나 직접 문자를 입력합니다.

   이 옵션은 데이터 세트에서 해당 열의 모든 값을 기준으로 필터링하려는 경우 사용할 모든 문자일 수 있습니다. 값을 하나씩 나열하는 대신 문자를 사용할 수 있습니다. 이 값을 지정하면 최소 1자 또는 최대 256자일 수 있습니다.

1. **추가**를 선택합니다.

   태그 규칙이 데이터 세트에 추가되고 하단에 나열되지만, 아직 적용되지는 않았습니다. 데이터 세트에 다른 태그 규칙을 추가하려면, 5\$19단계를 반복하세요. 태그 규칙을 수정하려면, 규칙 뒤에 있는 연필 아이콘을 선택하세요. 태그 규칙을 수정하려면, 규칙 뒤에 있는 아이콘을 선택하세요. 데이트 세트에 최대 50개의 태그를 추가할 수 있습니다.

1. 데이터 세트에 태그 규칙을 적용할 준비가 되면, **규칙 적용**을 선택합니다.

1. **태그 기반 보안을 켤까요?** 페이지가 열리면, **적용 및 활성화**를 선택합니다.

   이제 태그 기반 규칙이 활성화되었습니다. **행 수준 보안 설정** 페이지에서, 데이터 세트에 대한 태그 규칙을 켜거나 끌 수 있는 토글이 나타납니다.

   데이터 세트에 대한 모든 태그 기반 규칙을 끄려면 **태그 기반 규칙** 토글을 끈 다음 나타나는 텍스트 상자에 "확인"을 입력합니다.

   **데이터** 페이지에서 데이터 세트 행에 태그 규칙이 활성화되었음을 나타내는 잠금 아이콘이 나타납니다.

   [2단계: 런타임 시 RLS 태그에 값 할당](#quicksight-dev-rls-tags-assign-values)에 설명된 대로 이제 태그 규칙을 사용하여 런타임에 태그 값을 설정할 수 있습니다. 규칙은 활성 상태일 때만 빠른 리더에 영향을 줍니다.
**중요**  
데이터 세트에 태그가 할당되고 활성화된 후에는 대시보드를 작성할 때 빠른 작성자에게 데이터 세트의 데이터를 볼 수 있는 권한을 부여해야 합니다.  
빠른 작성자에게 데이터 세트의 데이터를 볼 수 있는 권한을 부여하려면 데이터 세트 규칙으로 사용할 권한 파일 또는 쿼리를 생성합니다. 자세한 내용은 [행 수준 보안에 대한 데이터 세트 규칙 생성](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security) 단원을 참조하십시오.

태그 기반 규칙을 생성하면, 태그 기반 규칙이 서로 어떻게 관련되는지 보여주는 새 **규칙 관리** 표가 나타납니다. **규칙 관리** 표에 나열된 규칙을 변경하려면 규칙 뒤에 있는 연필 아이콘을 선택합니다. 그런 다음 태그를 추가 또는 제거하고 **업데이트**를 선택합니다. 업데이트된 규칙을 데이터 세트에 적용하려면 **적용**을 선택합니다.

### (선택 사항) RLS 태그에 OR 조건 추가
<a name="quicksight-dev-rls-tags-or"></a>

태그 기반 규칙에 OR 조건을 추가하여 Quick Account 사용자에게 데이터가 표시되는 방식을 추가로 사용자 지정할 수도 있습니다. OR 조건을 태그 기반 규칙과 함께 사용하면 규칙에 정의된 하나 이상의 태그가 유효한 경우 빠른의 시각적 객체가 나타납니다.

**태그 기반 규칙에 OR 조건 추가**

1. **규칙 관리** 테이블에서 **OR 조건 추가**를 선택합니다.

1. 나타나는 **태그 선택** 드롭다운 목록에서 OR 조건을 만들려는 태그를 선택합니다. **규칙 관리** 테이블에 최대 50개의 OR 조건을 추가할 수 있습니다. 데이터 세트의 단일 열에 여러 태그를 추가할 수 있지만, 규칙에 열 태그가 하나 이상 포함되어야 합니다.

1. **업데이트**를 선택하여 규칙에 조건을 추가한 다음 **적용**을 선택하여 업데이트된 규칙을 데이터 세트에 적용합니다.

### API를 사용하여 데이터 세트에 RLS 태그 추가
<a name="quicksight-dev-rls-tags-add-api"></a>

또는`CreateDataSet` 또는 `UpdateDataSet` API 작업을 호출하여 데이터 세트에 태그 기반 행 수준 보안을 구성하고 활성화할 수도 있습니다. 다음 예제에서 방법을 알아보세요.

**중요**  
API 호출에서 세션 태그를 구성할 때  
세션 태그를 보안 자격 증명으로 취급합니다. 세션 태그를 최종 사용자 또는 클라이언트 측 코드에 노출하지 마십시오.
서버 측 제어를 구현합니다. 세션 태그는 최종 사용자가 수정할 수 있는 파라미터가 아닌 신뢰할 수 있는 백엔드 서비스에서만 설정해야 합니다.
열거로부터 세션 태그를 보호합니다. 한 테넌트의 사용자가 다른 테넌트에 속하는 sessionTag 값을 검색하거나 추측할 수 없는지 확인합니다.
아키텍처를 검토합니다. 다운스트림 고객 또는 파트너가 API를 직접 호출할 수 있는 경우 해당 당사자가 액세스해서는 안 되는 테넌트에 대한 sessionTag 값을 지정할 수 있는지 평가합니다.

------
#### [ CreateDataSet ]

다음은 태그가 있는 RLS를 사용하는 데이터 세트를 만드는 예시입니다. 앞서 설명한 물류 회사의 시나리오를 가정합니다. 태그는 `row-level-permission-tag-configuration` 요소에 정의되어 있습니다. 태그는 데이터를 보호하려는 열에 정의됩니다. 이 선택적 요소에 대한 자세한 내용은 Amazon Quick API 참조의 [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)을 참조하세요. ** 

```
create-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>]
		[--field-folders <value>]
		[--permissions <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--tags <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
		[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "tag_retailer_id",
					"ColumnName": "retailer_id",
					"TagMultiValueDelimiter": ",",
					"MatchAllValue": "*"
				},
				{
					"TagKey": "tag_role",
					"ColumnName": "role"
				}
			],
		"TagRuleConfigurations":
			[
				tag_retailer_id
			],
			[
				tag_role
			]
	}'
]
```

이 예제의 태그는 요소의 `TagRules` 부분에 정의되어 있습니다. 이 예에서는 2개의 열을 기반으로 2개의 태그가 정의됩니다.
+ `tag_retailer_id` 태그 키는 `retailer_id` 열에 대해 정의합니다. 이 경우 물류회사는, 애플리케이션에 액세스하는 소매업체에 따라 행 수준 보안이 설정됩니다.
+ `tag_role` 태그 키는 `role` 열에 대해 정의합니다. 이 경우 물류 회사는, 특정 소매업체에서 애플리케이션에 액세스하는 사용자의 역할에 따라 행 수준 보안의 추가 계층이 설정됩니다. 한 예로 `store_supervisor` 또는 `manager`입니다.

각 태그에 대해 `TagMultiValueDelimiter` 및 `MatchAllValue`을(를) 정의할 수 있습니다. 이들은 선택 사항입니다.
+ `TagMultiValueDelimiter` - 이 옵션은 런타임에 값을 전달할 때 값을 구분하는 데 사용할 모든 문자열일 수 있습니다. 값은 최대 10자입니다. 이 경우 쉼표가 구분 기호 값으로 사용됩니다.
+ `MatchAllValue` - 이 옵션은 데이터 세트에서 해당 열의 모든 값을 기준으로 필터링하려는 경우 사용할 모든 문자일 수 있습니다. 값을 하나씩 나열하는 대신 문자를 사용할 수 있습니다. 지정하는 경우, 이 값은 최소 1자 또는 최대 256자일 수 있습니다. 이 경우 모두 일치 값으로 별표가 사용됩니다.

데이터 세트 열의 태그를 구성하는 동안 필수 속성 `Status`을(를) 사용하여 태그를 켜거나 끕니다. 태그 규칙을 활성화하려면 이 속성에 대해 `ENABLED` 값을 사용하세요. 태그 규칙을 켜서 [2단계: 런타임 시 RLS 태그에 값 할당](#quicksight-dev-rls-tags-assign-values)에 설명된 대로 런타임에 태그 값을 설정하는 데 사용할 수 있습니다.

다음은 이 응답 정의의 예입니다.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------
#### [ UpdateDataSet ]

**UpdateDataset**

`UpdateDataSet` API 작업을 사용하여 기존 데이터 세트에 RLS 태그를 추가하거나 업데이트할 수 있습니다.

다음은 RLS 태그로 데이터 세트를 업데이트하는 예제입니다. 앞서 설명한 물류 회사의 시나리오를 가정합니다.

```
update-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>
		[--field-folders <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
				[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "tag_retailer_id",
					"ColumnName": "retailer_id",
					"TagMultiValueDelimiter": ",",
					"MatchAllValue": "*"
				},
				{
					"TagKey": "tag_role",
					"ColumnName": "role"
				}
			],
		"TagRuleConfigurations":
			[
				tag_retailer_id
			],
			[
				tag_role
			]
	}'
]
```

다음은 이 응답 정의의 예입니다.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------

**중요**  
데이터 세트에 태그가 할당되고 활성화된 후에는 대시보드를 작성할 때 빠른 작성자에게 데이터 세트의 데이터를 볼 수 있는 권한을 부여해야 합니다.  
빠른 작성자에게 데이터 세트의 데이터를 볼 수 있는 권한을 부여하려면 데이터 세트 규칙으로 사용할 권한 파일 또는 쿼리를 생성합니다. 자세한 내용은 [행 수준 보안에 대한 데이터 세트 규칙 생성](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security) 단원을 참조하십시오.

`RowLevelPermissionTagConfiguration` 요소에 대한 자세한 내용은 Amazon Quick API 참조의 [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)을 참조하세요. ** 

## 2단계: 런타임 시 RLS 태그에 값 할당
<a name="quicksight-dev-rls-tags-assign-values"></a>

RLS용 태그는 익명 임베딩에만 사용할 수 있습니다. `GenerateEmbedUrlForAnonymousUser` API 작업을 사용하여 태그 값을 설정할 수 있습니다.

**중요**  
API 호출에서 세션 태그를 구성할 때  
세션 태그를 보안 자격 증명으로 취급합니다. 세션 태그를 최종 사용자 또는 클라이언트 측 코드에 노출하지 마십시오.
서버 측 제어를 구현합니다. 세션 태그는 최종 사용자가 수정할 수 있는 파라미터가 아닌 신뢰할 수 있는 백엔드 서비스에서만 설정해야 합니다.
열거로부터 세션 태그를 보호합니다. 한 테넌트의 사용자가 다른 테넌트에 속하는 sessionTag 값을 검색하거나 추측할 수 없는지 확인합니다.
아키텍처를 검토합니다. 다운스트림 고객 또는 파트너가 API를 직접 호출할 수 있는 경우 해당 당사자가 액세스해서는 안 되는 테넌트에 대한 sessionTag 값을 지정할 수 있는지 평가합니다.

다음 예시는 이전 단계에서 데이터 세트에 정의된 RLS 태그에 값을 할당하는 방법을 보여줍니다.

```
POST /accounts/AwsAccountId/embed-url/anonymous-user
	HTTP/1.1
	Content-type: application/json
	{
		“AwsAccountId”: “string”,
		“SessionLifetimeInMinutes”: integer,
		“Namespace”: “string”, // The namespace to which the anonymous end user virtually belongs
		“SessionTags”:  // Optional: Can be used for row-level security
			[
				{
					“Key”: “tag_retailer_id”,
					“Value”: “West,Central,South”
				}
				{
					“Key”: “tag_role”,
					“Value”: “shift_manager”
				}
			],
		“AuthorizedResourceArns”:
			[
				“string”
			],
		“ExperienceConfiguration”:
			{
				“Dashboard”:
					{
						“InitialDashboardId”: “string”
						// This is the initial dashboard ID the customer wants the user to land on. This ID goes in the output URL.
					}
			}
	}
```

다음은 이 응답 정의의 예입니다.

```
HTTP/1.1 Status
	Content-type: application/json

	{
	"EmbedUrl": "string",
	"RequestId": "string"
	}
```

Quick에 사용자를 등록하지 않는 RLS 지원은 `GenerateEmbedUrlForAnonymousUser` API 작업에서만 지원됩니다. 이 `SessionTags` 작업에서는, 데이터 세트 열과 관련된 태그의 값을 정의할 수 있습니다.

이 경우 다음과 같은 할당이 정의됩니다.
+ 값 `West`, `Central` 및 `South`은 런타임 시 `tag_retailer_id` 태그에 할당됩니다. 쉼표는 데이터 세트의 `TagMultipleValueDelimiter`에 정의된 구분 기호로 사용됩니다. 열의 호출 값을 사용하려면, 값을 태그를 만들 때 `MatchAllValue`로 정의한 \$1로 설정하면 됩니다.
+ `shift_manager` 값은 `tag_role` 태그에 할당됩니다.

생성된 URL을 사용하는 사용자는 `role` 열에 `shift_manager` 값이 있는 행만 볼 수 있습니다. 해당 사용자는 `retailer_id` 열에 있는 `West`, `Central`, 또는 `South` 값만 볼 수 있습니다.

`GenerateEmbedUrlForAnonymousUser` API 작업을 사용하여 익명 사용자를 위한 대시보드를 포함하는 방법에 대한 자세한 내용은 Amazon Quick API 참조의 [익명(미등록) 사용자를 위한 Amazon Quick Sight 대시보드 임베딩](embedded-analytics-dashboards-for-everyone.md)또는 [GenerateEmbedUrlForAnonymousUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GenerateEmbedUrlForAnonymousUser.html)를 참조하세요. ** 