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 por AWS son buckets de tablas de Amazon S3 especializados diseñados para almacenar tablas administradas por AWS, como las tablas de inventario diarias y en directo de 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 nombre del bucket de origen. Este espacio de nombres predefinido no se puede modificar.

Cada Cuenta de AWS tiene un bucket de tablas administradas por AWS por región, según la convención de nomenclatura de 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 AWS Buckets de tablas administradas de Buckets de tablas administradas por el cliente
Creación Creados automáticamente por 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 Servicios de AWS puede 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
Cifrado Puede cambiar la configuración de cifrado predeterminada (SSE-S3) solo si ha cifrado la tabla inicial con una clave AWS Key Management Service (AWS KMS) administrada por el cliente Puede establecer el cifrado predeterminado de bucket y modificarlo en cualquier momento
Mantenimiento Administrada por Servicios de AWS Puede personalizar el mantenimiento automatizado por bucket

Permisos para trabajar con buckets de tablas administradas por AWS y para consultarlas

Para trabajar con buckets de tablas administradas por AWS, necesita permisos para crear buckets de tablas administradas por AWS y tablas, y para especificar la configuración de cifrado para las tablas administradas por AWS. También necesita permisos para consultar las tablas de los buckets de tablas administradas por AWS.

La política de ejemplo siguiente le permite crear un bucket de tablas administradas por AWS mediante una configuración de metadatos de 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" ] } ] }

La política de ejemplo siguiente le permite consultar tablas en buckets de tablas administradas por AWS:

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

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