공유 데이터 카탈로그 테이블에 대한 리소스 링크 만들기 - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

공유 데이터 카탈로그 테이블에 대한 리소스 링크 만들기

AWS Lake Formation 콘솔, API 또는 AWS Command Line Interface (AWS CLI) 를 사용하여 모든 AWS 지역의 공유 테이블에 대한 리소스 링크를 생성할 수 있습니다.

공유 테이블에 대한 리소스 링크를 만들려면(콘솔)
  1. https://console.aws.amazon.com/lakeformation/ 에서 AWS Lake Formation 콘솔을 엽니다. 리소스 링크를 포함할 데이터베이스에 대한 Lake Formation CREATE_TABLE 권한이 있는 보안 주체로 로그인합니다.

  2. 탐색 창에서 테이블을 선택한 다음 생성, 리소스 링크를 선택합니다.

  3. 리소스 링크 생성 페이지에서 다음 정보를 제공합니다.

    리소스 링크 이름

    테이블 이름과 동일한 규칙을 준수하는 이름을 입력합니다. 이름은 대상 공유 테이블과 같을 수 있습니다.

    데이터베이스

    리소스 링크를 포함할 로컬 데이터 카탈로그의 데이터베이스입니다.

    공유 테이블 소유자 리전

    다른 리전에서 리소스 링크를 생성하는 경우 대상 공유 테이블의 리전을 선택합니다.

    공유 테이블

    목록에서 공유 테이블을 선택하거나 로컬(소유) 또는 공유 테이블 이름을 입력합니다.

    목록에는 계정에 공유된 모든 테이블이 포함됩니다. 각 테이블에 나열된 데이터베이스 및 소유자 계정 ID를 기록해 둡니다. 계정과 공유된 것으로 알고 있는 테이블이 표시되지 않으면 다음을 확인합니다.

    • 데이터 레이크 관리자가 아닌 경우, 데이터 레이크 관리자가 테이블에 대한 Lake Formation 권한을 부여했는지 확인합니다.

    • 데이터 레이크 관리자인데 계정이 부여 계정과 동일한 AWS 조직에 속해 있지 않은 경우, 테이블에 대한 AWS Resource Access Manager (AWS RAM) 리소스 공유 초대를 수락했는지 확인합니다. 자세한 정보는 의 리소스 공유 초대 수락 AWS RAM을 참조하세요.

    공유 테이블의 데이터베이스

    목록에서 공유 테이블을 선택한 경우 이 필드는 외부 계정의 공유 테이블 데이터베이스로 채워집니다. 그렇지 않으면 로컬 데이터베이스(로컬 테이블에 대한 리소스 링크의 경우) 또는 외부 계정에 있는 공유 테이블의 데이터베이스를 입력합니다.

    공유 테이블 소유자

    목록에서 공유 테이블을 선택한 경우 이 필드는 공유 테이블의 소유자 계정 ID로 채워집니다. 그렇지 않으면 AWS 계정 ID (로컬 테이블에 대한 리소스 링크의 경우) 또는 테이블을 공유한 AWS 계정의 ID를 입력합니다.

  4. 생성을 선택하여 리소스 링크를 생성합니다.

    그러면 테이블 페이지의 이름 열에서 리소스 링크 이름을 볼 수 있습니다.

  5. (선택 사항) 링크를 보고 대상 테이블에 액세스할 수 있어야 하는 관리자에게 리소스 링크에 대한 Lake Formation DESCRIBE 권한을 부여합니다.

    하지만 리소스 링크에 권한을 부여해도 대상 (연결된) 데이터베이스 또는 테이블에 대한 권한은 부여되지 않습니다. Athena에서 테이블/리소스 링크를 표시하려면 대상 데이터베이스에 대한 권한을 별도로 부여해야 합니다.

같은 리전(AWS CLI)에 있는 공유 테이블에 대한 리소스 링크를 만들려면 다음과 같이 하세요.
  1. 다음과 유사한 명령을 입력합니다.

    aws glue create-table --database-name myissues --table-input '{"Name":"my_customers","TargetTable":{"CatalogId":"111122223333","DatabaseName":"issues","Name":"customers"}}'

    이 명령은 AWS 계정 1111-2222-3333의 데이터베이스 issues에 있는 공유 테이블 customers에 대한 my_customers라는 리소스 링크를 만듭니다. 리소스 링크는 로컬 데이터베이스 myissues에 저장됩니다.

  2. (선택 사항) 링크를 보고 대상 테이블에 액세스할 수 있어야 하는 관리자에게 리소스 링크에 대한 Lake Formation DESCRIBE 권한을 부여합니다.

    하지만 리소스 링크에 권한을 부여해도 대상 (연결된) 테이블에 대한 권한은 부여되지 않습니다. Athena에서 테이블/리소스 링크를 표시하려면 대상 데이터베이스에 대한 권한을 별도로 부여해야 합니다.

다른 리전(AWS CLI)에 있는 공유 테이블에 대한 리소스 링크를 만들려면
  1. 다음과 유사한 명령을 입력합니다.

    aws glue create-table --region eu-west-1 --cli-input-json '{ "CatalogId": "111122223333", "DatabaseName": "ireland_db", "TableInput": { "Name": "rl_useast1salestb_ireland", "TargetTable": { "CatalogId": "444455556666", "DatabaseName": "useast1_salesdb", "Region": "us-east-1", "Name":"useast1_salestb" } } }‘

    이 명령은 미국 동부 (버지니아 북부) 지역의 444455556666 AWS 계정의 데이터베이스에 useast1_salesdb 있는 공유 테이블에 useast1_salestb 대한 유럽 (아일랜드) 지역 이름의 rl_useast1salestb_ireland 리소스 링크를 생성합니다. 리소스 링크는 로컬 데이터베이스 ireland_db에 저장됩니다.

  2. 링크를 보고 링크를 통해 링크 대상에 액세스할 수 있어야 하는 관리자에게 Lake Formation DESCRIBE 권한을 부여합니다.

    하지만 리소스 링크에 권한을 부여해도 대상 (연결된) 테이블에 대한 권한은 부여되지 않습니다. Athena에서 테이블/리소스 링크를 표시하려면 대상 테이블에 대한 권한을 별도로 부여해야 합니다.