

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

# Lake Formation 권한 참조
<a name="lf-permissions-reference"></a>

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

Lake Formation 권한을 부여 또는 취소하는 방법에 대한 자세한 내용은 [데이터 카탈로그 리소스에 대한 권한 부여](granting-catalog-permissions.md) 및 [데이터 위치 권한 부여](granting-location-permissions.md) 섹션을 참조하세요.

**참고**  
이 섹션의 예제는 동일한 AWS 계정의 보안 주체에 권한을 부여하는 방법을 보여줍니다. 교차 계정 권한 부여의 예는 [Lake Formation에서의 교차 계정 데이터 공유](cross-account-permissions.md) 섹션을 참조하세요.

## 리소스 유형별 Lake Formation 권한
<a name="lf-resource-permissions-summary"></a>

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

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/lf-permissions-reference.html)

**Topics**
+ [리소스 유형별 Lake Formation 권한](#lf-resource-permissions-summary)
+ [Lake Formation 권한 부여 및 취소 AWS CLI 명령](#perm-command-format)
+ [Lake Formation 권한](#lf-permissions)

## Lake Formation 권한 부여 및 취소 AWS CLI 명령
<a name="perm-command-format"></a>

이 섹션의 각 권한 설명에는 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](https://docs.aws.amazon.com/cli/latest/reference/lakeformation/grant-permissions.html) 및 [revoke-permissions](https://docs.aws.amazon.com/cli/latest/reference/lakeformation/revoke-permissions.html)를 참조하세요.** 이 섹션에서는 `--principal` 옵션에 대한 추가 정보를 제공합니다.

`--principal` 옵션의 값은 다음 중 하나입니다.
+ (IAM) 사용자 또는 역할의 Amazon 리소스 이름 AWS Identity and Access Management (ARN)
+ Microsoft Active Directory Federation Service(AD FS)와 같은 SAML 공급자를 통해 인증하는 사용자 또는 그룹의 ARN
+ Amazon Quick 사용자 또는 그룹의 ARN
+ 교차 계정 권한의 경우 AWS 계정 ID, 조직 ID 또는 조직 단위 ID
+ IAM Identity Center 사용자 또는 그룹의 경우 IAM Identity Center 사용자 또는 그룹 ARN입니다.

다음은 모든 `--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 Quick 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 Quick 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 권한
<a name="lf-permissions"></a>

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

### `ALTER`
<a name="perm-alter"></a>


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

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

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

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

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

**Example**  
다음 예제는 `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`
<a name="perm-create-database"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| CREATE\$1DATABASE | 데이터 카탈로그 | glue:CreateDatabase | 

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

**Example**  
다음 예제에서는 AWS 계정 1111-2222-3333`datalake_user1`의 사용자에게 `CREATE_DATABASE`를 부여합니다.  

```
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\$1DATABASE 권한이면 충분합니다. | 
| 위치 속성이 지정되었고 Lake Formation에서 위치를 관리하지 않습니다(위치가 등록되지 않음). | CREATE\$1DATABASE 권한이면 충분합니다. | 
| 위치 속성이 지정되었고 Lake Formation에서 위치를 관리합니다(위치가 등록됨). | CREATE\$1DATABASE 권한이 필요하며 지정된 위치에 대한 데이터 위치 권한도 필요합니다. | 

### `CREATE_TABLE`
<a name="perm-create-table"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| CREATE\$1TABLE | DATABASE | glue:CreateTable  | 

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

**Example**  
다음 예제에서는 사용자에게 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\$1TABLE 권한이면 충분합니다. | 
| Lake Formation에서 지정 위치를 관리하며(위치가 등록됨), 포함된 데이터베이스에 위치 속성이 없거나 테이블 위치의 Amazon S3 접두사가 아닌 위치 속성이 있습니다. | CREATE\$1TABLE 권한이 필요하며 지정된 위치에 대한 데이터 위치 권한도 필요합니다. | 
| Lake Formation에서 지정 위치를 관리하며(위치가 등록됨), 포함된 데이터베이스에 등록된 위치를 가리키고 테이블 위치의 Amazon S3 접두사인 위치 속성이 있습니다. | CREATE\$1TABLE 권한이면 충분합니다. | 

### `DATA_LOCATION_ACCESS`
<a name="perm-location"></a>


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

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

**Example**  
다음 예제는 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](access-control-underlying-data.md#data-location-permissions) 섹션을 참조하세요.

### `DELETE`
<a name="perm-delete"></a>


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

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

**Example**  
다음 예제에서는 AWS 계정 1111-2222-3333`datalake_user1`의 데이터베이스에 `inventory` 있는 테이블`retail`의 사용자에게 `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`
<a name="perm-describe"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| 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` 권한이 부여된 테이블에 대해서는 열 포함 또는 제외 목록을 지정할 수 없습니다.

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

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

### `DROP`
<a name="perm-drop"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| DROP | DATABASE | glue:DeleteDatabase | 
| DROP | TABLE | glue:DeleteTable  | 
| DROP | LF-Tag | lakeformation:DeleteLFTag  | 
| DROP |  데이터베이스 리소스 링크 테이블 리소스 링크  | `glue:DeleteDatabase` `glue:DeleteTable`  | 

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

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

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

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

**Example**  
다음 예제는 `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"}}'
```

**Example**  
다음 예제는 `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`
<a name="perm-insert"></a>


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

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

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

```
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`
<a name="perm-select"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| SELECT |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/lf-permissions-reference.html)  | (위치가 등록된 경우 추가 IAM 권한이 필요하지 않습니다.) | 

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

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

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

```
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와 같은 통합 서비스는 열 포함 및 제외 목록을 고려합니다.

**Example**  
다음 예제는 포함 목록을 사용하여 `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"]}}'
```

**Example**  
다음 예제는 제외 목록을 사용하여 `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` 권한이 부여되었음을 보여줍니다.

![\[데이터 권한 페이지에는 4개의 행이 표시됩니다. 첫 번째와 세 번째 행은 인벤토리로 표시된 리소스를 가진 리소스 유형이 테이블인 삭제 및 삽입 권한을 나열하고, 두 번째와 네 번째 행은 리소스 유형이 열인 선택 권한을 나열합니다. 리소스는 retail.inventory.*로 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/data-permissions-dialog-select-cross.png)


### `Super`
<a name="perm-super"></a>


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

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

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

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

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

![\[데이터 카탈로그 설정 대화 상자에는 “새로 생성된 데이터베이스 및 테이블에 대한 기본 사용 권한”이라는 부제가 있으며 텍스트에 설명된 두 개의 확인란이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/settings-page.png)

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

이러한 **설정** 페이지 옵션은 기본적으로 활성화되어 있습니다. 자세한 내용은 다음을 참조하세요.
+ [데이터 레이크의 기본 설정 변경](change-settings.md)
+ [AWS Lake Formation 모델로 AWS Glue 데이터 권한 업그레이드](upgrade-glue-lake-formation.md)

### `SUPER_USER`
<a name="perm-super-user"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| Super user | Catalog | glue:GetCatalog  | 

기본 Data Catalog 내의 카탈로그에 있는 특정 보안 주체에만 `Super user` 권한을 부여할 수 있습니다. 기본 카탈로그 또는 데이터베이스 및 테이블과 같은 다른 리소스 유형에 대해서나 외부 계정의 보안 주체를 대상으로 `Super user` 권한을 부여할 수 없습니다. `Super user` 권한을 통해 보안 주체는 부여된 카탈로그 내의 데이터베이스 및 테이블에 대해 지원되는 모든 Lake Formation 작업을 수행할 수 있습니다.

`Super user` 권한을 통해 보안 주체(피부여자)는 카탈로그 내의 리소스(카탈로그, 데이터베이스 및 테이블)에 대해 다음 작업을 수행할 수 있습니다.
+ 카탈로그에 대한 `CREATE_DATABASE`, `DESCRIBE` 권한
+ 카탈로그 내의 모든 데이터베이스에 대한 `DROP`, `ALTER`, `CREATE_TABLE`, `DESCRIBE`(효과적으로 `SUPER`) 권한
+ 카탈로그 내 모든 데이터베이스의 모든 테이블에 대한 `DROP`, `ALTER`, `DESCRIBE`, `SELECT`, `INSERT`, `DELETE`(효과적으로 `SUPER`) 권한
+ 카탈로그 내의 카탈로그에 대한 `All`(효과적으로 SUPER) 권한
+ 카탈로그 내의 모든 카탈로그, 데이터베이스 및 테이블에 대해 부여 가능한(다른 보안 주체에게 이러한 권한을 부여하는 기능) 권한

카탈로그 리소스에 대한 `Super user` 권한이 있는 경우 피부여자는 카탈로그에서 `ALTER` 및 `DROP` 작업을 수행하거나 위임할 수 없습니다.

### `ASSOCIATE`
<a name="perm-associate"></a>


| 권한 | 부여 대상 리소스 | 피부여자에게 필요한 추가 권한 | 
| --- | --- | --- | 
| 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` 권한이 부여됩니다.

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

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