

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# S3 Tables 統合のアクセスコントロールの変更
<a name="manage-s3tables-catalog-integration"></a>

Amazon S3 Tables を と統合したら AWS Glue Data Catalog、カタログリソースへのアクセスの制御方法を変更できます。このセクションでは、現在使用しているアクセスコントロールモデルと希望するアクセスコントロールモデルに応じてアクセスコントロールを変更する方法を説明します。Lake Formation を有効にすると、Lake Formation 許可を通じて列レベルや行レベルのセキュリティなどのきめ細かなアクセス許可を使用でき、Lake Formation は登録されたロールを通じてプリンシパルに代わって一時的な認証情報を提供できます。アクセスコントロール AWS Lake Formation を から IAM に変更すると、標準の IAM ポリシーへのアクセスコントロールが返されます。これは、ワークロードにきめ細かなアクセスが必要ではなく、IAM を通じてアクセス許可を完全に管理する場合に適しています。どちらの移行パスにも、データカタログのデフォルトの更新、Lake Formation によるリソース登録の調整、移行中のアクセス中断を回避するためのアクセス許可の付与の調整が含まれます。

**Topics**
+ [S3 Tables と Data Catalog の統合で Lake Formation を有効にする](change-access-iam-to-lf.md)
+ [アクセスコントロール AWS Lake Formation を から IAM に変更する](change-access-lf-to-iam.md)

# S3 Tables と Data Catalog の統合で 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 Tables への読み取り/書き込みアクセスには、Lake Formation アクセス許可に加えて、プリンシパルにも `lakeformation:GetDataAccess` IAM アクセス許可が必要です。この許可があると、Lake Formation がデータにアクセスするための一時的な認証情報のリクエストを承諾します。

## の使用 AWS CLI
<a name="w2aac13c29b7b9"></a>

1. **ステップ 1: IAM ロールを使用してバケットを Lake Formation に登録する**

   S3 Tables リソースを Lake Formation に登録します。
**注記**  
既存のロールがある場合は、ハイブリッドアクセスが 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"
   ```

   必要に応じて、プリンシパルとリソースの組み合わせごとに繰り返します。

# アクセスコントロール AWS Lake Formation を から IAM に変更する
<a name="change-access-lf-to-iam"></a>

このセクションでは、 と統合された Amazon S3 Tables のアクセスコントロールを AWS Lake Formation 権限から IAM 権限に変更するワークフローについて説明します AWS Glue Data Catalog。

**重要**  
アクセスコントロールを AWS Lake Formation 権限から IAM に変更すると、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 のきめ細かな許可に依存していたプリンシパルには、アクセスコントロールの移行後にテーブルレベルのフルアクセスが必要です。

## 前提条件
<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 のデフォルトのアクセス許可を復元する**

   カタログを更新して、 `CreateDatabaseDefaultPermissions`と を `ALL`に`CreateTableDefaultPermissions`付与します`IAM_ALLOWED_PRINCIPALS`。を `OverwriteChildResourcePermissionsWithDefault`に設定する`Accept`と、新しく作成された子リソースだけでなく、既存のすべての子リソースに変更が反映されます。

   ```
   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` ステップは必要ありません。