Lake Formation 권한 참조 - AWS Lake Formation

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

Lake Formation 권한 참조

AWS Lake Formation 작업을 수행하려면 보안 주체는 Lake Formation 권한과 AWS Identity and Access Management (IAM) 권한이 모두 필요합니다. 일반적으로 Lake Formation 권한 개요 에 설명된 대로 대략적인 액세스 제어 정책을 사용하여 IAM 권한을 부여합니다. 콘솔, API 또는 AWS Command Line Interface (AWS CLI) 를 사용하여 Lake Formation 권한을 부여할 수 있습니다.

Lake Formation 권한을 부여 또는 취소하는 방법에 대한 자세한 내용은 데이터 카탈로그 리소스에 대한 권한 부여 및 취소데이터 위치 권한 부여 섹션을 참조하세요.

참고

이 섹션의 예제는 동일한 AWS 계정의 보안 주체에 권한을 부여하는 방법을 보여줍니다. 교차 계정 권한 부여의 예는 Lake Formation에서의 교차 계정 데이터 공유 섹션을 참조하세요.

리소스 유형별 Lake Formation 권한

다음은 각 리소스 유형에 사용할 수 있는 유효한 Lake Formation 권한입니다.

Resource 권한
Database ALL (Super)
ALTER
CREATE_TABLE
DESCRIBE
DROP
Table ALL (Super)
ALTER
DELETE
DESCRIBE
DROP
INSERT
SELECT
View ALL (Super)
SELECT
DESCRIBE
DROP
Data Catalog CREATE_DATABASE
Amazon S3 location DATA_LOCATION_ACCESS
LF-Tags DROP
ALTER
LF-Tag values ASSOCIATE
DESCRIBE
GrantWithLFTagExpression
LF-Tag policy - Database ALL (Super)
ALTER
CREATE_TABLE
DESCRIBE
DROP
LF-Tag policy - Table ALL (Super)
ALTER
DESCRIBE
DELETE
DROP
INSERT
SELECT
Resource link - Database or Table DESCRIBE
DROP
Table with data filters DESCRIBE
DROP
SELECT
Table with column filter SELECT

Lake Formation 권한 부여 및 취소 명령 AWS CLI

이 섹션의 각 권한 설명에는 명령을 사용하여 권한을 부여하는 예가 포함되어 있습니다. AWS CLI 다음은 레이크 포메이션 (Lake Formationgrant-permissions) 의 개요와 명령입니다. revoke-permissions AWS CLI

grant-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
revoke-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

이러한 명령에 대한 자세한 설명은AWS CLI 명령 참조의 grant-permissionsrevoke-permissions를 참조하세요. 이 섹션에서는 --principal 옵션에 대한 추가 정보를 제공합니다.

--principal 옵션의 값은 다음 중 하나입니다.

  • (IAM) 사용자 또는 역할의 Amazon 리소스 이름 AWS Identity and Access Management (ARN)

  • Microsoft Active Directory Federation Service(AD FS)와 같은 SAML 공급자를 통해 인증하는 사용자 또는 그룹의 ARN

  • 아마존 QuickSight 사용자 또는 그룹을 위한 ARN

  • 교차 계정 권한의 경우 AWS 계정 ID, 조직 ID 또는 조직 단위 ID

다음은 모든 --principal 유형의 구문과 예제입니다.

보안 주체가 IAM 사용자임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<user-name>

예제

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1
보안 주체가 IAM 역할임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name>

예제

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole
보안 주체가 SAML 공급자를 통해 인증하는 사용자임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:user/<user-name>

예시:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:user/datalake_user1
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:user/athena-user@example.com
보안 주체가 SAML 공급자를 통해 인증하는 그룹임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:group/<group-name>

예시:

--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group
교장은 Amazon QuickSight 엔터프라이즈 에디션 사용자입니다.

구문:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:user/<namespace>/<user-name>
참고

<namespace>에 대해 default를 지정해야 합니다.

예제

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1
교장은 Amazon QuickSight 엔터프라이즈 에디션 그룹입니다.

구문:

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:group/<namespace>/<group-name>
참고

<namespace>에 대해 default를 지정해야 합니다.

