데이터 필터링 제한 사항 - AWS Lake Formation

데이터 필터링 제한 사항

데이터 카탈로그 테이블에 대한 Lake Formation 권한을 부여하면 데이터 필터링 사양을 포함하여 쿼리 결과 및 Lake Formation 통합 엔진에서 특정 데이터에 대한 액세스를 제한할 수 있습니다. Lake Formation은 데이터 필터링을 사용하여 열 수준 보안, 행 수준 보안 및 셀 수준 보안을 달성합니다. 소스 데이터에 중첩 구조가 포함된 경우 중첩 열에 데이터 필터를 정의하고 적용할 수 있습니다.

열 수준 필터링에 대한 참고 및 제한 사항

열 필터링을 지정하는 세 가지 방법이 있습니다.

  • 데이터 필터 사용

  • 단순 열 필터링 또는 중첩된 열 필터링 사용.

  • TAG를 사용합니다

단순 열 필터링은 포함하거나 제외할 열 목록만 지정합니다. Lake Formation 콘솔, API, AWS CLI 모두 단순 열 필터링을 지원합니다. 예시는 Grant with Simple Column Filtering을 확인하세요.

다음 참고 및 제한 사항이 열 필터링에 적용됩니다.

  • AWS Glue ETL 작업은 열 필터링을 지원하지 않습니다. 작업이 참조하는 테이블에 열 필터링을 적용하면 작업이 실패합니다.

  • 권한 부여 옵션 및 열 필터링으로 SELECT를 부여하려면 제외 목록이 아닌 포함 목록을 사용해야 합니다. 권한 부여 옵션이 없는 경우 포함 또는 제외 목록을 사용할 수 있습니다.

  • 열 필터링이 있는 테이블에 SELECT를 부여하려면 부여 옵션이 있고 행 제한이 없는 테이블에 SELECT를 부여해야 합니다. 모든 행에 액세스할 수 있는 권한이 있어야 합니다.

  • 계정의 관리자에게 권한 부여 옵션 및 열 필터링이 있는 SELECT를 부여하는 경우, 해당 관리자는 다른 관리자에게 권한 부여할 때 동일한 열 또는 부여된 열의 하위 집합에 대해 열 필터링을 지정해야 합니다. 외부 계정에 권한 부여 옵션 및 열 필터링을 사용하여 SELECT를 부여하면 외부 계정의 데이터 레이크 관리자가 계정의 다른 보안 주체에 모든 열에 대해 SELECT를 부여할 수 있습니다. 그러나 모든 열에 SELECT를 설정하더라도 해당 보안 주체는 외부 계정에 권한 부여된 열에 대해서만 가시성을 갖게 됩니다.

  • 파티션 키에는 열 필터링을 적용할 수 없습니다.

  • 테이블의 열 하위 집합에 대한 SELECT 권한이 있는 보안 주체는 해당 테이블에 대한 ALTER, DROP, DELETE 또는 INSERT 권한을 부여받을 수 없습니다. 테이블에 대한 ALTER, DROP, DELETE 또는 INSERT 권한이 있는 보안 주체의 경우 열 필터링으로 SELECT 권한을 부여하면 아무 효과가 없습니다.

다음 참고 및 제한 사항이 중첩된 열 필터링에 적용됩니다.

  • 데이터 필터에 5개 수준의 중첩된 필드를 포함하거나 제외할 수 있습니다.

    Col1.Col1_1.Col1_1_1.Col1_1_1_1.Col1_1_1_1_1

  • 파티션 열 내의 중첩된 필드에는 열 필터링을 적용할 수 없습니다.

  • 테이블 스키마에 데이터 필터 내에서 동일한 패턴의 중첩된 필드 표현이 있는 최상위 열 이름(“고객”.“주소”)이 포함된 경우(최상위 열 이름 customer와 중첩된 필드 이름 address가 데이터 필터에 "customer"."address"로 지정됨), 포함/제외 목록에서 모두 동일한 패턴을 사용하여 표시되므로 최상위 열 또는 중첩된 필드에 대한 액세스를 명시적으로 지정할 수 없습니다. 이는 모호하며 최상위 열 또는 중첩된 필드를 지정하는 경우 Lake Formation에서 문제를 해결할 수 없습니다.

  • 최상위 열 또는 중첩된 필드의 이름에 큰 따옴표가 포함된 경우, 데이터 셀 필터의 포함 및 제외 목록 내 중첩된 필드에 대한 액세스를 지정할 때 두 번째 큰 따옴표를 포함해야 합니다.

    큰 따옴표가 있는 중첩된 열 이름의 예 - a.b.double"quote

    데이터 필터 내 중첩된 열 표현식의 예 - "a"."b"."double""quote"

