Lake Formation에서 리소스 링크가 작동하는 방식
리소스 링크는 로컬 또는 공유 데이터베이스나 테이블에 대한 링크인 데이터 카탈로그 객체입니다. 데이터베이스 또는 테이블에 대한 리소스 링크를 생성한 후에는 데이터베이스 또는 테이블 이름을 사용할 모든 위치에 리소스 링크 이름을 사용할 수 있습니다. 사용자가 소유한 테이블 또는 사용자와 공유된 테이블과 함께 테이블 리소스 링크는 glue:GetTables()
에 의해 반환되고 Lake Formation 콘솔의 테이블 페이지에 항목으로 나타납니다. 데이터베이스에 대한 리소스 링크도 비슷한 방식으로 작동합니다.
데이터베이스 또는 테이블에 리소스 링크를 생성하면 다음을 수행할 수 있습니다.
-
데이터 카탈로그의 데이터베이스 또는 테이블에 다른 이름을 할당합니다. 이 기능은 여러 AWS 계정이 같은 이름의 데이터베이스 또는 테이블을 공유하거나 계정의 여러 데이터베이스에 같은 이름의 테이블이 있는 경우에 특히 유용합니다.
-
해당 리전에서 다른 리전의 데이터베이스 및 테이블을 가리키는 리소스 링크를 생성하여 어느 AWS 리전에서든 데이터 카탈로그 데이터베이스 및 테이블에 액세스할 수 있습니다. 이러한 리소스 링크가 있는 모든 리전에서 소스 데이터나 Glue 데이터 카탈로그의 메타데이터를 복사하지 않고도 Athena, Amazon EMR을 사용하여 쿼리를 실행하고 AWS Glue ETL Spark 작업을 실행할 수 있습니다.
-
공유 데이터베이스 또는 테이블에 액세스하는 쿼리를 실행하려면 Amazon Athena 및 Amazon Redshift Spectrum과 같은 통합 AWS 서비스를 사용하세요. 일부 통합 서비스는 여러 계정의 데이터베이스 또는 테이블에 직접 액세스할 수 없습니다. 하지만 다른 계정의 데이터베이스 및 테이블로 연결되는 사용자 계정의 리소스 링크에는 액세스할 수 있습니다.
참고
AWS Glue 추출, 전환, 적재(ETL) 스크립트에서 공유 데이터베이스 또는 테이블을 참조하기 위한 리소스 링크를 생성할 필요가 없습니다. 그러나 여러 AWS 계정이 같은 이름의 데이터베이스나 테이블을 공유할 때 모호함을 피하려면 리소스 링크를 만들어 사용하거나 ETL 작업을 호출할 때 카탈로그 ID를 지정할 수 있습니다.
다음 예는 두 개의 리소스 링크가 나열된 Lake Formation 콘솔 테이블 페이지를 보여줍니다. 리소스 링크 이름은 항상 기울임꼴로 표시됩니다. 각 리소스 링크는 연결된 공유 리소스의 이름 및 소유자와 함께 표시됩니다. 이 예제에서는 AWS 계정 1111-2222-3333의 데이터 레이크 관리자가 계정 1234-5678-9012와 inventory
및 incidents
테이블을 공유했습니다. 그런 다음 해당 계정의 사용자가 해당 공유 테이블에 대한 리소스 링크를 생성했습니다.
리소스 링크에 대한 참고 및 제한 사항은 다음과 같습니다.
-
리소스 링크는 공유 테이블의 기본 데이터를 쿼리하기 위해 Athena 및 Redshift Spectrum과 같은 통합 서비스를 활성화하는 데 필요합니다. 이러한 통합 서비스의 쿼리는 리소스 링크 이름을 기반으로 구성됩니다.
-
포함된 데이터베이스에 대해 이 데이터베이스의 새 테이블에 IAM 액세스 제어만 사용 설정이 꺼져 있다고 가정하면 리소스 링크를 만든 본인만 해당 데이터베이스를 보고 액세스할 수 있습니다. 계정의 다른 보안 주체가 리소스 링크에 액세스할 수 있게 하려면 해당
DESCRIBE
권한을 부여합니다. 다른 사용자가 리소스 링크를 삭제할 수 있게 하려면 해당DROP
권한을 부여합니다. 데이터 레이크 관리자는 계정의 모든 리소스 링크에 액세스할 수 있습니다. 다른 보안 주체가 만든 리소스 링크를 삭제하려면 먼저 데이터 레이크 관리자가 자신에게 리소스 링크에 대한DROP
권한을 부여해야 합니다. 자세한 내용은 Lake Formation 권한 참조 단원을 참조하십시오.중요
리소스 링크에 대한 권한을 부여해도 대상(링크된) 데이터베이스 또는 테이블에 대한 권한은 부여되지 않습니다. 대상에 대한 권한을 별도로 부여해야 합니다.
-
리소스 링크를 만들려면 Lake Formation
CREATE_TABLE
또는CREATE_DATABASE
권한과glue:CreateTable
또는glue:CreateDatabase
AWS Identity and Access Management(IAM) 권한이 필요합니다. -
로컬(소유) 데이터 카탈로그 리소스뿐만 아니라 AWS 계정과 공유되는 리소스에 대한 리소스 링크를 만들 수 있습니다.
-
리소스 링크를 만들 때, 대상 공유 리소스가 존재하는지 또는 리소스에 대한 교차 계정 권한이 있는지 여부는 확인되지 않습니다. 이렇게 하면 리소스 링크와 공유 리소스를 어떤 순서로든 만들 수 있습니다.
-
리소스 링크를 삭제해도 연결된 공유 리소스는 삭제되지 않습니다. 공유 리소스를 삭제해도 해당 리소스에 대한 리소스 링크는 삭제되지 않습니다.
-
리소스 링크 체인을 생성할 수 있습니다. 그러나 API는 첫 번째 리소스 링크만 따르기 때문에 그렇게 하는 것은 의미가 없습니다.