예제

--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists
기본 주체는 AWS 계정입니다.

구문:

--principal DataLakePrincipalIdentifier=<account-id>

예제

--principal DataLakePrincipalIdentifier=111122223333
보안 주체가 조직임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:organization/<organization-id>

예제

--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl
보안 주체가 조직 단위임

구문:

--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:ou/<organization-id>/<organizational-unit-id>

예제

--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij
주체는 IAM ID 센터 자격 증명 사용자 또는 그룹입니다.

예: 사용자

--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/<UserID>

예: 그룹:

--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/<GroupID>
주도자는 IAM 그룹입니다. - IAMAllowedPrincipals

Lake Formation은 데이터 카탈로그의 모든 데이터베이스 및 테이블에 대한 Super 권한을 IAMAllowedPrincipals 기본적으로 호출되는 그룹으로 설정합니다. 이 그룹 권한이 데이터베이스 또는 테이블에 있는 경우 계정의 모든 보안 주체는 에 대한 IAM 보안 보안 정책을 통해 리소스에 액세스할 수 있습니다. AWS Glue이전에 IAM 정책에 의해 보호되었던 데이터 카탈로그 리소스를 보호하기 위해 Lake Formation 권한을 사용하기 시작하면 이전 버전과의 호환성을 제공합니다. AWS Glue

Lake Formation을 사용하여 데이터 카탈로그 리소스에 대한 권한을 관리하는 경우 Lake Formation IAMAllowedPrincipals 권한이 작동하려면 먼저 리소스에 대한 권한을 취소하거나 주체 및 리소스를 하이브리드 액세스 모드로 옵트인해야 합니다.

예제

--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
주도자는 IAM 그룹입니다. - ALLIAMPrincipals

Data Catalog 리소스에서 ALLIAMPrincipals 그룹화할 권한을 부여하면 계정의 모든 보안 주체가 Lake Formation 권한 및 IAM 권한을 사용하여 Data Catalog 리소스에 액세스할 수 있습니다.

예제

--principal DataLakePrincipalIdentifier=123456789012:IAMPrincipals

Lake Formation 권한

이 섹션에는 보안 주체에 부여할 수 있는 사용 가능한 Lake Formation 권한이 포함되어 있습니다.

ALTER

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
ALTER DATABASE glue:UpdateDatabase
ALTER TABLE glue:UpdateTable
ALTER LF-Tag lakeformation:UpdateLFTag

이 권한이 있는 보안 주체는 데이터 카탈로그에 있는 데이터베이스 또는 테이블의 메타데이터를 변경할 수 있습니다. 테이블의 경우 열 스키마를 변경하고 열 파라미터를 추가할 수 있습니다. 메타데이터 테이블이 가리키는 기본 데이터의 열은 변경할 수 없습니다.

변경되는 속성이 등록된 Amazon Simple Storage Service(S3) 위치인 경우, 보안 주체는 새 위치에 대한 데이터 위치 권한을 가지고 있어야 합니다.

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

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'

다음 예제는 retail 데이터베이스의 inventory 테이블에 대한 ALTER 권한을 사용자 datalake_user1에게 부여합니다.

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

CREATE_DATABASE

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
CREATE_DATABASE 데이터 카탈로그 glue:CreateDatabase

이 권한이 있는 보안 주체는 데이터 카탈로그에서 메타데이터 데이터베이스 또는 리소스 링크를 생성할 수 있습니다. 또한 보안 주체는 데이터베이스에 테이블을 생성할 수도 있습니다.

다음 예에서는 1111-2222-3333 계정의 사용자에게 권한을 CREATE_DATABASE 부여합니다. datalake_user1 AWS

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'

보안 주체가 데이터 카탈로그에서 데이터베이스를 생성하는 경우 기본 데이터에 대한 권한은 부여되지 않습니다. 다음과 같은 추가 메타데이터 권한이 부여되며 이러한 권한을 다른 사람에게 부여할 수도 있습니다.

  • 데이터베이스에서 CREATE_TABLE

  • ALTER 데이터베이스

  • DROP 데이터베이스

