

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

# AWS Glue Data Catalog 및와 Amazon S3 Tables 통합 AWS Lake Formation
<a name="create-s3-tables-catalog"></a>

[Amazon S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html)는 분석 워크로드에 특별히 최적화된 S3 스토리지를 제공하여 쿼리 성능을 개선하는 동시에 비용을 절감합니다. S3 Tables의 데이터는 테이블을 하위 리소스로 저장하는 테이블 *버킷*이라는 새 버킷 유형에 저장됩니다. S3 Tables에는 Apache Iceberg 표준이 기본적으로 지원되므로 Apache Spark와 같이 널리 사용되는 쿼리 엔진으로 Amazon S3 Tables 버킷의 테이블 형식 데이터를 쉽게 쿼리할 수 있습니다.

IAM 액세스 제어를 AWS Glue Data Catalog 사용하거나 IAM 및 Lake Formation 권한 부여를 사용하여 Amazon S3 테이블을와 통합할 수 있습니다.
+ **IAM 액세스 제어**: IAM 정책을 사용하여 S3 테이블 및 데이터 카탈로그에 대한 액세스를 제어합니다. 이 액세스 제어 접근 방식에서는 리소스에 액세스하려면 S3 Tables 리소스와 Data Catalog 객체 모두에 대한 IAM 권한이 필요합니다.
+ **Lake Formation 액세스 제어**: 데이터 카탈로그를 통해 S3 테이블에 대한 액세스를 제어하는 AWS Glue IAM 권한 외에도 AWS Lake Formation 권한 부여를 사용합니다. 이 모드에서 보안 주체는 데이터 카탈로그와 상호 작용하기 위해 IAM 권한이 필요하며 Lake Formation 권한 부여는 보안 주체가 액세스할 수 있는 카탈로그 리소스(데이터베이스, 테이블, 열, 행)를 결정합니다. 이 모드는 대략적인 액세스 제어(데이터베이스 수준 및 테이블 수준 권한 부여)와 세밀한 액세스 제어(열 수준 및 행 수준 보안) 모두 지원합니다. 등록된 역할이 구성되고 자격 증명 벤딩이 활성화된 경우 Lake Formation은 등록된 역할을 사용하여 보안 주체를 대신하여 자격 증명을 제공하므로 보안 주체에 대해 S3 Tables IAM 권한이 필요하지 않습니다. Lake Formation 액세스 제어는 타사 분석 엔진의 자격 증명 벤딩도 지원합니다.

이 섹션에서는 다음 시나리오에 AWS Lake Formation 대해 와의 통합을 구성하는 지침을 제공합니다.
+ **시나리오 A**: IAM 액세스 제어를 사용하여 S3 테이블과 데이터 카탈로그를 통합했으며 이제 사용할 계획입니다 AWS Lake Formation. 자세한 내용은 [S3 Tables 통합에 대한 액세스 제어 변경](manage-s3tables-catalog-integration.md) 섹션을 참조하세요.
+ **시나리오 B**:를 사용하여 S3 테이블과 데이터 카탈로그를 통합할 계획 AWS Lake Formation 이며 오늘은 계정과 리전에 통합하지 않습니다. [Amazon S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하기 위한 사전 조건](s3tables-catalog-prerequisites.md) 섹션부터 시작하여를 따릅니다[Amazon S3 Tables 통합 활성화](enable-s3-tables-catalog-integration.md).
+ **시나리오 C**:를 사용하여 S3 테이블과 데이터 카탈로그를 통합 AWS Lake Formation 했으며 이제 IAM을 사용할 계획입니다. 자세한 내용은 [S3 Tables 통합에 대한 액세스 제어 변경](manage-s3tables-catalog-integration.md) 섹션을 참조하세요.

 AWS Glue Data Catalog 및 [테이블 리소스에 액세스하고 AWS 분석 서비스를 사용할 수 있는 적절한 권한이 있도록 S3 테이블을 분석 서비스와 통합](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)의 단계를 따라야 합니다. AWS 