셀 수준 필터링 제한

행 수준 및 셀 수준 필터링에 대한 다음 참고 사항과 제한 사항에 유의하십시오.

  • 중첩된 열, 뷰 및 리소스 링크에는 셀 수준 보안이 지원되지 않습니다.

  • 최상위 열에서 지원되는 모든 표현식은 중첩 열에서도 지원됩니다. 하지만 중첩된 행 수준 식을 정의할 때 파티션 열 아래의 중첩된 필드를 참조해서는 안 됩니다.

  • 셀 수준 보안은 Athena 엔진 버전 3 또는 Amazon Redshift Spectrum을 사용하는 경우 모든 리전에서 사용할 수 있습니다. 다른 서비스의 경우, 셀 수준 보안은 지원되는 리전에 언급된 리전에서만 사용할 수 있습니다.

  • SELECT INTO 설명은 지원되지 않습니다.

  • arraymap 데이터 유형은 행 필터 표현식에서 지원되지 않습니다. struct 데이터 유형만 지원됩니다.

  • 테이블에 정의할 수 있는 데이터 필터 수에는 제한이 없지만, 테이블의 단일 보안 주체에 대한 데이터 필터 SELECT 권한은 100개로 제한되어 있습니다.

  • 테이블에 대한 권한 부여에 포함할 수 있는 최대 데이터 필터 수는 100개입니다.

  • 행 필터 표현식을 사용하여 데이터 필터를 적용하려면 모든 테이블 열에 부여 옵션이 있는 SELECT가 있어야 합니다. 외부 계정에 권한이 부여되었을 때 외부 계정의 관리자에게는 이 제한이 적용되지 않습니다.

  • 보안 주체가 그룹의 구성원이고 보안 주체와 그룹 모두 행의 하위 집합에 대한 권한이 부여된 경우, 보안 주체의 유효 행 권한은 보안 주체의 권한과 그룹의 권한을 합산한 값입니다.

  • 행 수준 및 셀 수준 필터링에 대한 테이블에는 다음 열 이름이 제한됩니다.

    • ctid

    • oid

    • xmin

    • cmin

    • xmax

    • cmax

    • tableoid

    • insertxid

    • deletexid

    • importoid

    • redcatuniqueid

  • 테이블에 모든 행 필터 표현식을 조건자가 있는 다른 필터 표현식과 동시에 적용하는 경우, 모든 행 표현식이 다른 모든 필터 표현식보다 우선합니다.

  • 행의 하위 집합에 대한 권한이 외부 AWS 계정에 부여되고 외부 계정의 데이터 레이크 관리자가 해당 계정의 보안 주체에 해당 권한을 부여하는 경우, 사용자의 유효 필터 조건자는 계정의 조건자와 사용자에게 직접 부여된 모든 조건자의 교집합입니다.

    예를 들어 계정에 조건자가 dept='hr'인 행 권한이 있고 사용자에게 country='us'에 대한 권한이 별도로 부여된 경우, 사용자에게는 dept='hr'country='us'가 있는 행에만 액세스 권한이 있습니다.

셀 수준 필터링에 대한 자세한 내용은 Lake Formation의 데이터 필터링 및 셀 수준 보안 섹션을 참조하세요.