명명된 리소스 방법을 사용하여 테이블 권한 부여 - AWS Lake Formation

명명된 리소스 방법을 사용하여 테이블 권한 부여

Lake Formation 콘솔 또는 AWS CLI를 사용하여 데이터 카탈로그 테이블에 대해 Lake Formation 권한을 부여할 수 있습니다. 개별 테이블에 권한을 부여하거나 단일 권한 부여 작업으로 데이터베이스의 모든 테이블에 권한을 부여할 수 있습니다.

데이터베이스의 모든 테이블에 대해 권한을 부여하면 데이터베이스에 대한 DESCRIBE 권한이 암시적으로 부여됩니다. 그러면 데이터베이스가 콘솔의 데이터베이스 페이지에 나타나고 GetDatabases API 작업에 의해 반환됩니다.

부여할 권한으로 SELECT를 선택하면 열 필터, 행 필터 또는 셀 필터를 적용할 수 있는 옵션이 제공됩니다.

Console

다음 단계는 명명된 리소스 방법과 Lake Formation 콘솔의 데이터 레이크 권한 부여 페이지를 사용하여 테이블 권한을 부여하는 방법을 설명합니다. 이 페이지는 다음과 같은 섹션으로 나뉘어 있습니다.

  • 보안 주체 - 권한을 부여할 사용자, 역할, AWS 계정, 조직 또는 조직 단위.

  • LF 태그 또는 카탈로그 리소스 - 권한을 부여할 데이터베이스, 테이블 또는 리소스 링크.

  • 권한 - 부여할 Lake Formation 권한.

참고