데이터베이스를 생성할 때 보안 주체는 Amazon S3 위치를 선택적으로 지정할 수 있습니다. 보안 주체에 데이터 위치 권한이 있는지 여부에 따라 CREATE_DATABASE 권한이 모든 경우에 데이터베이스를 생성하기에 충분하지 않을 수 있습니다. 다음 세 가지 경우를 염두에 두어야 합니다.

데이터베이스 생성 사용 사례 필요한 권한
위치 속성이 지정되지 않았습니다. CREATE_DATABASE 권한이면 충분합니다.
위치 속성이 지정되었고 Lake Formation에서 위치를 관리하지 않습니다(위치가 등록되지 않음). CREATE_DATABASE 권한이면 충분합니다.
위치 속성이 지정되었고 Lake Formation에서 위치를 관리합니다(위치가 등록됨). CREATE_DATABASE 권한이 필요하며 지정된 위치에 대한 데이터 위치 권한도 필요합니다.

CREATE_TABLE

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
CREATE_TABLE DATABASE glue:CreateTable

이 권한이 있는 보안 주체는 지정된 데이터베이스 내의 데이터 카탈로그에 메타데이터 테이블 또는 리소스 링크를 생성할 수 있습니다.

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

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'

보안 주체가 데이터 카탈로그에서 테이블을 생성하면 테이블에 대한 모든 Lake Formation 권한이 보안 주체에 부여되며, 이러한 권한을 다른 사용자에게 부여할 수도 있습니다.

교차 계정 보조금

데이터베이스 소유자 계정이 수신자 계정에 CREATE_TABLE 권한을 부여하고 수신자 계정의 사용자가 소유자 계정의 데이터베이스에 테이블을 성공적으로 생성하는 경우 다음 규칙이 적용됩니다.

  • 수신자 계정의 사용자 및 데이터 레이크 관리자는 테이블에 대한 모든 Lake Formation 권한을 가집니다. 해당 계정에 있는 다른 보안 주체에게 테이블에 대한 권한을 부여할 수 있습니다. 소유자 계정이나 다른 계정의 보안 주체에게는 권한을 부여할 수 없습니다.

  • 소유자 계정의 데이터 레이크 관리자는 해당 계정의 다른 보안 주체에게 테이블에 대한 권한을 부여할 수 있습니다.

데이터 위치 권한

Amazon S3 위치를 가리키는 테이블을 생성하려는 경우 데이터 위치 권한이 있는지 여부에 따라 CREATE_TABLE 권한이 테이블을 생성하는 데 충분하지 않을 수 있습니다. 다음 세 가지 경우를 염두에 두어야 합니다.

테이블 생성 사용 사례 필요한 권한
Lake Formation에서 지정 위치를 관리하지 않습니다(위치가 등록되지 않음). CREATE_TABLE 권한이면 충분합니다.
Lake Formation에서 지정 위치를 관리하며(위치가 등록됨), 포함된 데이터베이스에 위치 속성이 없거나 테이블 위치의 Amazon S3 접두사가 아닌 위치 속성이 있습니다. CREATE_TABLE 권한이 필요하며 지정된 위치에 대한 데이터 위치 권한도 필요합니다.
Lake Formation에서 지정 위치를 관리하며(위치가 등록됨), 포함된 데이터베이스에 등록된 위치를 가리키고 테이블 위치의 Amazon S3 접두사인 위치 속성이 있습니다. CREATE_TABLE 권한이면 충분합니다.

DATA_LOCATION_ACCESS

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
DATA_LOCATION_ACCESS Amazon S3 위치 (위치에 대한 Amazon S3 권한. 이 권한은 위치를 등록하는 데 사용되는 역할에 의해 지정되어야 합니다.)

이 권한은 유일한 데이터 위치 권한입니다. 이 권한이 있는 보안 주체는 지정된 Amazon S3 위치를 가리키는 메타데이터 데이터베이스 또는 테이블을 생성할 수 있습니다. 위치를 등록해야 합니다. 위치에 대한 데이터 위치 권한이 있는 보안 주체는 하위 위치에 대한 위치 권한도 갖습니다.

다음 예제는 AWS 계정 1111-2222-3333의 사용자 datalake_user1에게 s3://products/retail에 대한 데이터 위치 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::products/retail"}}'

