

# S3 ストレージレンズテーブルのアクセス許可
<a name="storage-lens-s3-tables-permissions"></a>

S3 Tables にエクスポートされた S3 ストレージレンズデータを使用するには、適切な AWS Identity and Access Management (IAM) アクセス許可が必要です。このトピックでは、メトリクスのエクスポートと暗号化の管理に必要なアクセス許可について説明します。

## S3 Tables へのメトリクスのエクスポートのアクセス許可
<a name="storage-lens-s3-tables-permissions-export"></a>

S3 ストレージレンズテーブルとテーブルバケットを作成して操作するには、特定の `s3tables` アクセス許可が必要です。S3 ストレージレンズを S3 Tables に設定するには、少なくとも次の `s3tables` アクセス許可が必要です。
+  `s3tables:CreateTableBucket` – このアクセス許可により、AWS マネージドテーブルバケットを作成できます。アカウント内のすべての S3 ストレージレンズメトリクスは、`aws-s3` という名前の単一の AWS マネージドテーブルバケットに保存されます。
+  `s3tables:PutTableBucketPolicy` – S3 ストレージレンズはこのアクセス許可を使用して、ログを配信できるように `systemtables.s3.amazonaws.com` がバケットにアクセスできるようにするテーブルバケットポリシーを設定します。

**重要**  
サービスプリンシパル `systemtables.s3.amazonaws.com` のアクセス許可を削除すると、S3 ストレージレンズは設定に基づいて S3 テーブルをデータで更新できなくなります。テーブルバケットの設定時に追加される既定ポリシーを編集するのではなく、既に提供されているポリシーに加えて、他のアクセスコントロールポリシーを追加することをお勧めします。

**注記**  
各ストレージレンズ設定ごとに、メトリクスエクスポートのタイプごとに個別の S3 テーブルが作成されます。リージョンに複数のストレージレンズ設定がある場合は、追加の設定用に個別のテーブルが作成されます。例えば、S3 テーブルバケットで使用できるテーブルには 3 つのタイプがあります。

## AWS KMS 暗号化テーブルのアクセス許可
<a name="storage-lens-s3-tables-permissions-kms"></a>

S3 ストレージレンズメトリクスを含む S3 テーブル内のすべてのデータは、デフォルトで SSE-S3 暗号化で暗号化されます。ストレージレンズメトリクスレポートを AWS KMS キー (SSE-KMS) で暗号化することを選択できます。S3 ストレージレンズメトリクスレポートを KMS キーで暗号化する場合は、追加のアクセス許可が必要です。

1. ユーザーまたは IAM ロールには以下のアクセス許可が必要です。IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を使用してこれらのアクセス許可を付与できます。
   +  使用する AWS KMS キーの `kms:DescribeKey`

1. AWS KMS キーのキーポリシーでは、次のアクセス許可が必要です。AWS KMS コンソール ([https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)) を使用してこれらのアクセス許可を付与できます。このポリシーを使用するには、` {{user input placeholders}} ` をユーザー自身の情報に置き換えます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EnableSystemTablesKeyUsage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "systemtables.s3.amazonaws.com"
               },
               "Action": [
                   "kms:DescribeKey",
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "{{111122223333}}"
                   }
               }
           },
           {
               "Sid": "EnableKeyUsage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "maintenance.s3tables.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}",
               "Condition": {
                   "StringLike": {
                       "kms:EncryptionContext:aws:s3:arn": "{{<table-bucket-arn>}}/*"
                   }
               }
           }
       ]
   }
   ```

## S3 ストレージレンズのサービスにリンクされたロール
<a name="storage-lens-s3-tables-permissions-slr"></a>

S3 ストレージレンズは、サービスにリンクされたロールを使用して S3 Tables にメトリクスを書き込みます。このロールは、アカウントで S3 Tables のエクスポートを初めて有効にした際に自動的に作成されます。サービスにリンクされたロールには、以下のアクセス許可が含まれます。
+  `s3tables:CreateTable` - `aws-s3` テーブルバケットにテーブルを作成する
+  `s3tables:PutTableData` - メトリクスデータをテーブルに書き込む
+  `s3tables:GetTable` - テーブルメタデータを取得する

サービスにリンクされたこのロールを手動で作成または管理する必要はありません。サービスリンクロールの詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」を参照してください。

## アクセス許可のベストプラクティス
<a name="storage-lens-s3-tables-permissions-best-practices"></a>

S3 ストレージレンズテーブルのアクセス許可を設定するときは、次のベストプラクティスに従ってください。
+  **最小特権を使用する** – 特定のタスクに必要なアクセス許可のみを付与します。例えば、ユーザーがデータのみをクエリする必要がある場合は、ストレージレンズ設定を変更するアクセス許可を付与しないでください。
+  **IAM ロールを使用する** - S3 ストレージレンズテーブルにアクセスするアプリケーションやサービスには、長期的なアクセスキーの代わりに IAM ロールを使用します。
+  **AWS CloudTrail の有効化** - CloudTrail ログ記録を有効にして、S3 ストレージレンズテーブルへのアクセスをモニタリングし、アクセス許可の変更を追跡します。
+  **リソースベースのポリシーを使用する** - 可能であれば、リソースベースのポリシーを使用して、特定のテーブルまたは名前空間へのアクセスを制御します。
+  **アクセス許可の定期的なレビュー** - IAM ポリシーと Lake Formation のアクセス許可を定期的にレビューおよび監査して、それらが最小特権の原則に従っていることを確認します。

## アクセス許可のトラブルシューティング
<a name="storage-lens-s3-tables-permissions-troubleshooting"></a>

### S3 Tables のエクスポートを有効にするとアクセスが拒否されました
<a name="storage-lens-s3-tables-permissions-troubleshooting-export"></a>

 **問題:** S3 Tables のエクスポートを有効にしようとすると、「アクセス拒否」エラーが表示されます。

 **解決策:** IAM ユーザーまたはロールに `s3:PutStorageLensConfiguration` アクセス許可と必要な S3 Tables アクセス許可があることを確認します。

### テーブルのクエリ時にアクセスが拒否されました
<a name="storage-lens-s3-tables-permissions-troubleshooting-query"></a>

 **問題:** Amazon Athena で S3 ストレージレンズテーブルをクエリすると、「アクセス拒否」エラーが発生します。

 **解決策**: 以下を確認します。
+ `aws-s3` テーブルバケットで分析統合が有効になっている
+ Lake Formation のアクセス許可が正しく設定されている
+ IAM ユーザーまたはロールに、必要な Amazon Athena アクセス許可が付与されている

### KMS 暗号化エラー
<a name="storage-lens-s3-tables-permissions-troubleshooting-kms"></a>

 **問題:** 暗号化されたテーブルにアクセスすると、KMS 関連のエラーが発生します。

 **解決策**: 以下を確認します。
+ IAM ポリシーには、必要な KMS アクセス許可が含まれている
+ KMS キーポリシーは、S3 ストレージレンズサービスプリンシパルにアクセス許可を付与している
+ KMS キーがストレージレンズ設定と同じリージョンにある

## 次のステップ
<a name="storage-lens-s3-tables-permissions-next-steps"></a>
+ [Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md) について説明します 
+ [分析ツールを使用した S3 ストレージレンズデータのクエリ](storage-lens-s3-tables-querying.md) について説明します 
+ [S3 ストレージレンズテーブルで AI アシスタントを使用する](storage-lens-s3-tables-ai-tools.md) について説明します 