테이블 리소스 링크에 대한 권한을 부여하려면 리소스 링크 권한 부여 섹션을 참조하세요.

  1. 데이터 레이크 권한 부여 페이지를 엽니다.

    AWS Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/)을 열고 데이터 레이크 관리자, 테이블 생성자 또는 권한 부여 옵션으로 테이블에 대한 권한을 부여받은 사용자로 로그인합니다.

    다음 중 하나를 수행합니다.

    • 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다. 그런 다음 권한 부여를 선택합니다.

    • 탐색 창에서 테이블을 선택합니다. 그런 다음 테이블 페이지에서 테이블을 선택하고 작업 메뉴의 권한에서 권한 부여를 선택합니다.

    참고

    리소스 링크를 통해 테이블에 대한 권한을 부여할 수 있습니다. 이렇게 하려면 테이블 페이지에서 리소스 링크를 선택하고 작업 메뉴에서 대상에 부여를 선택합니다. 자세한 내용은 Lake Formation에서 리소스 링크가 작동하는 방식 단원을 참조하십시오.

  2. 다음으로 보안 주체 섹션에서 보안 주체 유형을 선택하고 권한을 부여할 보안 주체를 지정합니다.

    보안 주체 섹션에는 다음 텍스트에 이름이 지정된 세 개의 타일이 있습니다. 각 타일에는 옵션 버튼과 텍스트가 있습니다. IAM Identity Center 사용자 및 그룹 타일이 선택되어 있고 타일 아래에 IAM 사용자 및 역할 드롭다운 목록이 있습니다.
    IAM 사용자 및 역할

    IAM 사용자 및 역할 목록에서 하나 이상의 사용자 또는 역할을 선택합니다.

    IAM Identity Center

    사용자 및 그룹 목록에서 하나 이상의 사용자 또는 그룹을 선택합니다.

    SAML 사용자 및 그룹

    SAML 및 Amazon QuickSight 사용자 및 그룹의 경우 SAML을 통해 페더레이션된 사용자 또는 그룹에 대한 하나 이상의 Amazon 리소스 이름(ARN)을 입력하거나 Amazon QuickSight 사용자 또는 그룹에 대한 ARN을 입력합니다. 각 ARN을 입력한 후에 Enter 키를 누릅니다.

    ARN을 구성하는 방법에 대한 자세한 내용은 Lake Formation 권한 부여 및 취소 AWS CLI 명령 섹션을 참조하세요.

    참고

    Lake Formation과 Amazon QuickSight 통합은 Amazon QuickSight Enterprise Edition에서만 지원됩니다.

    외부 계정

    AWS 계정, AWS 조직 또는 IAM 보안 주체의 경우 IAM 사용자 또는 역할에 대해 하나 이상의 유효한 AWS 계정 ID, 조직 ID, 조직 단위 ID 또는 ARN을 입력합니다. 각 ID를 입력한 후에 Enter 키를 누릅니다.

    조직 ID는 'o-'와 10~32개의 소문자 또는 숫자로 구성됩니다.

    조직 단위 ID는 'ou-'로 시작하고 뒤에 4~32개의 소문자 또는 숫자가 옵니다(OU가 포함된 루트의 ID). 이 문자열 뒤에는 두 번째 '-' 문자와 8~32개의 추가 소문자 또는 숫자가 옵니다.

  3. LF 태그 또는 카탈로그 리소스 섹션에서 데이터베이스를 선택합니다. 그런 다음 테이블을 하나 이상 선택하거나 모든 테이블을 선택합니다.

    LF 태그 또는 카탈로그 리소스 섹션에는 가로로 배열된 두 개의 타일이 있으며, 각 타일에는 옵션 버튼과 설명 텍스트가 있습니다. 옵션은 LF 태그와 일치하는 리소스 및 명명된 데이터 카탈로그 리소스입니다. 명명된 데이터 카탈로그 리소스가 선택됩니다. 타일 아래에는 데이터베이스와 테이블이라는 두 개의 드롭다운 목록이 있습니다. 데이터베이스 드롭다운 목록 아래에는 선택한 데이터베이스 이름이 포함된 타일이 있습니다. 테이블 드롭다운 목록 아래에는 선택한 테이블 이름이 포함된 타일이 있습니다.
  4. 데이터 필터링 없이 권한 지정

    권한 섹션에서 부여할 테이블 권한을 선택하고, 선택 사항으로 부여 가능한 권한을 선택합니다.

    테이블 및 열 권한 섹션에는 테이블 권한과 부여 가능한 권한이라는 두 개의 하위 섹션이 있습니다. 각 하위 섹션에는 가능한 각 Lake Formation 권한(변경, 삽입, 삭제, 삭제, 선택, 설명 및 슈퍼)에 대한 확인란이 있습니다. 슈퍼 권한은 다른 권한의 오른쪽에 배치되어 있으며 "이 권한을 사용하면 보안 주체가 왼쪽에 있는 모든 권한을 부여할 수 있으며 부여 가능한 권한을 대체합니다."라는 설명이 있습니다.

    선택 권한을 부여하면 테이블 및 열 권한 섹션 아래에 데이터 권한 섹션이 나타납니다. 기본적으로 모든 데이터 액세스 옵션이 선택되어 있습니다. 기본값을 수락합니다.

    섹션에는 가로로 배열된 세 개의 타일이 있으며 각 타일에는 옵션 버튼과 설명이 있습니다. 옵션 버튼은 모든 데이터 액세스(선택됨), 단순 열 기반 액세스 및 고급 셀 수준 필터입니다.
  5. 권한 부여를 선택합니다.

  6. 데이터 필터링과 함께 선택 권한을 지정합니다.

    선택 권한을 선택합니다. 다른 권한은 선택하지 마세요.

    데이터 권한 섹션은 테이블 및 열 권한 섹션 아래에 표시됩니다.

  7. 다음 중 하나를 수행합니다.

    • 단순 열 필터링만 적용합니다.

      1. 단순 열 기반 액세스를 선택합니다.

        상단 섹션은 테이블 및 열 권한 섹션입니다. 이에 대해서는 이전 스크린샷에 설명되어 있습니다. 여기에는 테이블 권한 및 부여 가능한 권한에 대한 확인란이 포함되어 있습니다. 하단 섹션인 데이터 권한에는 가로로 배열된 세 개의 타일이 있으며, 각 타일에는 옵션 버튼과 설명이 있습니다. 옵션 버튼은 모든 데이터 액세스, 단순 열 기반 액세스 및 고급 셀 수준 필터입니다. 단순 열 기반 액세스 옵션이 선택되어 있습니다. 타일 아래에는 권한 필터 선택이라는 레이블이 지정된 옵션 버튼 그룹이 있습니다. 옵션으로 열 포함과 열 제외가 있습니다. 옵션 그룹 아래에는 열 선택 드롭다운 목록이 있고 그 아래에는 '선택'이라는 단일 확인란이 있는 부여 가능한 권한 하위 섹션이 있습니다.
      2. 열을 포함할지 제외할지 선택한 다음 포함하거나 제외할 열을 선택합니다.

        외부 AWS 계정이나 조직에 권한을 부여할 때는 포함 목록만 지원됩니다.

      3. (선택 사항) 부여 가능한 권한에서 선택 권한에 대한 권한 부여 옵션을 설정합니다.

        권한 부여 옵션을 포함하는 경우 권한 부여 수신자는 사용자가 부여한 열에 대한 권한만 부여할 수 있습니다.

      참고

      열 필터를 지정하고 모든 행을 행 필터로 지정하는 데이터 필터를 생성하는 경우 열 필터링을 적용할 수도 있습니다. 하지만 이렇게 하려면 더 많은 단계가 필요합니다.

    • 열, 행 또는 셀 필터링을 적용합니다.

      1. 고급 셀 수준 필터를 선택합니다.

        데이터 권한이라는 제목의 이 섹션은 테이블 권한 섹션 아래에 있습니다. 세 개의 타일이 가로로 배열되어 있으며, 각 타일에는 옵션 버튼과 설명이 있습니다. 옵션 버튼은 모든 데이터 액세스, 단순 열 기반 액세스 및 고급 셀 수준 필터입니다. 고급 셀 수준 필터 옵션이 선택되어 있습니다. 타일 아래 왼쪽에는 노출 삼각형과 함께 기존 권한 보기라는 레이블이 있습니다. 기존 권한은 노출되어 있지 않습니다. 아래에는 부여할 데이터 필터라는 제목의 섹션이 있습니다. 제목 오른쪽에는 새로 고침, 필터 관리, 새 필터 생성이라는 세 개의 버튼이 있습니다. 제목과 버튼 아래에는 '필터 찾기'라는 자리 표시자 텍스트가 있는 텍스트 필드가 있습니다. 그 아래에는 기존 필터의 테이블이 있습니다. 각 행의 맨 왼쪽에는 확인란이 있습니다. 열 제목은 필터 이름, 테이블, 데이터베이스, 테이블 카탈로그 ID입니다. 두 개의 행이 있습니다. 첫 번째 행의 필터 이름은 restrict-pharma입니다. 두 번째 행의 필터 이름은 no-pharma입니다.
      2. (선택 사항) 기존 권한 보기를 확장합니다.

      3. (선택 사항) 새 필터 생성을 선택합니다.

      4. (선택 사항) 나열된 필터의 세부 정보를 보거나 새 필터를 생성하거나 기존 필터를 삭제하려면 필터 관리를 선택합니다.

        새 브라우저 창에 데이터 필터 페이지가 열립니다.

        데이터 필터 페이지에서 작업을 마쳤으면 권한 부여 페이지로 돌아가서 필요한 경우 페이지를 새로 고쳐 새로 생성한 데이터 필터를 확인합니다.

      5. 권한 부여에 적용할 데이터 필터를 하나 이상 선택합니다.

        참고

        목록에 데이터 필터가 없다면 선택한 테이블에 대해 생성된 데이터 필터가 없는 것입니다.

  8. 권한 부여를 선택합니다.