DATA_LOCATION_ACCESS는 기본 데이터 쿼리 또는 업데이트에는 필요하지 않습니다. 이 권한은 데이터 카탈로그 리소스 생성에만 적용됩니다.

데이터 위치 권한에 대한 자세한 내용은 Underlying data access control 섹션을 참조하세요.

DELETE

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
DELETE TABLE (위치가 등록된 경우 추가 IAM 권한이 필요하지 않습니다.)

이 권한이 있는 보안 주체는 테이블에 지정된 Amazon S3 위치에서 기본 데이터를 삭제할 수 있습니다. 또한 보안 주체는 Lake Formation 콘솔에서 테이블을 보고 AWS Glue API를 사용하여 테이블에 대한 정보를 검색할 수 있습니다.

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

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

이 권한은 Amazon S3의 데이터에만 적용되며 Amazon Relational Database Service(RDS)와 같은 다른 데이터 스토어의 데이터에는 적용되지 않습니다.

DESCRIBE

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
DESCRIBE

테이블 리소스 링크

데이터베이스 리소스 링크

glue:GetTable

glue:GetDatabase

DESCRIBE DATABASE glue:GetDatabase
DESCRIBE TABLE glue:GetTable
DESCRIBE LF-Tag

glue:GetTable

glue:GetDatabase

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

이 권한이 있는 보안 주체는 지정된 데이터베이스, 테이블 또는 리소스 링크를 볼 수 있습니다. 다른 데이터 카탈로그 권한은 암시적으로 부여되지 않으며 데이터 액세스 권한도 암시적으로 부여되지 않습니다. 데이터베이스와 테이블은 통합 서비스의 쿼리 편집기에 표시되지만 다른 Lake Formation 권한(예:SELECT)이 부여되지 않는 한 데이터베이스와 테이블에 대해 쿼리를 수행할 수 없습니다.

예를 들어 데이터베이스에 대한 DESCRIBE 권한이 있는 사용자는 데이터베이스와 모든 데이터베이스 메타데이터(설명, 위치 등)를 볼 수 있습니다. 하지만 데이터베이스에 포함된 테이블을 찾을 수는 없으며 데이터베이스에서 테이블을 삭제, 변경 또는 생성할 수 없습니다. 마찬가지로 테이블에 대한 DESCRIBE 권한이 있는 사용자는 테이블과 테이블 메타데이터(설명, 스키마, 위치 등)를 볼 수 있지만 테이블을 삭제, 변경하거나 테이블에 대해 쿼리를 실행할 수 없습니다.

다음은 DESCRIBE에 대한 몇 가지 추가 규칙입니다.

  • 사용자에게 데이터베이스, 테이블 또는 리소스 링크에 대한 다른 Lake Formation 권한이 있는 경우 DESCRIBE 권한이 암시적으로 부여됩니다.

  • 사용자가 테이블 열의 하위 집합에 대해서만 SELECT 권한이 있는 경우(부분 SELECT) 사용자는 해당 열만 볼 수 있도록 제한됩니다.

  • 테이블에 대해 부분 선택 권한이 있는 사용자에게는 DESCRIBE 권한을 부여할 수 없습니다. 반대로 DESCRIBE 권한이 부여된 테이블에 대해서는 열 포함 또는 제외 목록을 지정할 수 없습니다.

다음 예에서는 계정 inventory-link 1111-2222-3333에 있는 데이터베이스의 테이블 리소스 datalake_user1 링크에 대한 DESCRIBE 권한을 사용자에게 부여합니다. retail AWS

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

DROP

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
DROP DATABASE glue:DeleteDatabase
DROP TABLE glue:DeleteTable
DROP LF-Tag lakeformation:DeleteLFTag
DROP

데이터베이스 리소스 링크

테이블 리소스 링크

glue:DeleteDatabase

glue:DeleteTable

이 권한이 있는 보안 주체는 데이터 카탈로그에서 데이터베이스, 테이블 또는 리소스 링크를 삭제할 수 있습니다. 외부 계정 또는 조직에 데이터베이스에 대한 DROP 권한을 부여할 수 없습니다.