**Topics**
+ [Data Catalog와 Lake Formation 통합의 작동 방식](#w2aac13c27c19)
+ [Amazon S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하기 위한 사전 조건](s3tables-catalog-prerequisites.md)
+ [Amazon S3 Tables 통합 활성화](enable-s3-tables-catalog-integration.md)
+ [S3 Tables 카탈로그에서 데이터베이스 및 테이블 생성](create-databases-tables-s3-catalog.md)
+ [다른 AWS 계정에 Amazon S3 테이블 버킷 등록](register-cross-account-s3-table-bucket.md)
+ [권한 부여](s3-tables-grant-permissions.md)

## Data Catalog와 Lake Formation 통합의 작동 방식
<a name="w2aac13c27c19"></a>

S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하면 AWS Glue 서비스가 AWS 리전에 대한 계정의 기본 Data Catalog에 `s3tablescatalog`라는 단일 페더레이션 카탈로그를 생성합니다. 통합은 계정 및 페더레이션 카탈로그 AWS 리전 의 모든 Amazon S3 테이블 버킷 리소스를 다음과 같은 방식으로 매핑합니다.
+ Amazon S3 Tables 버킷은 Data Catalog에서 다단계 카탈로그가 됩니다.
+ 연결된 Amazon S3 네임스페이스는 Data Catalog에 데이터베이스로 등록됩니다.
+ 테이블 버킷의 Amazon S3 Tables는 Data Catalog의 테이블이 됩니다.

![\[S3 Tables와 간의 객체 매핑 AWS Glue Data Catalog.\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/S3Tables-glue-catalog.png)


 Lake Formation과 통합한 후 테이블 버킷 카탈로그에서 Apache Iceberg 테이블을 생성하고 Amazon Athena Amazon EMR 및 타사 AWS 분석 엔진과 같은 통합 분석 엔진을 통해 액세스할 수 있습니다.

통합을 통해 Lake Formation을 활성화하면를 통해 세분화된 액세스 제어가 가능합니다 AWS Lake Formation. 이 보안 접근 방식은 (IAM) 권한 외에도 AWS Identity and Access Management 테이블에 대한 Lake Formation 권한을 IAM 보안 주체에 부여해야 작업할 수 있습니다.

 AWS Lake Formation에는 다음과 같은 두 가지 주요 권한 유형이 있습니다.
+ 메타데이터 액세스 권한은 Data Catalog에서 메타데이터 데이터베이스 및 테이블을 생성하고, 읽고, 업데이트하고, 삭제할 수 있는 기능을 제어합니다.
+ 기본 데이터 액세스 권한은 Data Catalog 리소스가 가리키는 기본 Amazon S3 위치에 데이터를 읽고 쓰는 기능을 제어합니다.

Lake Formation은 자체 권한 모델과 IAM 권한 모델의 조합을 사용하여 Data Catalog 리소스 및 기본 데이터에 대한 액세스를 제어합니다.
+ Data Catalog 리소스 또는 기본 데이터에 대한 액세스 요청이 성공하려면 요청이 IAM과 Lake Formation의 권한 검사를 모두 통과해야 합니다.
+ IAM 권한은 Lake Formation 및 AWS Glue APIs 및 리소스에 대한 액세스를 제어하는 반면, Lake Formation 권한은 데이터 카탈로그 리소스, Amazon S3 위치 및 기본 데이터에 대한 액세스를 제어합니다.

Lake Formation 권한은 권한이 부여된 리전에서만 적용되며, 위탁자는 Lake Formation 권한을 부여받으려면 필요한 권한이 있는 데이터 레이크 관리자 또는 다른 위탁자의 승인을 받아야 합니다.

# Amazon S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하기 위한 사전 조건
<a name="s3tables-catalog-prerequisites"></a>

다음은 AWS Glue Data Catalog 및와 Amazon S3 테이블 통합을 활성화하기 위한 사전 조건입니다 AWS Lake Formation.

1.  Amazon S3 Tables 통합을 활성화하면 Lake Formation이 S3 Tables의 위치를 자동으로 등록합니다. Lake Formation에 테이블 버킷 위치를 등록하려면 `lakeformation:RegisterResource`, `lakeformation:RegisterResourceWithPrivilegedAccess`, `lakeformation:CreateCatalog` 권한이 있는 IAM 역할/사용자가 필요합니다. 이러한 권한이 있는 관리자가 아닌 사용자가 카탈로그 위치를 등록하면, Lake Formation은 직접 호출한 보안 주체에게 등록된 데이터 위치에서 지원되는 모든 Lake Formation 작업을 수행할 수 있는 권한을 허용하는 해당 위치의 `DATA_LOCATION_ACCESS` 권한을 자동으로 부여합니다.

1. <a name="step3-permissions"></a> S3 Tables 통합을 활성화할 때는 Lake Formation에서 데이터 액세스를 허용하는 자격 증명을 제공할 IAM 역할을 선택해야 합니다. S3 Table 버킷에 대한 Lake Formation 데이터 액세스를 위한 IAM 역할을 생성합니다. 테이블 버킷을 Lake Formation에 등록할 때 사용하는 IAM 역할에는 다음과 같은 권한이 필요합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:123456789012:bucket/*"
               ]
           }
       ]
   }
   ```

------

   자세한 내용은 [위치를 등록하는 데 사용되는 역할에 대한 요구 사항](registration-role.md) 단원을 참조하십시오.

1.  Lake Formation 서비스가 역할을 수임하고 통합 분석 엔진에 임시 자격 증명을 제공할 수 있도록 IAM 역할에 다음 신뢰 정책을 추가합니다.

   ```
   {
     "Effect": "Allow",
     "Principal": {
       "Service": "lakeformation.amazonaws.com"
     },
     "Action": [
       "sts:AssumeRole",
       "sts:SetSourceIdentity",
       "sts:SetContext"  # add action to trust relationship when using IAM Identity center principals with Lake Formation
     ]
   }
   ```

**참고**  
 AWS 분석 서비스 통합 프로세스가 업데이트되었습니다. 미리 보기 릴리스와의 통합을 설정한 경우 현재 통합을 계속 사용할 수 있습니다. 그러나 업데이트된 통합 프로세스는 성능 향상을 제공합니다. 통합을 업데이트하려면 다음 단계를 따르세요.  
먼저 Lake Formation에서 기존 S3 Tables 카탈로그를 삭제합니다. 카탈로그를 삭제하려면 카탈로그 목록에서 `s3tablescatalog` 카탈로그를 선택하고 **작업**에서 **삭제**를 선택합니다.
그런 다음 `s3tablescatalog`의 데이터 위치를 등록 취소합니다.  
Lake Formation 콘솔의 **관리** 섹션에서 **데이터 위치**를 선택합니다.
위치를 선택하고 **작업** 메뉴에서 **제거**를 선택합니다.
확인 메시지가 표시되면 **제거**를 선택합니다.  
데이터 위치 등록 취소에 대한 자세한 지침은 [Amazon S3 위치 등록 취소](unregister-location.md) 섹션을 참조하세요.
그런 다음 [Amazon S3 Tables 통합 활성화](enable-s3-tables-catalog-integration.md) 섹션의 업데이트된 통합 단계를 따릅니다.

# Amazon S3 Tables 통합 활성화
<a name="enable-s3-tables-catalog-integration"></a>

Amazon S3 콘솔을 사용하여 Amazon S3 Table 버킷을 생성하고 AWS 분석 서비스와 통합할 수 있습니다. 자세한 내용은 [AWS 분석 서비스에서 Amazon S3 Tables 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)을 참조하세요.

 에서 Lake Formation 콘솔을 AWS Lake Formation 사용하여 AWS Glue Data Catalog 및 와의 Amazon S3 Tables 통합을 활성화하거나 AWS Lake Formation를 사용할 수 있습니다 AWS CLI.

## Amazon S3 Tables를 Data Catalog 및 Lake Formation과 통합하려면(콘솔)
<a name="w2aac13c27c23b7b1"></a>

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))을 엽니다.

1. 탐색 창의 **Data Catalog**에서 **카탈로그**를 선택합니다.

1. **카탈로그** 페이지에서 **S3 Table 통합 활성화**를 선택합니다.  
![\[카탈로그 페이지의 S3 Table 통합 활성화 옵션입니다.\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/enable-s3-table-integration.png)

1.  Lake Formation이 분석 쿼리 엔진에 자격 증명을 제공하는 데 필요한 권한이 있는 IAM 역할을 선택합니다. 역할에서 데이터에 액세스하는 데 필요한 권한은 사전 조건 섹션의 [step3-permissions](s3tables-catalog-prerequisites.md#step3-permissions) 섹션을 참조하세요.  
![\[IAM 역할이 있는 S3 통합 활성화 화면입니다.\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/enable-s3-table-catalog.png)

1.  **외부 엔진이 전체 테이블 액세스 권한으로 Amazon S3 위치의 데이터에 액세스하도록 허용** 옵션을 선택합니다. 타사 엔진에 대한 전체 테이블 액세스를 활성화하면 Lake Formation은 IAM 세션 태그 검증을 수행하지 않고 타사 엔진에 직접 자격 증명을 반환합니다. 즉, 액세스 중인 테이블에는 Lake Formation 세분화 액세스 제어를 적용할 수 없습니다.

1. **활성화**를 선택합니다. S3 Tables의 새 카탈로그가 카탈로그 목록에 추가됩니다. S3 Tables 카탈로그 통합을 활성화하면 서비스가 S3 Table 버킷의 데이터 위치를 Lake Formation에 등록합니다.

1. 카탈로그를 선택하여 카탈로그 객체를 보고 다른 보안 주체에게 권한을 부여합니다.  
![\[S3 Table 카탈로그\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/s3-table-catalog.png)

   다단계 카탈로그를 생성하려면 Amazon Simple Storage Service 사용 설명서의 [테이블 버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) 섹션을 참조하세요.

## Amazon S3 Tables를 Data Catalog 및 Lake Formation과 통합하려면(CLI)
<a name="w2aac13c27c23b7b3"></a>

사전 조건 섹션에 따라 Lake Formation이 테이블 리소스에 액세스할 수 있도록 허용하는 IAM 서비스 역할을 생성합니다.

1. 다음 신뢰 정책을 포함하는 `Role-Trust-Policy.json`이라는 파일을 생성합니다.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
         {
           "Sid": "LakeFormationDataAccessPolicy",
           "Effect": "Allow",
           "Principal": {
             "Service": "lakeformation.amazonaws.com"
           },
           "Action": [
               "sts:AssumeRole",
               "sts:SetContext",
               "sts:SetSourceIdentity"
           ],
           "Condition": {
             "StringEquals": {
               "aws:SourceAccount": "111122223333"
             }
           }
         }
       ]
   }
   ```

1. 다음 명령을 사용하여 IAM 서비스 역할을 생성합니다.

   ```
   aws iam create-role \
     --role-name S3TablesRoleForLakeFormation \
     --assume-role-policy-document file://Role-Trust-Policy.json
   ```

1. 다음 신뢰 정책을 포함하는 `LF-GluePolicy.json`이라는 파일을 생성합니다.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
               ]
           }
       ]
   }
   ```

1. 다음 명령을 사용하여 정책을 역할에 연결합니다.

   ```
   aws iam put-role-policy \
     --role-name S3TablesRoleForLakeFormation \
     --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \
     --policy-document file://LF-GluePolicy.json
   ```

1. 다음을 포함하는 `input.json`이라는 파일을 생성합니다.

   ```
   {
       "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
       "WithFederation": true,
       "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation"
   }
   ```

1. 다음 명령을 사용하여 Lake Formation에 테이블 버킷을 등록합니다.

   ```
   aws lakeformation register-resource \
     --region us-east-1 \
     --with-privileged-access \
     --cli-input-json file://input.json
   ```

1. 다음 카탈로그를 포함하는 `catalog.json`이라는 파일을 생성합니다.

   ```
   {
      "Name": "s3tablescatalog",
      "CatalogInput": {
         "FederatedCatalog": {
             "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
             "ConnectionName": "aws:s3tables"
          },
          "CreateDatabaseDefaultPermissions": [],
          "CreateTableDefaultPermissions": [],
          "AllowFullTableExternalDataAccess": "True"
      }
   }
   ```

1. 다음 명령을 사용하여 `s3tablescatalog` 카탈로그를 생성합니다. 이 카탈로그를 생성하면가 테이블 버킷, 네임스페이스 및 테이블에 해당하는 객체 AWS Glue Data Catalog 로 채워집니다.

   ```
   aws glue create-catalog \
     --region us-east-1 \
     --cli-input-json file://catalog.json
   ```

1. 다음 명령을 AWS Glue 사용하여 `s3tablescatalog` 카탈로그가에 추가되었는지 확인합니다.

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

# S3 Tables 카탈로그에서 데이터베이스 및 테이블 생성
<a name="create-databases-tables-s3-catalog"></a>

 데이터베이스를 생성하여 Apache Iceberg 테이블을 구성하고, 테이블을 생성하여 S3 Tables 카탈로그에서 데이터의 스키마와 위치를 정의할 수 있습니다.

## 데이터베이스 생성(콘솔)
<a name="w2aac13c27c25b5b1"></a>

1.  [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 Lake Formation 콘솔을 열고 데이터 레이크 관리자 또는 데이터베이스 생성자로 로그인합니다.

1. 탐색 창의 **데이터 카탈로그**에서 **데이터베이스**를 선택합니다.

1. **데이터베이스 생성**을 선택합니다.

1.  **데이터베이스 생성** 페이지에서 **데이터베이스** 옵션을 선택하고 다음 세부 정보를 입력합니다.
   + **이름** – 데이터베이스의 고유한 이름입니다.
   + **Data Catalog** - S3 Tables 카탈로그를 선택합니다. 데이터베이스는 이 카탈로그에 있습니다.
   + **설명** - (선택 사항) 설명과 위치를 추가합니다.
   + **새 테이블에 대한 IAM 액세스 제어** – 필요한 경우 이 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용을 선택합니다. 이 옵션에 대한 자세한 내용은 [데이터 레이크의 기본 설정 변경](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) 섹션을 참조하세요.
   + **데이터베이스 생성**을 선택합니다. S3 Tables 카탈로그에서 생성된 데이터베이스를 볼 수 있습니다.

## 를 사용하여 데이터베이스 생성 AWS CLI
<a name="w2aac13c27c25b5b3"></a>

다음 CLI 명령은 S3 Tables 카탈로그에서 데이터베이스를 생성하는 방법을 보여줍니다.

```
aws glue create-database 
--region us-east-1 \
--catalog-id "123456789012:s3tablescatalog/test" \
--database-input \
 '{ "Name": "testglueclidbcreation" }'
```

## 테이블 생성(AWS Management Console)
<a name="w2aac13c27c25b5b5"></a>

 Lake Formation 콘솔 또는 API를 사용하여 S3 테이블 카탈로그에서 Apache Iceberg 메타데이터 테이블을 AWS Glue `CreateTable` 생성할 수 있습니다.

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 Lake Formation 콘솔을 열고 데이터 레이크 관리자 또는 `CreateTable` 권한이 있는 사용자로 로그인합니다.

1. 탐색 창의 Data Catalog에서 **테이블**을 선택합니다.

1. 테이블 생성을 선택합니다.

1. **테이블 생성** 페이지에서 테이블 세부 정보를 입력합니다.  
![\[S3 Table 카탈로그\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/s3-catalog-create-table.png)
   + **이름** – 테이블에 사용할 고유한 이름을 입력합니다.
   + **카탈로그** - S3 Tables 카탈로그를 카탈로그로 선택합니다.
   + **데이터베이스** - S3 Tables 카탈로그에서 데이터베이스를 선택합니다.
   +  **설명** - 테이블에 대한 설명을 입력합니다.
   + **스키마** - 열 추가를 선택하여 열과 열의 데이터 유형을 추가합니다. 빈 테이블을 생성하고 나중에 스키마를 업데이트할 수 있습니다. Iceberg를 사용하면 테이블을 생성한 후 스키마와 파티션을 개선할 수 있습니다. Athena 쿼리를 사용하여 테이블 스키마를 업데이트하고 Spark 쿼리를 사용하여 파티션을 업데이트할 수 있습니다.

1. **제출**을 선택합니다.

## 테이블 생성(AWS CLI)
<a name="w2aac13c27c25b5b7"></a>

```
aws glue create-table \ 
--database-name "testglueclidbcreation" \ 
--catalog-id "123456789012:s3tablescatalog/test" \ 
--region us-east-1 \ 
--table-input \ 
'{ "Name": "testtablegluecli", "Parameters": { "format": "ICEBERG" }, "StorageDescriptor": { "Columns": [ {"Name": "x", "Type": "int", "Parameters": {"required": "true"}} ] } }'
```

# 다른 AWS 계정에 Amazon S3 테이블 버킷 등록
<a name="register-cross-account-s3-table-bucket"></a>

한 AWS 계정의 개별 Amazon S3 테이블 버킷(ARN 형식:`arn:aws:s3tables:us-east-1:account-id:bucket/bucket-name`)을 다른 계정의 Lake Formation에 등록할 수 있습니다. 예를 들어, 계정 A의 테이블 버킷을 계정 B의 Lake Formation에 등록할 수 있습니다.

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

교차 계정 버킷 등록을 시작하기 전에 다음을 수행합니다.
+ 계정 A에서 테이블 버킷을 생성합니다.
+ 계정 B에서 버킷 등록에 대한 적절한 권한을 가진 IAM 역할을 생성합니다.

  Lake Formation에 테이블 버킷을 등록하는 데 필요한 권한에 대한 자세한 내용은 [Amazon S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하기 위한 사전 조건](s3tables-catalog-prerequisites.md) 섹션을 참조하세요.
+ S3 Table 카탈로그를 생성할 계정에 테이블 버킷을 등록합니다.
+  교차 계정 액세스의 경우 테이블 버킷을 등록할 때 지정된 역할은 교차 계정 버킷에 액세스할 수 있는 적절한 권한이 있는 계정 내 역할이어야 합니다. 역할은 버킷 리소스에 액세스하는 데 필요한 S3 Tables IAM 작업이 필요합니다.

## 교차 계정 테이블 버킷 등록
<a name="w2aac13c27c27b7"></a>

다음 절차에서 계정 A는 리소스 소유 계정이고 계정 B는 테이블 버킷이 액세스 권한 관리를 위해 등록되는 곳입니다.

1. 계정 A의 AWS Management Console 에 로그인합니다.

   [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1.  테이블 버킷을 생성합니다. 자세한 내용은 Amazon S3 사용 설명서의 [테이블 버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html)을 참조하세요.

1. 계정 B에 테이블 버킷을 등록합니다.

    AWS CLI 를 사용하여 계정 A의 테이블 버킷을 계정 B의 Lake Formation에 등록합니다.

   ```
   aws lakeformation register-resource \
   --resource-arn 'arn:aws:s3tables:us-east-1:account-A-id:bucket/single-bucket-name' \
   --role-arn arn:aws:iam::account-B-id:role/role-name \
   --region us-east-1
   ```

   account-A-id, single-bucket-name, account-B-id 및 role-name을 특정 값으로 바꿉니다.

1. 그런 다음 계정 B의 테이블 버킷에 대한 카탈로그를 생성합니다.

    AWS CLI를 사용하여 카탈로그를 생성합니다.

   ```
   aws glue create-catalog --region us-east-1 \
   --cli-input-json \
   '{
      "Name": "catalog-name",
      "CatalogInput" : {
         "FederatedCatalog": {
            "Identifier": "arn:aws:s3tables:us-east-1:account A:bucket/single-bucket-name",
            "ConnectionName": "aws:s3tables"
         },
         "CreateDatabaseDefaultPermissions": [],
         "CreateTableDefaultPermissions": []      
      }
   }'
   ```

   catalog-name, account-A-id 및 bucket-name을 특정 값으로 바꿉니다.

    다음 CLI 예제에서는 카탈로그의 세부 정보를 확인하는 방법을 보여줍니다.

   ```
    aws glue get-catalog \
     --catalog-id account-id:catalog-name \
     --region us-east-1
   ```

1. 그런 다음 계정 B에서 새로 생성된 카탈로그에 데이터베이스와 테이블을 생성합니다.

   데이터베이스를 생성합니다.

   ```
   aws glue create-database \
     --region us-east-1 \
     --catalog-id "account-B-id:catalog-name" \
     --database-input \
   '{
     "Name": "database-name"
   }'
   ```

    테이블을 생성합니다.

   ```
   aws glue create-table \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name\
     --region us-east-1 \
     --table-input \
     '{
           "Name": "table-name",
           "Parameters": {
               "format": "ICEBERG"
           },
           "StorageDescriptor": {
              "Columns": [
           {"Name": "x", "Type": "int", "Parameters": {"required": "true"}}
             ]
           }
   }'
   ```

   database-name, account-B-id, catalog-name 및 table-name을 특정 값으로 바꿉니다.

1. 다음 예제에서는 카탈로그에서 객체를 확인하는 방법을 보여줍니다.

   데이터베이스 세부 정보를 봅니다.

   ```
   aws glue get-database \
     --name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   테이블 세부 정보를 봅니다.

   ```
   aws glue get-table \
     --name table-name \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   database-name, account-B-id, catalog-name 및 table-name을 특정 값으로 바꿉니다.

# 권한 부여
<a name="s3-tables-grant-permissions"></a>

 S3 테이블을와 통합 AWS Lake Formation한 후 S3 테이블 카탈로그 및 카탈로그 객체(테이블 버킷, 데이터베이스, 테이블)에 대한 권한을 계정의 다른 IAM 역할 및 사용자에게 부여할 수 있습니다. Lake Formation 권한을 사용하면 Amazon Redshift Spectrum 및 Athena와 같은 통합 분석 엔진 사용자의 테이블, 열 및 행 수준 세부 수준에서 액세스 제어를 정의할 수 있습니다.

 명명된 리소스 방법 또는 Lake Formation 태그 기반 액세스 제어(LF-TBAC) 방법을 사용하여 권한을 부여할 수 있습니다. LF 태그 및 LF 태그 표현식을 사용하여 권한을 부여하기 전에 먼저 해당 표현식을 정의하고 Data Catalog 객체에 할당해야 합니다.

자세한 내용은 [메타데이터 액세스 제어를 위한 LF 태그 관리](managing-tags.md) 단원을 참조하십시오.

외부 AWS 계정에 Lake Formation 권한을 부여하여 외부 계정과 데이터베이스 및 테이블을 공유할 수 있습니다. 그러면 사용자는 여러 계정의 테이블을 조인하고 쿼리하는 작업과 쿼리를 실행할 수 있습니다. 카탈로그 리소스를 다른 계정과 공유하면 해당 계정의 보안 주체는 해당 리소스가 자신의 Data Catalog에 있는 것처럼 해당 리소스에서 작업을 수행할 수 있습니다.

데이터베이스 및 테이블을 외부 계정과 공유하는 경우 **슈퍼 사용자** 권한을 사용할 수 없습니다.

 권한 부여에 대한 자세한 지침은 [Lake Formation 권한 관리](managing-permissions.md) 섹션을 참조하세요.

## AWS CLI Amazon S3 테이블에 대한 권한 부여 예제
<a name="w2aac13c27c29c15"></a>

```
aws lakeformation grant-permissions \
--cli-input-json \
'{
    "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::111122223333:role/DataAnalystRole"
    },
    "Resource": {
        "Table": {
            "CatalogId":"111122223333:s3tablescatalog/amzn-s3-demo-bucket1",
            "DatabaseName":"S3 table bucket namespace <example_namespace>",
            "Name":"S3 table bucket table name <example_table>"
        }
    },
    "Permissions": [
        "SELECT"
    ]
}'
```

 다음은 명령에 포함되어야 하는 파라미터입니다.
+ DataLakePrincipalIdentifier – 권한을 부여하는 IAM 사용자, 역할 또는 그룹 ARN
+ CatalogId – 데이터 카탈로그를 소유한 12자리 AWS 계정 ID
+ DatabaseName - Amazon S3 Tables 버킷 네임스페이스의 이름
+ Name - Amazon S3 Tables 버킷 테이블 이름
+ Permissions - 부여할 수 있는 권한 옵션에는 SELECT, INSERT, DELETE, DESCRIBE, ALTER, DROP, ALLL, SUPER가 포함됩니다.

# 공유 Amazon S3 Tables 액세스
<a name="s3-tables-cross-account-sharing"></a>

 S3 Tables 카탈로그의 데이터베이스 또는 테이블에 교차 계정 권한을 부여한 후 리소스에 액세스하려면 공유 데이터베이스 및 테이블에 대한 리소스 링크를 생성해야 합니다.

1.  대상 계정(공유 리소스를 수신하는 계정)에서 데이터베이스 리소스 링크를 생성합니다. 자세한 지침은 [공유 데이터 카탈로그 데이터베이스에 대한 리소스 링크 만들기](create-resource-link-database.md) 섹션을 참조하세요.

   데이터베이스 리소스 링크 생성을 위한 CLI 예제

   ```
   aws glue create-database 
   --region us-east-1 
   --catalog-id "111122223333" 
   --database-input \
   '{
     "Name": "s3table_resourcelink",
     "TargetDatabase": {
       "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
       "DatabaseName": "s3_table_ns"
     },
     "CreateTableDefaultPermissions": []
   }'
   ```

1.  테이블에 대한 교차 계정 권한을 부여합니다.

   교차 계정 권한 부여에 대한 CLI 예제

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:role/S3TablesTestExecRole"
       },
       "Resource": {
           "Table": {
               "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
               "DatabaseName": "s3_table_ns",
               "Name": "test_s3_iceberg_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

1.  리소스 링크에서 Lake Formation `DESCRIBE` 권한을 부여합니다.

    리소스 링크에 대한 설명 권한을 부여하는 CLI 예제입니다.

   ```
   aws lakeformation grant-permissions \
       --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/S3TablesTestExecRole
       --resource Database='{CatalogId=111122223333;, Name=s3table_resourcelink}' \
       --permissions DESCRIBE
   ```