Lakehouse for Apache Iceberg는 Lakehouse 런타임 카탈로그를 사용하는 Cloud Storage의 Apache Iceberg 테이블에 대한 테이블 수준 액세스 제어를 지원합니다.
Lakehouse 런타임 카탈로그는 테이블 메타데이터를 관리하고 Identity and Access Management (IAM) 정책은 권한을 정의합니다. gcloud CLI는 이러한 IAM 정책을 가져오고 설정하는 데 필요한 명령어를 제공합니다.
시작하기 전에
-
BigLake API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기 - Google Cloud SDK를 설치하고 초기화합니다.
- 기존 Apache Iceberg REST 카탈로그 엔드포인트와 네임스페이스가 있는지 확인합니다.
- 지정된 카탈로그 및 네임스페이스 내에 기존 Lakehouse Iceberg 테이블이 있는지 확인합니다.
필요한 역할
Iceberg 테이블의 액세스 제어 목록 (ACL)을 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- 모두: 프로젝트에 대한 BigLake 관리자 (roles/biglake.admin)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
작동 방식
IAM 정책은 리소스에 대해 특정 역할과 권한이 있는 주 구성원을 정의합니다. 이러한 정책을 가져오고 설정하여 리소스에 대한 액세스를 관리할 수 있습니다.
관련 IAM 역할
다음 일반 IAM 역할을 Lakehouse 리소스에 적용할 수 있습니다.
roles/biglake.admin: Lakehouse 리소스를 완전히 제어할 수 있습니다.roles/biglake.user: 주체가 테이블 데이터 읽기 및 쓰기를 비롯한 Lakehouse 리소스를 사용할 수 있도록 합니다.roles/biglake.viewer: 주 구성원이 Lakehouse 리소스를 보고 테이블 데이터를 읽을 수 있도록 합니다.
권장사항
- 최소 권한: 사용자 및 서비스 계정에 필요한 권한만 부여합니다.
- Etag 사용: 의도치 않은 덮어쓰기를 방지하기 위해
set-iam-policy를 사용할 때는 항상 최근get-iam-policy호출의etag를 정책 파일에 포함합니다. - 감사 로깅: IAM 정책의 변경사항을 추적할 수 있도록 Cloud 감사 로그가 사용 설정되어 있는지 확인합니다.
- 버전 관리: 정책 파일을 버전 관리 시스템에 저장합니다.
테이블에 ACL 역할 적용
다음 섹션에서는 테이블에 ACL을 적용하는 방법을 보여줍니다.
IAM 정책 가져오기
Lakehouse Iceberg 테이블의 현재 IAM 정책을 보려면 gcloud biglake iceberg tables
get-iam-policy 명령어를 사용합니다.
IAM 정책을 가져오려면 다음 명령어를 실행합니다.
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_ID다음을 바꿉니다.
TABLE_NAME: 타겟 Lakehouse Iceberg 테이블의 이름입니다.CATALOG_NAME: Apache Iceberg REST 카탈로그 엔드포인트의 이름입니다.NAMESPACE_NAME: 카탈로그 내 네임스페이스의 이름PROJECT_ID: Google Cloud프로젝트 ID
이 명령어는 현재 역할 바인딩과 구성원을 보여주는 IAM 정책을 YAML 형식으로 출력합니다.
IAM 정책 설정
Lakehouse Iceberg 테이블의 IAM 정책을 업데이트하려면 gcloud biglake iceberg tables set-iam-policy 명령어를 사용합니다.
이 명령어는 적용할 정책이 포함된 로컬 JSON 또는 YAML 파일을 사용합니다.
JSON 또는 YAML 형식으로 로컬 정책 파일을 만듭니다. 정책 파일에는 바인딩과
etag이 포함되어야 합니다.etag값은 변경사항을 덮어쓰지 않도록 낙관적 동시 실행 제어를 제공합니다. 현재etag를 가져오려면 먼저get-iam-policy명령어를 실행합니다.다음 예시는
policy.json이라는 정책 파일을 보여줍니다.{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }다음 명령어를 실행하여 IAM 정책을 설정합니다.
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_ID다음을 바꿉니다.
TABLE_NAME: 타겟 Lakehouse Iceberg 테이블의 이름입니다.POLICY_FILE: 로컬 정책 파일의 경로입니다.CATALOG_NAME: Apache Iceberg REST 카탈로그 엔드포인트의 이름입니다.NAMESPACE_NAME: 카탈로그 내 네임스페이스의 이름PROJECT_ID: Google Cloud 프로젝트 ID입니다.
다음 단계
- IAM 자세히 알아보기
- Lakehouse IAM 역할 및 권한의 전체 목록을 확인하세요.
- 레이크하우스 개념에 대해 알아봅니다.