テーブルバケットでの AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用
トピック
すべてのテーブルバケットには、デフォルトの暗号化設定があり、テーブルは Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用して自動的に暗号化されます。この暗号化は、S3 テーブルバケット内のすべてのテーブルに適用され、費用はかかりません。
キーローテーションやアクセスポリシー付与を管理するなど、暗号化キーをより細かく制御する必要がある場合は、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用するようにテーブルバケットを設定できます。AWS KMS のセキュリティ制御は、暗号化関連のコンプライアンス要件を満たすのに役立ちます。SSE-KMS に関する詳細は、「AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用」を参照してください。
テーブルとテーブルバケットでの SSE-KMS の仕組み
ディレクトリバケットでの SSE-KMS は、以下の点で汎用バケットでの SSE-KMS とは異なります。
-
テーブルバケットと個々のテーブルの暗号化設定を指定できます。
-
SSE-KMS では、カスタマーマネージドキーのみを使用できます。AWS マネージドキーはサポートされていません。
-
AWS KMS キーにアクセスするには、特定のロールと AWS サービスプリンシパルにアクセス許可を付与する必要があります。詳細については、「S3 Tables の SSE-KMS 暗号化のアクセス許可要件」を参照してください。これには、以下へのアクセスの許可が含まれます。
-
S3 メンテナンスプリンシパル – 暗号化されたテーブルでテーブルメンテナンスを実行
-
S3 Tables 統合ロール – AWS 分析サービスで暗号化されたテーブルを使用
-
クライアントアクセスロール – Apache Iceberg クライアントから暗号化されたテーブルに直接アクセス
-
S3 メタデータプリンシパル – 暗号化された S3 メタデータテーブルを更新
-
-
暗号化されたテーブルは、テーブルレベルのキーを使用して AWS KMS へのリクエスト数を最小限に抑え、SSE-KMS で暗号化されたテーブルの操作をよりコスト効率の高いものにします。
- テーブルバケットの SSE-KMS 暗号化
-
テーブルバケットを作成するときは、デフォルトの暗号化タイプとして SSE-KMS を選択し、暗号化に使用する特定の KMS キーを指定できます。テーブルバケット内に作成したすべてのテーブルは、テーブルバケットから暗号化設定を自動的に継承します。テーブルバケットのデフォルトの暗号化設定は、AWS CLI、S3 API、または AWS SDK を使用していつでも変更または削除できます。テーブルバケットの暗号化設定を変更すると、変更後の設定はバケット内に作成した新しいテーブルにのみ適用されます。既存のテーブルの暗号化設定は変更されません。詳細については、「テーブルバケットの暗号化の指定」を参照してください。
- テーブルの SSE-KMS 暗号化
-
バケットのデフォルトの暗号化設定に関係なく、個別のテーブルを別の KMS キーで暗号化することもできます。個別のテーブルの暗号化を設定するには、目的の暗号化キーをテーブルの作成時に指定する必要があります。既存のテーブルの暗号化を変更する場合は、目的のキーを使用してテーブルを作成し、古いテーブルから新しいテーブルにデータをコピーする必要があります。詳細については、「テーブルの暗号化の指定」を参照してください。
AWS KMS 暗号化を使用する場合、S3 Tables は、テーブルレベルの一意のデータキーを自動的に作成して各テーブルに関連する新しいオブジェクトを暗号化します。これらのキーの使用期間は限定され、暗号化オペレーション中の追加の AWS KMS リクエストの必要性を最小限に抑え、暗号化のコストを削減します。これは SSE−KMS の S3 バケットキー に似ています。
テーブルとテーブルバケットの SSE-KMS 暗号化のモニタリングと監査
SSE-KMS で暗号化されたデータの AWS KMS キーの使用状況を監査するには、AWS CloudTrail ログを使用します。GenerateDataKey
や Decrypt
などの暗号化オペレーションに関するインサイトを得ることができます。CloudTrail は、イベント名、ユーザー名、イベントソースなど、検索をフィルタリングするための多数の属性値をサポートしています。
CloudTrail イベントを使用して、Amazon S3 のテーブルとテーブルバケットへの暗号化設定リクエストを追跡できます。CloudTrail ログでは、以下の API イベント名が使用されます。
-
s3tables:PutTableBucketEncryption
-
s3tables:GetTableBucketEncryption
-
s3tables:DeleteTableBucketEncryption
-
s3tables:GetTableEncryption
-
s3tables:CreateTable
-
s3tables:CreateTableBucket
注記
EventBridge はテーブルバケットではサポートされていません。