テーブルとテーブルバケットでの SSE-KMS の適用とスコープ設定
S3 Tables のリソースベースのポリシー、KMS キーポリシー、IAM アイデンティティベースのポリシー、またはこれらの任意の組み合わせを使用して、S3 テーブルとテーブルバケットでの SSE-KMS の使用を設定できます。テーブルのアイデンティティおよびリソースポリシーの詳細については、「S3 Tables のアクセス管理」を参照してください。キーポリシーの作成方法については、「AWS Key Management Service Developer Guide」の「Key policies」を参照してください。以下の例は、ポリシーを使用して SSE-KMS を適用する方法を示しています。
このテーブルバケットポリシーの例では、ユーザーが特定の AWS KMS キーでテーブルを暗号化しない限り、特定のテーブルバケット内にテーブルを作成できないようにします。このポリシーを使用するには、ユーザー入力用プレースホルダー
を独自の情報に置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceKMSEncryption", "Effect": "Deny", "Principal": "*", "Action": [ "s3tables:CreateTable" ], "Resource": [ "
<table-bucket-arn>
/*" ], "Condition": { "StringNotEquals": { "s3tables:sseAlgorithm": "aws:kms", "s3tables:kmsKeyArn": "<kms-key-arn>
" } } } ] }
この IAM ID ポリシーでは、S3 Tables リソースを作成または設定するときに、特定の AWS KMS キーを暗号化に使用することをユーザーに要求します。このポリシーを使用するには、ユーザー入力用プレースホルダー
を独自の情報に置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireKMSKeyOnTables", "Action": [ "s3tables:CreateTableBucket", "s3tables:PutTableBucketEncryption", "s3tables:CreateTable" ] "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3tables:sseAlgorithm": "aws:kms", "s3tables:kmsKeyArn": "
<key_arn>
" } } } ] }
この KMS キーポリシーの例では、特定のテーブルバケットの暗号化オペレーションにのみキーを使用することを特定のユーザーに許可します。このタイプのポリシーは、クロスアカウントシナリオでキーへのアクセスを制限するのに役立ちます。このポリシーを使用するには、ユーザー入力用プレースホルダー
を独自の情報に置き換えます。
{ "Version": "2012-10-17", "Id": "Id", "Statement": [ { "Sid": "AllowPermissionsToKMS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:root" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "<table-bucket-arn>
/*" } } } ] }