

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

# S3 Tables 통합에 대한 액세스 제어 변경
<a name="manage-s3tables-catalog-integration"></a>

Amazon S3 Tables를와 통합한 후 카탈로그 리소스에 대한 액세스를 제어하는 방법을 변경할 AWS Glue Data Catalog수 있습니다. 이 섹션에서는 현재 및 원하는 액세스 제어 모델에 따라 액세스 제어를 변경하는 방법을 설명합니다. Lake Formation을 활성화하면 Lake Formation 권한 부여를 통해 열 수준 및 행 수준 보안과 같은 세분화된 권한을 사용할 수 있으며 Lake Formation은 등록된 역할을 통해 보안 주체를 대신하여 임시 자격 증명을 제공할 수 있습니다. 액세스 제어를에서 IAM AWS Lake Formation 으로 변경하면 표준 IAM 정책에 대한 액세스 제어가 반환되며, 이는 워크로드에 세분화된 액세스가 필요하지 않고 IAM을 통해 권한을 완전히 관리하는 것이 좋습니다. 두 마이그레이션 경로 모두 데이터 카탈로그 기본값을 업데이트하고, Lake Formation을 사용하여 리소스 등록을 조정하고, 전환 중에 액세스 중단을 방지하기 위해 권한 부여를 조정합니다.

**Topics**
+ [데이터 카탈로그와 S3 Tables 통합을 통해 Lake Formation 활성화](change-access-iam-to-lf.md)
+ [액세스 제어를에서 IAM AWS Lake Formation 으로 변경](change-access-lf-to-iam.md)

# 데이터 카탈로그와 S3 Tables 통합을 통해 Lake Formation 활성화
<a name="change-access-iam-to-lf"></a>

이 섹션에서는와 통합된 Amazon S3 Tables에 대한 AWS Lake Formation 권한 부여를 사용하여 IAM 권한에서 IAM으로 액세스 제어를 마이그레이션하는 워크플로를 설명합니다 AWS Glue Data Catalog.

**중요**  
 AWS Lake Formation 액세스 제어를 활성화하면 S3 Tables 리소스에 대한 기존 IAM 기반 액세스가 모두 취소됩니다. 1단계를 완료한 후 이전에 IAM 권한을 통해 데이터에 액세스한 사용자 및 역할은 즉시 액세스 권한을 잃게 됩니다. 사용자가 데이터를 다시 쿼리하려면 먼저 2단계에서 Lake Formation 권한을 부여해야 합니다. 유지 관리 기간 동안이 마이그레이션을 계획하고 데이터 팀과 조정하세요.

## 사전 조건
<a name="w2aac13c29b7b7"></a>

S3 테이블에 대한 읽기/쓰기 액세스의 경우 Lake Formation 권한 외에도 보안 주체에게 `lakeformation:GetDataAccess` IAM 권한도 필요합니다. 이 권한을 통해 Lake Formation은 데이터에 액세스하기 위한 임시 보안 인증 요청을 승인합니다.

## 사용 AWS CLI
<a name="w2aac13c29b7b9"></a>

1. **1단계: IAM 역할을 사용하여 Lake Formation에 버킷 등록**

   Lake Formation에 S3 Tables 리소스를 등록합니다.
**참고**  
기존 역할이 있는 경우 하이브리드 액세스가 false인지 확인합니다.

   ```
   aws lakeformation register-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*" \
     --role-arn "arn:aws:iam::AWSAccountID:role/service-role/LFAccessRole" \
     --with-federation
   ```

