Lake Formation을 사용하여 테이블 또는 데이터베이스에 대한 액세스 관리 - Amazon Simple Storage Service

Lake Formation을 사용하여 테이블 또는 데이터베이스에 대한 액세스 관리

테이블 버킷이 AWS 분석 서비스와 통합되면 Lake Formation은 테이블 리소스에 대한 액세스를 관리합니다. Lake Formation은 Data Catalog 리소스에 대한 세분화된 액세스 제어를 활성화하는 자체 권한 모델(Lake Formation 권한)을 사용합니다. Lake Formation에서는 Lake Formation에서 관리하는 리소스에 대해 작업을 수행할 수 있는 권한을 각 IAM 위탁자(사용자 또는 역할)에 부여해야 합니다. 자세한 내용은 AWS Lake Formation 개발자 안내서Lake Formation 권한 개요를 참조하십시오. 계정 간 데이터 공유에 대한 자세한 내용은 AWS Lake Formation개발자 안내서Lake Formation에서의 계정 간 데이터 공유를 참조하세요.

IAM 위탁자가 AWS 분석 서비스의 테이블에 액세스하려면 먼저 해당 리소스에 대한 Lake Formation 권한을 부여해야 합니다.

참고

테이블 버킷 통합을 수행한 사용자인 경우 테이블에 대한 Lake Formation 권한이 이미 있습니다. 테이블에 액세스할 유일한 위탁자인 경우 이 단계를 건너뛸 수 있습니다. 테이블에 대한 Lake Formation 권한을 다른 IAM 위탁자에게 부여하기만 하면 됩니다. 이렇게 하면 다른 위탁자가 쿼리를 실행할 때 테이블에 액세스할 수 있습니다. 자세한 내용은 테이블 또는 데이터베이스에 대한 Lake Formation 권한 부여 섹션을 참조하세요.

다음 서비스에서 테이블 리소스를 사용하려면 테이블 리소스에 대한 Lake Formation 권한을 다른 IAM 위탁자에게 부여해야 합니다.

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon QuickSight

  • Amazon Athena

테이블 또는 데이터베이스에 대한 Lake Formation 권한 부여

Lake Formation 콘솔 또는 AWS CLI를 통해 위탁자에게 테이블 버킷의 테이블 또는 데이터베이스에 대한 Lake Formation 권한을 부여할 수 있습니다.

참고

데이터 카탈로그 리소스에 대한 Lake Formation 권한을 외부 계정에 부여하거나 다른 계정의 IAM 보안 주체에 직접 부여하면 Lake Formation은 AWS Resource Access Manager(AWS RAM) 서비스를 사용하여 리소스를 공유합니다. 피부여자 계정이 부여자 계정과 동일한 조직에 속해 있는 경우, 피부여자는 공유 리소스를 즉시 사용할 수 있습니다. 피부여자 계정이 같은 조직에 속해 있지 않은 경우, AWS RAM은 피부여자 계정에 리소스 부여를 수락하거나 거부하라는 초대를 보냅니다. 그런 다음 공유 리소스를 사용할 수 있게 하려면 피부여자 계정의 데이터 레이크 관리자가 AWS RAM 콘솔 또는 AWS CLI를 사용하여 초대를 수락해야 합니다. 계정 간 데이터 공유에 대한 자세한 내용은 AWS Lake Formation개발자 안내서Lake Formation에서의 계정 간 데이터 공유를 참조하세요.

Console
  1. https://console.aws.amazon.com/lakeformation/에서 AWS Lake Formation 콘솔을 열고 데이터 레이크 관리자로 로그인합니다. 데이터 레이크 관리자 생성 방법에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서데이터 레이크 관리자 생성을 참조하세요.

  2. 탐색 창에서 데이터 권한을 선택한 다음 권한 부여를 선택합니다.

  3. 권한 부여 페이지의 주체에서 다음 중 하나를 수행합니다.

    • Amazon Athena 또는 Amazon Redshift에서 IAM 사용자 및 역할을 선택하고 쿼리에 사용하는 IAM 위탁자를 선택합니다.

    • Amazon Data Firehose에서 IAM 사용자 및 역할을 선택하고 테이블로 스트리밍하기 위해 생성한 서비스 역할을 선택합니다.

    • QuickSight에서 SAML 사용자 및 그룹을 선택하고 QuickSight 관리자 사용자의 Amazon 리소스 이름(ARN)을 입력합니다.

    • AWS Glue Iceberg REST 엔드포인트 액세스에 대해 IAM 사용자 및 역할을 선택한 다음 클라이언트용으로 만든 IAM 역할을 선택합니다. 자세한 내용은 클라이언트에 대한 IAM 역할 생성 섹션을 참조하세요.

  4. LF 태그 또는 카탈로그 리소스에서 명명된 데이터 카탈로그 리소스를 선택합니다.

  5. 카탈로그에서 테이블 버킷을 통합할 때 생성한 하위 카탈로그를 선택합니다. 예를 들어, account-id:s3tablescatalog/amzn-s3-demo-bucket입니다.

  6. 데이터베이스에서 생성한 S3 테이블 버킷 네임스페이스를 선택합니다.

  7. (옵션) 테이블에서 테이블 버킷에서 생성한 S3 테이블을 선택합니다.

    참고

    Athena 쿼리 편집기에서 새 테이블을 생성하는 경우 테이블을 선택하지 마세요.

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

    • 이전 단계에서 테이블을 지정한 경우 테이블 권한에서 슈퍼를 선택합니다.

    • 이전 단계에서 테이블을 지정하지 않은 경우 데이터베이스 권한으로 이동합니다. 교차 계정 데이터 공유의 경우 슈퍼를 선택하여 다른 위탁자에게 데이터베이스에 대한 모든 권한을 부여할 수 없습니다. 대신 설명과 같이 더 세분화된 권한을 선택합니다.

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

CLI
  1. 데이터 레이크 관리자로서 다음 AWS CLI 명령을 실행 중인지 확인합니다. 자세한 내용은 AWS Lake Formation 개발자 안내서데이터 레이크 관리자 생성을 참조하세요.

  2. 다음 명령을 실행하여 S3 테이블 버킷의 테이블에 대한 Lake Formation 권한을 테이블에 액세스할 IAM 위탁자에 부여합니다. 이 예제를 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'