

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

# 別の 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 でテーブルバケットを作成します。
+ バケット登録の適切なアクセス許可を持つ IAM ロールをアカウント B に作成します。

  Lake Formation にテーブルバケットを登録するために必要なアクセス許可の詳細については、「[Amazon S3 テーブルカタログを データカタログおよび Lake Formation と統合するための前提条件](s3tables-catalog-prerequisites.md)」を参照してください。
+ S3 テーブルカタログを作成するアカウントにテーブルバケットを登録します。
+  クロスアカウントアクセスの場合、テーブルバケットの登録時に指定されたロールは、クロスアカウントバケットにアクセスするための適切なアクセス許可を持つアカウント内ロールである必要があります。ロールには、バケットリソースにアクセスするために必要な S3 Tables IAM アクションが必要です。

## クロスアカウントテーブルバケット登録
<a name="w2aac13c27c27b7"></a>

次の手順では、アカウント A がリソース所有アカウントであり、アカウント B がアクセス許可を管理するためにテーブルバケットが登録される場所です。

1. アカウント A AWS マネジメントコンソール の にサインインします。

   Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/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 を特定の値に置き換えます。