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 table gérés sont des compartiments de table S3 spécialisés conçus pour stocker des tables AWS gérées, telles que les tables de Accélération de la découverte des données avec les métadonnées S3 journal et 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 compartiment source qui ne peut pas être modifié. Chaque AWS compte possède un compartiment de tables 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 table AWS gérés avec les compartiments de table gérés par le client.

Fonctionnalité AWS seaux de table gérés Seaux de table gérés par le client
Création Créé automatiquement par les AWS services 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 Seuls AWS les services peuvent 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 ne pouvez modifier les paramètres de chiffrement par défaut (SSE-S3) que si vous avez chiffré la table initiale avec une clé gérée AWS KMS par le client. Vous pouvez définir le chiffrement par défaut au niveau du compartiment et le modifier à tout moment
Maintenance Géré par les AWS services La maintenance automatisée peut être personnalisée au niveau du godet

Autorisations pour créer des AWS compartiments de tables gérés

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, spécifier les paramètres de chiffrement pour les tables AWS gérées ainsi que les autorisations de lecture de base pour interroger les tables.

Voici un exemple de politique qui vous permettra de créer un bucket de table AWS géré via des configurations de service :

{ "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:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

Voici un exemple de politique qui vous permettra d'interroger des tables dans des compartiments de tables AWS gérés :

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

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 avecSpark.

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 bucket de table AWS géré. 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 pour votre compartiment de tables afin d'utiliser SSE-KMS, ces paramètres de chiffrement sont utilisés pour toutes les futures tables créées dans le compartiment.