Utilisation de compartiments de table AWS gérés - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de compartiments de table AWS gérés

AWS les compartiments de tables gérés sont des compartiments de tables Amazon S3 spécialisés conçus pour stocker des tables AWS gérées, telles que le journal des métadonnées S3 et les tables d'inventaire en temps réel. Contrairement aux compartiments de tables gérés par le client que vous créez et gérez directement, les compartiments de tables AWS gérés sont automatiquement provisionnés AWS lorsque vous configurez des fonctionnalités qui nécessitent des tables gérées. AWS Lorsque des tables gérées sont créées, elles appartiennent à un espace de noms prédéfini basé sur le nom du compartiment source. Cet espace de noms prédéfini ne peut pas être modifié.

Chacune Compte AWS dispose d'un compartiment de table AWS géré par région, conformément à la convention de dénominationaws-s3. Ce compartiment sert d’emplacement centralisé pour toutes les tables gérées associées aux ressources de votre compte dans cette région.

Le tableau suivant compare les compartiments de tables AWS gérés avec les compartiments de tables gérés par le client.

Fonctionnalité AWS seaux de table gérés Compartiments de table gérés par le client
Création Créé automatiquement par Services AWS Vous les créez manuellement
Nommage Utiliser une convention de dénomination standard (aws-s3) Vous définissez vos propres noms
Création de tables Services AWS Peut uniquement créer des tables Vous pouvez créer des tables
Contrôle de l’espace de noms Impossible de créer ou de supprimer des espaces de noms (toutes les tables appartiennent à un espace de noms fixe) Vous pouvez créer et supprimer des espaces de noms
Accès Accès en lecture seule Accès complet à
Chiffrement Vous pouvez modifier les paramètres de chiffrement par défaut (SSE-S3) uniquement si vous avez chiffré la table initiale avec une clé gérée par le client AWS Key Management Service ()AWS KMS Vous pouvez définir le chiffrement par défaut au niveau du compartiment et le modifier à tout moment
Maintenance Géré par Services AWS Vous pouvez personnaliser la maintenance automatique au niveau du compartiment

Autorisations permettant d'utiliser des compartiments de tables AWS gérés et d'interroger des tables

Pour utiliser des compartiments de tables AWS gérés, vous devez disposer des autorisations nécessaires pour créer des compartiments et des tables AWS gérés et pour spécifier les paramètres de chiffrement pour les tables AWS gérées. Vous devez également disposer d'autorisations pour interroger les tables de vos compartiments de tables AWS gérés.

L'exemple de politique suivant vous permet de créer un bucket de table AWS géré via une configuration de métadonnées S3 :

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3:CreateBucketMetadataTableConfiguration", "s3tables:CreateTableBucket", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:GetTable", "s3tables:PutTablePolicy" "s3tables:PutTableEncryption", "kms:DescribeKey" ], "Resource":[ "arn:aws:s3:::bucket/amzn-s3-demo-source-bucket", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

L'exemple de politique suivant vous permet d'interroger des tables dans des compartiments de tables AWS gérés :

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToQueryMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

Interrogation de tables dans des compartiments de tables AWS gérés

Vous pouvez interroger des tables AWS gérées dans des compartiments de tables AWS gérés à l'aide de méthodes d'accès et de moteurs pris en charge par S3 Tables. Voici quelques exemples de requêtes.

Using standard SQL

L'exemple suivant montre comment interroger des tables AWS gérées à l'aide de la syntaxe SQL standard :

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" LIMIT 10;

L'exemple suivant montre comment joindre des tables AWS gérées à vos propres tables :

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" a JOIN "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" b ON a.key = b.key LIMIT 10;
Using Spark

L’exemple suivant montre comment interroger votre table avec Spark :

spark.sql(""" SELECT * FROM ice_catalog.inventory a JOIN ice_catalog.my_table b ON a.key = b.key """).show(10, true)

L'exemple suivant montre comment joindre votre table AWS gérée à une autre table :

SELECT * FROM inventory a JOIN my_table b ON a.key = b.key LIMIT 10;

Chiffrement pour les AWS compartiments de tables gérés

Par défaut, les compartiments de tables AWS gérés sont chiffrés par chiffrement côté serveur à l'aide de clés gérées Amazon S3 (SSE-S3). Une fois votre bucket de table AWS géré créé, vous pouvez l'utiliser PutTableBucketEncryptionpour définir le paramètre de chiffrement par défaut du bucket afin d'utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS).

Lors de la création de vos tables AWS gérées, vous pouvez choisir de les chiffrer avec SSE-KMS. Si vous choisissez d’utiliser SSE-KMS, vous devez fournir une clé KMS gérée par le client dans la même région que votre compartiment de table géré par AWS . Vous pouvez définir le type de chiffrement pour vos tables AWS gérées uniquement lors de leur création. Une fois qu'une table AWS gérée est créée, vous ne pouvez pas modifier ses paramètres de chiffrement.

Si vous souhaitez que le compartiment de table AWS géré et les tables qui y sont stockées utilisent la même clé KMS, assurez-vous d'utiliser la même clé KMS que celle que vous avez utilisée pour chiffrer vos tables afin de chiffrer votre compartiment de tables après sa création. Une fois que vous avez modifié les paramètres de chiffrement par défaut de votre compartiment de table afin qu’ils utilisent SSE-KMS, ces paramètres de chiffrement sont utilisés pour toutes les futures tables que vous créerez dans le compartiment.