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 Formation grant-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-permissions 및 revoke-permissions를 참조하세요. 이 섹션에서는 --principal
옵션에 대한 추가 정보를 제공합니다.
--principal
옵션의 값은 다음 중 하나입니다.
-
AWS Identity and Access Management IAM 사용자 또는 역할에 대한 Amazon 리소스 이름(ARN)
-
Microsoft Active Directory Federation Service(AD FS)와 같은 SAML 공급자를 통해 인증하는 사용자 또는 그룹의 ARN
-
Amazon 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 Enterprise Edition 사용자임
-
구문:
--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 Enterprise Edition 그룹임
-
구문:
--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 Identity Center ID 사용자 또는 그룹
-
Example:User
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/
<UserID>
Example:Group:
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/
<GroupID>
- 보안 주체 = IAM 그룹 -
IAMAllowedPrincipals
-
Lake Formation은 데이터 카탈로그의 모든 데이터베이스 및 테이블에 대한
Super
권한을 기본적으로IAMAllowedPrincipals
그룹으로 설정합니다. 이 그룹 권한이 데이터베이스 또는 테이블에 존재할 경우 계정의 모든 보안 주체는 AWS Glue에 대한 IAM 보안 주체 정책을 통해 리소스에 액세스할 수 있습니다. Lake Formation 권한을 사용하여 이전에 AWS Glue에 대한 IAM 정책으로 보호된 데이터 카탈로그 리소스를 보호할 때 이전 버전과의 호환성을 제공합니다.Lake Formation을 사용하여 데이터 카탈로그 리소스에 대한 권한을 관리할 경우 먼저 리소스에 대한
IAMAllowedPrincipals
권한을 취소하거나 Lake Formation 권한이 작동하도록 보안 주체 및 리소스를 하이브리드 액세스 모드로 선택해야 합니다.예시
--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
- 보안 주체 = IAM 그룹 -
ALLIAMPrincipals
-
ALLIAMPrincipals
그룹에 데이터 카탈로그 리소스에 대한 권한을 부여하면 계정의 모든 보안 주체는 Lake Formation 권한 및 IAM 권한을 사용하여 데이터 카탈로그 리소스에 액세스할 수 있습니다.예시
--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) 위치인 경우, 보안 주체는 새 위치에 대한 데이터 위치 권한을 가지고 있어야 합니다.
다음 예제는 AWS 계정 1111-2222-3333의 retail
데이터베이스에 대한 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 |
이 권한이 있는 보안 주체는 데이터 카탈로그에서 메타데이터 데이터베이스 또는 리소스 링크를 생성할 수 있습니다. 또한 보안 주체는 데이터베이스에 테이블을 생성할 수도 있습니다.
다음 예제는 AWS 계정 1111-2222-3333에서 CREATE_DATABASE
권한을 사용자 datalake_user1
에게 부여합니다.
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
|
이 권한이 있는 보안 주체는 지정된 데이터베이스 내의 데이터 카탈로그에 메타데이터 테이블 또는 리소스 링크를 생성할 수 있습니다.
다음 예제는 AWS 계정 1111-2222-3333의 retail
데이터베이스에서 테이블을 생성할 수 있는 권한을 사용자 datalake_user1
에게 부여합니다.
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를 사용하여 테이블에 대한 정보를 검색할 수 있습니다.
다음 예제는 AWS 계정 1111-2222-3333의 데이터베이스 retail
에 있는 테이블 inventory
에 대한 DELETE
권한을 사용자 datalake_user1
에게 부여합니다.
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 |
테이블 리소스 링크 데이터베이스 리소스 링크 |
|
DESCRIBE |
DATABASE |
glue:GetDatabase |
DESCRIBE |
TABLE |
glue:GetTable |
DESCRIBE |
LF-Tag |
|
이 권한이 있는 보안 주체는 지정된 데이터베이스, 테이블 또는 리소스 링크를 볼 수 있습니다. 다른 데이터 카탈로그 권한은 암시적으로 부여되지 않으며 데이터 액세스 권한도 암시적으로 부여되지 않습니다. 데이터베이스와 테이블은 통합 서비스의 쿼리 편집기에 표시되지만 다른 Lake Formation 권한(예:SELECT
)이 부여되지 않는 한 데이터베이스와 테이블에 대해 쿼리를 수행할 수 없습니다.
예를 들어 데이터베이스에 대한 DESCRIBE
권한이 있는 사용자는 데이터베이스와 모든 데이터베이스 메타데이터(설명, 위치 등)를 볼 수 있습니다. 하지만 데이터베이스에 포함된 테이블을 찾을 수는 없으며 데이터베이스에서 테이블을 삭제, 변경 또는 생성할 수 없습니다. 마찬가지로 테이블에 대한 DESCRIBE
권한이 있는 사용자는 테이블과 테이블 메타데이터(설명, 스키마, 위치 등)를 볼 수 있지만 테이블을 삭제, 변경하거나 테이블에 대해 쿼리를 실행할 수 없습니다.
다음은 DESCRIBE
에 대한 몇 가지 추가 규칙입니다.
-
사용자에게 데이터베이스, 테이블 또는 리소스 링크에 대한 다른 Lake Formation 권한이 있는 경우
DESCRIBE
권한이 암시적으로 부여됩니다. -
사용자가 테이블 열의 하위 집합에 대해서만
SELECT
권한이 있는 경우(부분SELECT
) 사용자는 해당 열만 볼 수 있도록 제한됩니다. -
테이블에 대해 부분 선택 권한이 있는 사용자에게는
DESCRIBE
권한을 부여할 수 없습니다. 반대로DESCRIBE
권한이 부여된 테이블에 대해서는 열 포함 또는 제외 목록을 지정할 수 없습니다.
다음 예제는 AWS 계정 1111-2222-3333의 데이터베이스 retail
에 있는 테이블 리소스 링크 inventory-link
에 대한 DESCRIBE
권한을 사용자 datalake_user1
에게 부여합니다.
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 |
데이터베이스 리소스 링크 테이블 리소스 링크 |
|
이 권한이 있는 보안 주체는 데이터 카탈로그에서 데이터베이스, 테이블 또는 리소스 링크를 삭제할 수 있습니다. 외부 계정 또는 조직에 데이터베이스에 대한 DROP 권한을 부여할 수 없습니다.
주의
데이터베이스를 삭제하면 데이터베이스의 모든 테이블이 삭제됩니다.
다음 예제는 AWS 계정 1111-2222-3333의 retail
데이터베이스에 대한 DROP
권한을 사용자 datalake_user1
에게 부여합니다.
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를 사용하여 테이블에 대한 정보를 검색할 수 있습니다.
다음 예제는 AWS 계정 1111-2222-3333의 retail
데이터베이스에 있는 inventory
테이블에 대한 INSERT
권한을 사용자 datalake_user1
에게 부여합니다.
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 |
|
(위치가 등록된 경우 추가 IAM 권한이 필요하지 않습니다.) |
이 권한이 있는 보안 주체는 데이터 카탈로그의 테이블을 볼 수 있으며 테이블에 지정된 위치에서 Amazon S3의 기본 데이터를 쿼리할 수 있습니다. 보안 주체는 Lake Formation 콘솔에서 테이블을 보고 AWS Glue API를 사용하여 테이블에 대한 정보를 검색할 수 있습니다. 이 권한이 부여되었을 때 열 필터링이 적용된 경우 보안 주체는 포함된 열의 메타데이터만 볼 수 있고 포함된 열의 데이터만 쿼리할 수 있습니다.
참고
쿼리를 처리할 때 열 필터링을 적용하는 것은 통합 분석 서비스의 책임입니다.
다음 예제는 AWS 계정 1111-2222-3333의 retail
데이터베이스에 있는 inventory
테이블에 대한 SELECT
권한을 사용자 datalake_user1
에게 부여합니다.
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_user2
및 datalake_user3
사용자에게 SELECT
권한이 부여되었음을 보여줍니다.
Super
권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 |
---|---|---|
Super |
DATABASE |
glue:*Database*
|
Super |
TABLE |
glue:*Table*, glue:*Partition* |
이 권한을 통해 보안 주체는 데이터베이스 또는 테이블에서 지원되는 모든 Lake Formation 작업을 수행할 수 있습니다. 외부 계정에 데이터베이스에 대해서는 Super
권한을 부여할 수 없습니다.
이 권한은 다른 Lake Formation 권한과 공존할 수 있습니다. 예를 들어 메타데이터 테이블에 대한 Super
, SELECT
및 INSERT
권한을 부여할 수 있습니다. 그러면 보안 주체는 테이블에서 지원되는 모든 작업을 수행할 수 있습니다. Super
권한을 취소하면 SELECT
및 INSERT
권한은 그대로 유지되며 보안 주체는 선택 및 삽입 작업만 수행할 수 있습니다.
Super
권한을 개별 보안 주체에 부여하는 대신 그룹 IAMAllowedPrincipals
에 부여할 수 있습니다. IAMAllowedPrincipals
그룹은 자동으로 생성되며 IAM 정책에 따라 데이터 카탈로그 리소스에 대한 액세스가 허용된 모든 IAM 사용자 및 역할을 포함합니다. Super
권한이 데이터 카탈로그 리소스에 대해 IAMAllowedPrincipals
에 부여되면 리소스에 대한 액세스는 IAM 정책에 의해서만 효과적으로 제어됩니다.
Lake Formation 콘솔의 설정 페이지에 있는 옵션을 활용하여 새 카탈로그 리소스에 대해 Super
권한이 IAMAllowedPrincipals
에 자동으로 부여되도록 할 수 있습니다.
-
모든 새 데이터베이스에 대해
Super
권한을IAMAllowedPrincipals
에 부여하려면 새 데이터베이스에 대해 IAM 액세스 제어만 사용을 선택합니다. -
새 데이터베이스의 모든 새 테이블에 대해
Super
권한을IAMAllowedPrincipals
에 부여하려면 새 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용을 선택합니다.참고
이 옵션을 사용하면 데이터베이스 생성 대화 상자에서 이 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용 확인란이 기본적으로 선택됩니다. 그 외의 변화는 없습니다. 이것은
IAMAllowedPrincipals
에Super
권한을 부여할 수 있는 데이터베이스 생성 대화 상자의 확인란입니다.
이러한 설정 페이지 옵션은 기본적으로 활성화되어 있습니다. 자세한 내용은 다음 자료를 참조하세요.
ASSOCIATE
권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 |
---|---|---|
ASSOCIATE |
LF-Tag |
|
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":["*"]}}'