주의

데이터베이스를 삭제하면 데이터베이스의 모든 테이블이 삭제됩니다.

다음 예에서는 DROP 1111-2222-3333 계정의 데이터베이스에 datalake_user1 대한 권한을 사용자에게 부여합니다. retail AWS

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'

다음 예제는 retail 데이터베이스의 inventory 테이블에 대한 DROP 권한을 사용자 datalake_user1에게 부여합니다.

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

다음 예제는 retail 데이터베이스의 테이블 리소스 링크 inventory-link에 대한 DROP 권한을 사용자 datalake_user1에게 부여합니다.

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

INSERT

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
INSERT TABLE (위치가 등록된 경우 추가 IAM 권한이 필요하지 않습니다.)

이 권한이 있는 보안 주체는 테이블에 지정된 Amazon S3 위치에서 기본 데이터를 삽입하고, 업데이트하고, 읽을 수 있습니다. 또한 보안 주체는 Lake Formation 콘솔에서 테이블을 보고 AWS Glue API를 사용하여 테이블에 대한 정보를 검색할 수 있습니다.

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

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

이 권한은 Amazon S3의 데이터에만 적용되며 Amazon RDS와 같은 다른 데이터 스토어의 데이터에는 적용되지 않습니다.

SELECT

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
SELECT
  • TABLE

(위치가 등록된 경우 추가 IAM 권한이 필요하지 않습니다.)

이 권한이 있는 보안 주체는 데이터 카탈로그의 테이블을 볼 수 있으며 테이블에 지정된 위치에서 Amazon S3의 기본 데이터를 쿼리할 수 있습니다. 보안 주체는 Lake Formation 콘솔에서 테이블을 보고 AWS Glue API를 사용하여 테이블에 대한 정보를 검색할 수 있습니다. 이 권한이 부여되었을 때 열 필터링이 적용된 경우 보안 주체는 포함된 열의 메타데이터만 볼 수 있고 포함된 열의 데이터만 쿼리할 수 있습니다.

참고

쿼리를 처리할 때 열 필터링을 적용하는 것은 통합 분석 서비스의 책임입니다.

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

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

이 권한은 Amazon S3의 데이터에만 적용되며 Amazon RDS와 같은 다른 데이터 스토어의 데이터에는 적용되지 않습니다.

선택적 포함 목록 또는 제외 목록을 사용하여 특정 열을 필터링(액세스 제한)할 수 있습니다. 포함 목록은 액세스할 수 있는 열을 지정합니다. 제외 목록은 액세스할 수 없는 열을 지정합니다. 포함 또는 제외 목록이 없는 경우 모든 테이블 열에 액세스할 수 있습니다.

glue:GetTable의 결과는 호출자가 볼 수 있는 권한이 있는 열만 반환합니다. Amazon Athena 및 Amazon Redshift와 같은 통합 서비스는 열 포함 및 제외 목록을 고려합니다.

다음 예제는 포함 목록을 사용하여 inventory 테이블의 사용자 datalake_user1에게 SELECT 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnNames": ["prodcode","location","period","withdrawals"]}}'

다음 예제는 제외 목록을 사용하여 inventory 테이블에 대한 SELECT 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnWildcard": {"ExcludedColumnNames": ["intkey", "prodcode"]}}}'

SELECT 권한에 적용되는 제한은 다음과 같습니다.

  • SELECT 권한을 부여할 때 열 필터링이 적용된 경우에는 권한 부여 옵션을 포함할 수 없습니다.

  • 파티션 키인 열에 대한 액세스 제어를 제한할 수 없습니다.

  • 테이블의 열 하위 집합에 대한 SELECT 권한이 있는 보안 주체는 해당 테이블에 대한 ALTER, DROP, DELETE 또는 INSERT 권한을 부여받을 수 없습니다. 마찬가지로, 테이블에 대해 ALTER, DROP, DELETE 또는 INSERT 권한이 있는 보안 주체에게는 열 필터링이 포함된 SELECT 권한을 부여할 수 없습니다.

