기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lake Formation 포메이션의 데이터 필터
데이터 필터를 생성하여 열 수준, 행 수준 및 셀 수준 보안을 구현할 수 있습니다. 테이블에 대한 SELECT
Lake Formation 권한을 부여할 때 데이터 필터를 선택합니다.
각 데이터 필터는 데이터 카탈로그의 특정 테이블에 속합니다. 데이터 필터에는 다음 정보가 포함됩니다.
-
필터 이름
-
필터와 연결된 테이블의 카탈로그 ID
-
테이블 이름
-
테이블이 포함된 데이터베이스의 이름
-
열 사양 — 쿼리 결과에 포함시킬 열 목록.
-
행 필터 표현식 — 쿼리 결과에 포함할 행 을 지정하는 표현식. 일부 제한 사항이 있지만 표현식에는 PartiQL
WHERE
언어의 절 구문이 있습니다. 모든 행을 지정하려면true
콘솔에 입력하거나 APIAllRowsWildcard
호출에서 사용합니다.행 필터 표현식에서 지원되는 정보에 대한 자세한 내용은 단원을 참조하십시오행 필터 표현식의 PartiQL 지원.
가져올 수 있는 필터링 수준은 데이터 필터를 채우는 방법에 따라 다릅니다.
-
'모든 열' 와일드카드를 지정하고 행 필터 표현식을 제공하면 행 수준 보안(행 필터링)만 설정됩니다.
-
특정 열을 포함시키고 모든 행 을 사용하여 “모든 행 을 사용하여 “모든 행 을 사용하여 “모든 행 을 사용하여 “모든 행 을 사용하여 “모든 행 을 지정하면 열 수준 보안 (열 필터링) 만 설정됩니다.
-
특정 열을 포함시키거나 제외시키고 행 필터 표현식도 제공하면 셀 수준 보안(셀 필터링)이 설정됩니다.
Lake Formation 콘솔의 다음 스크린샷은 셀 레벨 필터링을 수행하는 데이터 필터를 보여줍니다. orders
테이블에 대한 쿼리의 경우 열에 대한 액세스가 제한되며 쿼리 결과는 customer_name
열에 'pharma'가 포함된 행만 반환합니다. product_type

문자열 리터럴, 을 묶을 때는 작은따옴표를 사용한다는 점에 유의하세요. 'pharma'
Lake Formation 콘솔을 사용하여 이 데이터 필터를 만들거나 CreateDataCellsFilter
API 작업에 다음 요청 객체를 제공할 수 있습니다.
{ "Name": "restrict-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type='pharma'"}, "ColumnWildcard": { "ExcludedColumnNames": ["customer_name"] } }
테이블에 필요한 만큼 데이터 필터를 생성할 수 있습니다. 이렇게 하려면 테이블의 부여 옵션과 함께 SELECT
권한이 필요합니다. Data Lake 관리자는 기본적으로 해당 계정의 모든 테이블에 데이터 필터를 생성할 권한이 있습니다. 일반적으로 주도자에게 테이블에 대한 권한을 부여할 때는 가능한 데이터 필터의 하위 집합만 사용합니다. 예를 들어 데이터 필터인 orders
테이블에 대해 두 번째 데이터 필터를 만들 수 있습니다. row-security-only 위 스크린샷을 참조하여 모든 열에 액세스 옵션을 선택하고 행 필터 표현식을 포함할 수 있습니다. product_type<>pharma
이 데이터 필터의 이름은 일 수 no-pharma
있습니다. product_type
열이 'pharma'로 설정된 모든 행에 대한 액세스를 제한합니다.
이 데이터 필터에 대한 CreateDataCellsFilter
API 작업의 요청 객체는 다음과 같습니다.
{ "Name": "no-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type<>'pharma'"}, "ColumnNames": ["customer_id", "customer_name", "order_num" "product_id", "purchase_date", "product_type", "product_manufacturer", "quantity", "price"] }
그런 다음 데이터 필터가 있는 orders
테이블에서는 관리자에게, restrict-pharma
데이터 필터가 있는 SELECT
orders
테이블에서는 관리자가 아닌 사용자에게 권한을 SELECT
부여할 수 있습니다. no-pharma
의료 부문 사용자의 경우 모든 행과 열에 SELECT
대한 전체 액세스 권한 (데이터 필터 없음) 을 부여하거나 가격 정보에 대한 액세스를 제한하는 또 다른 데이터 필터를 부여할 수 있습니다. orders