AWS CLI

명명된 리소스 방법과 AWS Command Line Interface(AWS CLI)를 사용하여 테이블 권한을 부여할 수 있습니다.

AWS CLI를 사용하여 테이블 권한을 부여하려면
  • grant-permissions 명령을 실행하고 테이블을 리소스로 지정합니다.

예 - 단일 테이블에 대해 권한 부여 - 필터링 없음

다음 예제는 데이터베이스 retail의 테이블 inventory에 있는 AWS 계정 1111-2222-3333의 사용자 datalake_user1에게 SELECTALTER 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
참고

등록된 위치에 기본 데이터가 있는 테이블에 ALTER 권한을 부여하는 경우 해당 위치에 대한 데이터 위치 권한도 보안 주체에 부여해야 합니다. 자세한 내용은 데이터 위치 권한 부여 단원을 참조하십시오.

예 - 권한 부여 옵션을 사용하여 모든 테이블에 대해 권한 부여 - 필터링 없음

다음 예제는 데이터베이스 retail의 모든 테이블에 대해 권한 부여 옵션을 사용하여 SELECT 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --permissions-with-grant-option "SELECT" --resource '{ "Table": { "DatabaseName": "retail", "TableWildcard": {} } }'
예 - 간단한 열 필터링을 통해 권한 부여

다음 예제는 persons 테이블에 있는 열의 하위 집합에 대해 SELECT 권한을 부여합니다. 여기서는 간단한 열 필터링을 사용합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"hr", "Name":"persons", "ColumnNames":["family_name", "given_name", "gender"]}}'
예 - 데이터 필터를 통해 권한 부여

이 예제는 orders 테이블에 대해 SELECT 권한을 부여하고 restrict-pharma 데이터 필터를 적용합니다.

aws lakeformation grant-permissions --cli-input-json file://grant-params.json

다음은 grant-params.json 파일의 내용입니다.

{ "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"}, "Resource": { "DataCellsFilter": { "TableCatalogId": "111122223333", "DatabaseName": "sales", "TableName": "orders", "Name": "restrict-pharma" } }, "Permissions": ["SELECT"], "PermissionsWithGrantOption": ["SELECT"] }