1. **2단계: AWS Glue 카탈로그를 업데이트하여 Lake Formation 액세스 제어 활성화**

   카탈로그를 빈 `CreateDatabaseDefaultPermissions` 및 `CreateTableDefaultPermissions` (로 설정`[]`)로 업데이트하고를 `OverwriteChildResourcePermissionsWithDefault`로 설정합니다`Accept`. 이렇게 하면 기존의 모든 하위 리소스에서 IAM 기반 액세스가 제거되고 카탈로그와 해당 객체를 Lake Formation 권한 부여를 사용하여 관리할 수 있습니다.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [],
       "CreateTableDefaultPermissions": [],
       "OverwriteChildResourcePermissionsWithDefault": "Accept",
       "AllowFullTableExternalDataAccess": "True"
     }'
   ```

1. **3단계: 데이터 팀에 Lake Formation 권한 부여**

   액세스 권한이 필요한 보안 주체(역할, 사용자 또는 그룹)에게 Lake Formation 권한을 부여합니다. 예를 들어 역할에 전체 테이블 읽기 액세스 권한을 부여하려면:

   ```
   aws lakeformation grant-permissions \
     --principal DataLakePrincipalIdentifier=arn:aws:iam::AWSAccountID:role/DataTeamRole \
     --resource '{
       "Table": {
           "CatalogId": "AWSAccountID",
           "DatabaseName": "s3tablescatalog/table-bucket-name/namespace",
           "TableWildcard": {}
       }
     }' \
     --permissions "SELECT" "DESCRIBE"
   ```

   필요에 따라 각 보안 주체 및 리소스 조합에 대해 반복합니다.

# 액세스 제어를에서 IAM AWS Lake Formation 으로 변경
<a name="change-access-lf-to-iam"></a>

이 섹션에서는와 통합된 Amazon S3 Tables에 대한 액세스 제어를 AWS Lake Formation 권한 부여에서 IAM 권한으로 변경하는 워크플로를 설명합니다 AWS Glue Data Catalog.

**중요**  
IAM에 대한 권한 AWS Lake Formation 부여에서 액세스 제어를 변경하면 S3 Tables 리소스에 대한 모든 기존 Lake Formation 기반 액세스가 취소됩니다. 2단계를 완료한 후 이전에 Lake Formation 권한 부여를 통해 데이터에 액세스한 사용자 및 역할은 즉시 액세스 권한을 잃게 됩니다. 카탈로그를 업데이트하기 전에 1단계에서 IAM 액세스 권한을 부여해야 합니다. 유지 관리 기간 동안이 마이그레이션을 계획하고 데이터 팀과 조정하세요.

**중요**  
Data Catalog 객체를 사용하는 열 수준 액세스 및 데이터 셀 필터와 같은 세분화된 액세스 제어는 AWS Lake Formation 만 사용할 때 사용할 수 있습니다. 액세스 제어를에서 IAM AWS Lake Formation 으로 마이그레이션하기 전에를 사용하여 기존 Lake Formation 권한 부여를 감사`aws lakeformation list-permissions`하고 동등한 IAM 정책이 사용자에게 필요한 액세스를 제공할 수 있는지 확인합니다. 세분화된 Lake Formation 권한 부여에 의존하는 모든 보안 주체는 액세스 제어를 마이그레이션한 후 전체 테이블 수준 IAM 액세스가 필요합니다.

## 사전 조건
<a name="w2aac13c29b9b9"></a>

시작하기 전에 다음을 확인합니다.
+ 마이그레이션 중인 리소스에 대해 현재 유효한 모든 Lake Formation 권한 부여를 식별했습니다. `aws lakeformation list-permissions --resource-type TABLE`를 실행하여 검토합니다.
+ 영향을 받는 모든 보안 주체에 대해 동등한 액세스를 제공하는 IAM 정책을 준비했습니다.
+ Lake Formation에 등록된 IAM 역할에는 여전히가 있습니다`lakeformation:GetDataAccess`(하이브리드 전환 기간 동안 필요).

## 사용 AWS CLI
<a name="w2aac13c29b9c11"></a>

1. **1단계: 보안 주체에 IAM 권한 부여**

   액세스 권한이 필요한 사용자 또는 역할에 IAM 정책을 연결합니다. 정책에는 AWS Glue 메타데이터 권한과 S3 Tables 데이터 권한이 모두 포함되어야 합니다.
**참고**  
다음 예제 정책은 읽기 액세스 권한만 제공합니다.

   ```
   aws iam put-user-policy \
     --user-name GlueIAMAccessUser \
     --policy-name S3TablesIAMAccessPolicy \
     --policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "GlueMetadataAccess",
               "Effect": "Allow",
               "Action": [
                   "glue:GetCatalog",
                   "glue:GetDatabase",
                   "glue:GetTable"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:AWSAccountID:catalog/s3tablescatalog",
                   "arn:aws:glue:us-east-1:AWSAccountID:database/s3tablescatalog/table-bucket-name/namespace",
                   "arn:aws:glue:us-east-1:AWSAccountID:table/s3tablescatalog/table-bucket-name/namespace/*"
               ]
           },
           {
               "Sid": "S3TablesDataAccess",
               "Effect": "Allow",
               "Action": [
                   "s3tables:GetTableBucket",
                   "s3tables:GetTable",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name",
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name/table/*"
               ]
           }
       ]
     }'
   ```

   계속하기 전에 영향을 받는 모든 사용자 및 역할이 IAM 자격 증명을 사용하여 예상 테이블에 액세스할 수 있는지 확인합니다.

1. **2단계: 카탈로그를 업데이트하여 IAM 기본 권한 복원**

   카탈로그를 업데이트하여 `ALL`에 `CreateDatabaseDefaultPermissions`를 `CreateTableDefaultPermissions` 부여합니다`IAM_ALLOWED_PRINCIPALS`. 변경 사항이 새로 생성된 리소스뿐만 아니라 기존의 모든 하위 리소스로 전파`Accept`되도록 `OverwriteChildResourcePermissionsWithDefault`로 설정합니다.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "CreateTableDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "OverwriteChildResourcePermissionsWithDefault": "Accept"
     }'
   ```

1. **3단계: Lake Formation에서 리소스 등록 취소**

   모든 액세스가 IAM 정책을 통해 작동하고 있고 Lake Formation 권한 부여에 의존하는 보안 주체가 없음을 확인한 후에는 Lake Formation에서 리소스 등록을 취소하여 마이그레이션을 완료할 수 있습니다.

   ```
   aws lakeformation deregister-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*"
   ```
**참고**  
리소스를 등록 취소한 후 더 이상 필요하지 않은 IAM 보안 주체`lakeformation:GetDataAccess`에서를 제거합니다.

`revoke-permissions` 단계가 필요하지 않습니다.