Uso de buckets de tablas administradas de AWS - Amazon Simple Storage Service

Uso de buckets de tablas administradas de AWS

Los buckets de tablas administradas de AWS son buckets de tablas de S3 especializados diseñados para almacenar tablas administradas de AWS, como las tablas de diario e inventario en directo de Aceleración del descubrimiento de datos con Metadatos de S3. A diferencia de los buckets de tablas administradas por el cliente que se crean y administran directamente, los buckets de tablas administradas de AWS se aprovisionan automáticamente mediante AWS al configurar las características que requieren tablas administradas de AWS. Cuando se crean tablas administradas, pertenecen a un espacio de nombres predefinido basado en el bucket de origen que no se puede modificar. Cada cuenta de AWS tiene un bucket de tablas administradas de AWS por región, según la convención de nomenclatura aws-s3. Este bucket sirve de ubicación centralizada para todas las tablas administradas asociadas a los recursos de la cuenta en esa región.

En la tabla siguiente se comparan los buckets de tablas administradas de AWS con los buckets de tablas administradas por el cliente.

Característica Buckets de tablas administradas de AWS Buckets de tablas administradas por el cliente
Creación Creados automáticamente por los servicios de AWS Estos los crea manualmente
Nomenclatura Utilice una convención de nomenclatura estándar (aws-s3) Define sus propios nombres
Creación de tablas Solo los servicios de AWS pueden crear tablas Puede crear tablas
Control del espacio de nombres No puede crear ni eliminar espacios de nombres (todas las tablas pertenecen a un espacio de nombres fijo) Puede crear y eliminar espacios de nombres
Acceso Acceso de solo lectura Acceso completo de
Cifrado Solo puede cambiar la configuración de cifrado predeterminada (SSE-S3) si ha cifrado la tabla inicial con una clave de AWS KMS administrada por el cliente. Puede establecer el cifrado predeterminado de bucket y modificarlo en cualquier momento
Mantenimiento Administración por los servicios de AWS El mantenimiento automatizado se puede personalizar en el bucket

Permisos para crear bucket de tablas administradas de AWS

Para trabajar con buckets de tablas administradas de AWS, necesita permisos para crear buckets de tablas administradas de AWS y tablas, especificar la configuración de cifrado para las tablas administradas de AWS, así como permisos básicos de lectura para consultar tablas.

En el siguiente ejemplo se muestra una política que le permitirá crear un bucket de tablas administradas de AWS mediante configuraciones de servicio:

{ "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/*" ] } ] }

En el siguiente ejemplo se muestra una política que le permitirá consultar tablas en buckets de tablas administradas de AWS:

{ "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/*" ] } ] }

Consulta de tablas en buckets de tablas administradas de AWS

Puede consultar tablas administradas de AWS en buckets de tablas administradas de AWS a través de métodos de acceso y motores compatibles con Tablas de S3. A continuación, se muestran algunas consultas de ejemplo

Using standard SQL

En el siguiente ejemplo se muestra cómo consultar tablas administradas de AWS mediante la sintaxis SQL estándar.

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

En el siguiente ejemplo se muestra cómo unir tablas administradas de AWS con tablas propias.

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

En el siguiente ejemplo se muestra cómo consultar la tabla con Spark.

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

En el siguiente ejemplo se muestra cómo unir la tabla administrada de AWS con otra tabla.

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

Cifrado para buckets de tablas administradas de AWS

De forma predeterminada, a los buckets de tablas administradas de AWS se les aplica el cifrado del servidor con claves administradas por Amazon S3 (SSE-S3). Una vez creado el bucket de tablas administradas de AWS, puede utilizar PutTableBucketEncryption para establecer en él la configuración de cifrado predeterminada para utilizar el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS).

Durante la creación de las tablas administradas de AWS, puede decidir cifrarlas con SSE-KMS. Si decide utilizar SSE-KMS, debe proporcionar una clave de KMS administrada por el cliente en la misma región que el bucket de tablas administradas de AWS. Solo puede establecer el tipo de cifrado para las tablas administradas de AWS durante la creación de estas. Después de crear una tabla administrada de AWS, no se puede cambiar la configuración de cifrado.

Si desea que el bucket de tablas administradas de AWS y las tablas almacenadas en él utilicen la misma clave de KMS, asegúrese de utilizar la misma clave de KMS que utilizó para cifrar las tablas y para cifrar el bucket de tablas una vez creado. Después de cambiar la configuración de cifrado predeterminada del bucket de tablas para utilizar SSE-KMS, esa configuración de cifrado se utilizará para todas las tablas que se creen en el bucket.