SELECT 권한은 항상 Lake Formation 콘솔의 데이터 권한 페이지에 별도의 행으로 표시됩니다. 다음 이미지는 inventory 테이블의 모든 열에 대해 datalake_user2datalake_user3 사용자에게 SELECT 권한이 부여되었음을 보여줍니다.


            데이터 권한 페이지에는 사용자 datalake_user1 및 인벤토리 테이블에 대한 두 개의 행이 표시됩니다. 첫 번째 행에는 리소스 유형이 테이블인 삭제 및 삽입 권한이 나열되어 있고, 두 번째 행에는 리소스 유형이 열인 선택 권한이 나열되어 있습니다. 리소스는 retail.inventory.*로 표시됩니다.

Super

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
Super DATABASE glue:*Database*
Super TABLE glue:*Table*, glue:*Partition*

이 권한을 통해 보안 주체는 데이터베이스 또는 테이블에서 지원되는 모든 Lake Formation 작업을 수행할 수 있습니다. 외부 계정에 데이터베이스에 대해서는 Super 권한을 부여할 수 없습니다.

이 권한은 다른 Lake Formation 권한과 공존할 수 있습니다. 예를 들어 메타데이터 테이블에 대한 Super, SELECTINSERT 권한을 부여할 수 있습니다. 그러면 보안 주체는 테이블에서 지원되는 모든 작업을 수행할 수 있습니다. Super 권한을 취소하면 SELECTINSERT 권한은 그대로 유지되며 보안 주체는 선택 및 삽입 작업만 수행할 수 있습니다.

Super 권한을 개별 보안 주체에 부여하는 대신 그룹 IAMAllowedPrincipals에 부여할 수 있습니다. IAMAllowedPrincipals 그룹은 자동으로 생성되며 IAM 정책에 따라 데이터 카탈로그 리소스에 대한 액세스가 허용된 모든 IAM 사용자 및 역할을 포함합니다. Super 권한이 데이터 카탈로그 리소스에 대해 IAMAllowedPrincipals에 부여되면 리소스에 대한 액세스는 IAM 정책에 의해서만 효과적으로 제어됩니다.

Lake Formation 콘솔의 설정 페이지에 있는 옵션을 활용하여 새 카탈로그 리소스에 대한 Super 권한을 자동으로 부여할 수 있습니다. IAMAllowedPrincipals


            데이터 카탈로그 설정 대화 상자에는 '새로 생성된 데이터베이스 및 테이블에 대한 기본 사용 권한'이라는 부제가 있으며 텍스트에 설명된 두 개의 확인란이 있습니다.
  • 모든 새 데이터베이스에 대해 Super 권한을 IAMAllowedPrincipals에 부여하려면 새 데이터베이스에 대해 IAM 액세스 제어만 사용을 선택합니다.

  • 새 데이터베이스의 모든 새 테이블에 대해 Super 권한을 IAMAllowedPrincipals에 부여하려면 새 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용을 선택합니다.

    참고

    이 옵션을 사용하면 데이터베이스 생성 대화 상자에서 이 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용 확인란이 기본적으로 선택됩니다. 그 외의 변화는 없습니다. 이것은 IAMAllowedPrincipalsSuper 권한을 부여할 수 있는 데이터베이스 생성 대화 상자의 확인란입니다.

이러한 설정 페이지 옵션은 기본적으로 활성화되어 있습니다. 자세한 내용은 다음 자료를 참조하십시오.

ASSOCIATE

권한 부여 대상 리소스 피부여자에게 필요한 추가 권한
ASSOCIATE LF-Tag

glue:GetDatabase

glue:GetTable

lakeformation:AddLFTagsToResource"

lakeformation:RemoveLFTagsFromResource"

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

LF 태그에 대해 이 권한이 있는 보안 주체는 LF 태그를 데이터 카탈로그 리소스에 할당할 수 있습니다. ASSOCIATE 권한을 부여하면 암시적으로 DESCRIBE 권한이 부여됩니다.

이 예제는 사용자 datalake_user1에게 module 키를 가진 LF 태그에 대한 ASSOCIATE 권한을 부여합니다. 별표(*)로 표시된 대로 해당 키의 모든 값을 보고 할당할 수 있는 권한을 부여합니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'