AWS Glue Iceberg REST 에 대한 카탈로그 통합 구성하기

이 항목의 단계에 따라 Signature Version 4(SigV4) 인증을 사용하여 AWS Glue Iceberg REST 엔드포인트 에 대한 카탈로그 통합을 생성하십시오.

1단계: AWS Glue Data Catalog에 대한 액세스 허가 구성

AWS Glue 데이터 카탈로그에 액세스하기 위해 Snowflake에 대한 IAM 정책을 만듭니다. 카탈로그 통합을 만들 때 지정하는 IAM 역할에 정책을 첨부합니다. 지침은 AWS Identity and Access Management 사용자 가이드에서 IAM 정책 만들기역할 권한 정책 수정하기 를 참조하십시오.

Snowflake는 최소한 다음 권한이 필요합니다. AWS Glue 데이터 카탈로그에서 다음 권한을 사용하여 Glue Iceberg REST 카탈로그를 사용하여 정보에 액세스합니다.

  • glue:GetCatalog

  • glue:GetDatabase

  • glue:GetDatabases

  • glue:GetTable

  • glue:GetTables

다음 예시 정책(JSON 형식)에서는 지정된 데이터베이스의 모든 테이블에 액세스하는 데 필요한 권한을 제공합니다.

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "AllowGlueCatalogTableAccess",
         "Effect": "Allow",
         "Action": [
           "glue:GetCatalog",
           "glue:GetDatabase",
           "glue:GetDatabases",
           "glue:GetTable",
           "glue:GetTables"
         ],
         "Resource": [
            "arn:aws:glue:*:<accountid>:table/*/*",
            "arn:aws:glue:*:<accountid>:catalog",
            "arn:aws:glue:*:<accountid>:database/<database-name>"
         ]
      }
   ]
}
Copy

참고

  • 이 정책의 Resource 요소를 수정하여 허용되는 리소스(예: 카탈로그, 데이터베이스 또는 테이블)를 추가로 제한할 수 있습니다. 자세한 내용은 AWS Glue에서 정의된 리소스 유형 을 참조하십시오.

  • AWS Glue에 암호화를 사용하는 경우 AWS Key Management Service(AWS KMS) 권한을 추가하도록 정책을 수정해야 합니다. 자세한 내용은 AWS Glue에서 암호화 설정하기 를 참조하십시오.

2단계: Snowflake에서 카탈로그 통합 만들기

CREATE CATALOG INTEGRATION(Apache Iceberg™ REST) 명령을 사용하여 AWS Glue Iceberg REST 엔드포인트 에 대한 카탈로그 통합을 만듭니다. 구성한 IAM 역할을 지정합니다. CATALOG_NAME 의 경우 AWS 계정 ID 를 사용합니다.

CREATE CATALOG INTEGRATION glue_rest_catalog_int
  CATALOG_SOURCE = ICEBERG_REST
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE = 'rest_catalog_integration'
  REST_CONFIG = (
    CATALOG_URI = 'https://glue.us-west-2.amazonaws.com/iceberg'
    CATALOG_API_TYPE = AWS_GLUE
    CATALOG_NAME = '123456789012'
  )
  REST_AUTHENTICATION = (
    TYPE = SIGV4
    SIGV4_IAM_ROLE = 'arn:aws:iam::123456789012:role/my-role'
    SIGV4_SIGNING_REGION = 'us-west-2'
  )
  ENABLED = TRUE;
Copy

여기서

  • CATALOG_URI 는 AWS Glue Iceberg REST 카탈로그의 서비스 엔드포인트입니다.

  • CATALOG_NAME 은 AWS 계정의 ID 입니다.

자세한 내용은 AWS Glue에 대한 카탈로그 통합 구성 지침이 포함된 CREATE CATALOG INTEGRATION(Apache Iceberg™ REST) 섹션을 참조하십시오.