메뉴 닫기

AWS Glue 5.0과 Lake Formation을 활용한 테이블 수준 접근 제어 자동화 방법

AWS Glue 5.0과 Lake Formation을 활용한 테이블 수준 액세스 제어 자동화 가이드

도입

빠르게 확장되는 데이터 레이크 환경에서 데이터 보안과 접근 제어는 점점 더 중요해지고 있습니다. AWS Glue는 대용량 데이터 처리를 지원하는 ETL 서비스로, 최근 5.0 버전부터 AWS Lake Formation과 통합하여 테이블 수준의 액세스 제어(FTA, Full-Table Access)를 강화했습니다. 이 기능은 간소한 설정과 더불어 뛰어난 성능을 확보하면서도, 기업 내부의 데이터 보안 및 컴플라이언스 요건을 충족시킬 수 있도록 설계되었습니다.

이 글에서는 AWS Glue 5.0에서 Spark 기반의 FTA 기능을 활용해 테이블 수준의 접근 권한을 제어하는 방법과 실제 마이그레이션 케이스를 중심으로 활용 가이드를 공유합니다.

본론

  1. AWS Glue 5.0의 주요 기능: FTA와 FGAC

AWS Glue 5.0은 두 가지 액세스 제어 모델을 지원합니다.

  • FTA(Full-Table Access): 테이블 수준 권한 제어
  • FGAC(Fine-Grained Access Control): 행, 열, 셀 등 세부 수준 권한 제어

FGAC는 정교한 보안 및 거버넌스를 필요로 할 때 적합하지만, 높은 설정 부담과 성능 저하, 비용 증가 요인이 따릅니다. 반면 FTA는 설정이 간단하며 테이블 단위로 읽기/쓰기 권한을 통제할 수 있어 성능과 비용의 효율성이 높습니다.

  1. FTA의 활용 방식

AWS Glue 4.0까지는 GlueContext 기반에서만 Lake Formation과의 접근 제어가 가능했지만, 5.0에서는 Spark SQL과 Spark DataFrame을 통해 네이티브하게 FTA 기능을 사용할 수 있습니다. 즉, GlueContext 설정을 할 필요 없이 Spark Session 내에서 Glue Catalog와 S3 내 Iceberg, Hive 테이블에 직접 접근이 가능합니다.

FTA 활용 시 지원되는 주요 작업:

  • SELECT, CREATE
  • UPDATE, DELETE
  • ALTER, MERGE INTO 등 데이터 조작 언어(DML) 전반

이는 Apache Spark 기반 애플리케이션에서 테이블 수준의 보안을 유지를 하면서도 확장성 있게 작업할 수 있도록 해줍니다.

  1. 실전 활용 및 마이그레이션 사례

기존 AWS Glue 4.0에서 GlueContext로 FTA를 사용하던 작업을, AWS Glue 5.0의 Spark 네이티브 방식으로 마이그레이션 하는 과정을 요약하면 다음과 같습니다.

  • S3 버킷 및 테스트 데이터 생성
  • Athena를 통한 Glue 테이블 정의

S3 구성을 보여주는 예시 이미지

  • Lake Formation에서 S3 경로 및 테이블에 대한 권한 설정
  • 기존 Glue 4.0 Job에서 SparkConf를 설정하고 GlueContext 사용
  • 동일한 IAM Role 기반으로 Glue 5.0 Job 스크립트를 Spark SQL 용도로 변경

Spark 네이티브 변환 예시:

from pyspark.sql import SparkSession

spark = SparkSession.builder
.config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")
.config("spark.sql.defaultCatalog", "spark_catalog")
.config("spark.sql.catalog.spark_catalog", "org.apache.iceberg.spark.SparkSessionCatalog")
.config("spark.sql.catalog.spark_catalog.warehouse", "s3:///warehouse/")
.config("spark.sql.catalog.spark_catalog.client.region", "us-east-1")
.config("spark.sql.catalog.spark_catalog.glue.lakeformation-enabled", "true")
.getOrCreate()

df = spark.sql("SELECT * FROM glue5_fta_demo.iceberg_datalake")
df.show()

마이그레이션 후에는 GlueContext를 제거하고 더욱 간결한 Spark API로 작업을 수행하면서도, 동일한 Lake Formation 권한 체계를 유지할 수 있습니다.

Glue Job 실행 결과 예시 이미지

  1. 설정 전 필수 체크리스트

FTA 기능을 활용하기 위해 필요한 사전 조건은 다음과 같습니다:

  • lakeformation:GetDataAccess 권한 포함된 IAM Role
  • S3 접근 권한
  • Glue Job 실행 권한
  • Glue Data Catalog 및 Athena 환경 설정

또한 FTA 기능을 위한 경험적 과정을 단순화하기 위해, ‘IAM 세션 태그 검증 없이 외부 쿼리 엔진 접근 허용’ 설정 또한 필요합니다.

결론

AWS Glue 5.0의 FTA 기능은 기존의 복잡한 액세스 제어 방식에서 벗어나, 단순한 구성만으로도 강력한 보안 기능을 제공합니다. 특히 성능 저하 없이 테이블 수준에서만 권한 제어가 필요한 사용 사례에서는 최적의 선택이 될 수 있습니다.

이 기능은 Apache Hive 및 Iceberg 테이블을 지원하며, 향후 Amazon EMR과 같은 환경으로도 스크립트 이식이 유연합니다. 전사 데이터 레이크 운영 시 보안 거버넌스를 자동화하고 배포 효율을 극대화하고자 하는 기업에게 적합한 솔루션입니다.

https://aws.amazon.com/blogs/big-data/enforce-table-level-access-control-on-data-lake-tables-using-aws-glue-5-0-with-aws-lake-formation/

AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!

(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기


AI, Cloud 도입 상담 배너