Administración de acceso para Tablas de S3 - Amazon Simple Storage Service

Administración de acceso para Tablas de S3

En Tablas de S3, los recursos incluyen buckets de tablas y las tablas que contienen. El usuario raíz de la Cuenta de AWS que creó el recurso (el propietario del recurso) y los usuarios de AWS Identity and Access Management (IAM) en esa cuenta que tienen los permisos necesarios pueden acceder a un recurso que hayan creado. El propietario del recurso especifica quién más puede acceder al recurso y las acciones que puede realizar en el recurso. Amazon S3 cuenta con varias herramientas de administración de acceso que puede utilizar para conceder a otras personas el acceso a los recursos de S3. Los siguientes temas le proporcionan una visión general de los recursos, las acciones de IAM y las claves de condición para Tablas de S3. También proporcionan ejemplos de políticas basadas en recursos y en identidades para Tablas de S3.

Recursos

Los recursos de Tablas de S3 incluyen buckets de tablas y las tablas que contienen.

  • Buckets de tablas: los buckets de tablas están diseñados específicamente para tablas y proporcionan un mayor número de transacciones por segundo (TPS) y un mejor rendimiento de las consultas en comparación con las tablas autoadministradas en los buckets de S3 de uso general. Los buckets de tablas ofrecen las mismas características de durabilidad, disponibilidad, escalabilidad y rendimiento que los buckets de uso general de Amazon S3.

  • Tablas: las tablas de los buckets de tablas se almacenan en formato Apache Iceberg. Puede consultar estas tablas mediante SQL estándar en motores de consulta que admitan Iceberg.

Los nombres de recursos de Amazon (ARN) para tablas y buckets de tablas contienen el espacio de nombres s3tables, la Región de AWS, el ID de Cuenta de AWS y el nombre de bucket. Para acceder y realizar acciones en las tablas y buckets de tablas, debe utilizar los siguientes formatos de ARN:

  • Formato de ARN de tabla:

    arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID

Acciones para Tablas de S3

En una política basada en identidad o en recursos, usted define qué acciones de Tablas de S3 se permiten o se deniegan para entidades principales de IAM específicas. Las acciones de tablas corresponden a operaciones de la API en el nivel de bucket y tabla. Todas las acciones forman parte de un espacio de nombres de IAM único: s3tables.

Cuando utiliza una acción en una política, normalmente permite o deniega el acceso a la operación de la API con el mismo nombre. No obstante, en algunos casos, una sola acción controla el acceso a más de una operación de la API. Por ejemplo, las acciones s3tables:GetTableData incluyen permisos para las operaciones de la API GetObject, ListParts y ListMultiparts.

Las siguientes son acciones admitidas para buckets de tablas. Puede especificar las siguientes acciones en el elemento Action de una política de IAM o política de recursos.

Acción Descripción Nivel de acceso Acceso entre cuentas
s3tables:CreateTableBucket Concede permisos para crear un bucket de tablas Write No
s3tables:GetTableBucket Concede permiso para recuperar un ARN de bucket de tablas, un nombre de bucket de tablas y una fecha de creación. Write
s3tables:ListTableBuckets Concede permiso para enumerar todos los buckets de tablas de esta cuenta. Read No
s3tables:CreateNamespace Concede permiso para crear un espacio de nombres en un bucket de tablas Read
s3tables:GetNamespace Concesión de permiso para recuperar detalles de un espacio de nombres Read
s3tables:ListNamespaces Concede permiso para enumerar todos los espacios de nombres en el bucket de tablas. Read
s3tables:DeleteNamespace Concede permiso para eliminar un espacio de nombres en un bucket de tablas Write
s3tables:DeleteTableBucket Concede permiso para eliminar el bucket Write
s3tables:PutTableBucketPolicy Concede permiso para agregar o reemplazar una política de bucket Permissions Management No
s3tables:GetTableBucketPolicy Concede permiso para recuperar la política de bucket Read No
s3tables:DeleteTableBucketPolicy Concede permiso para eliminar la política en un bucket especificado Permissions Management No
s3tables:GetTableBucketMaintenanceConfiguration Concede permiso para recuperar la configuración de mantenimiento para un bucket de tablas Read
s3tables:PutTableBucketMaintenanceConfiguration Concede permiso para agregar o reemplazar la configuración de mantenimiento para un bucket de tablas Write
s3tables:PutTableBucketEncryption Concede permiso para agregar o reemplazar la configuración de cifrado para un bucket de tablas Write No
s3tables:GetTableBucketEncryption Concede permiso para recuperar la configuración de cifrado para un bucket de tablas Read No
s3tables:DeleteTableBucketEncryption Concede permiso para eliminar la configuración de cifrado para un bucket de tablas Write No

Se admiten las siguientes acciones para las tablas:

Acción Descripción Nivel de acceso Acceso entre cuentas
s3tables:GetTableMaintenanceConfiguration Concede permiso para recuperar la configuración de mantenimiento para una tabla Read
s3tables:PutTableMaintenanceConfiguration Concede permiso para agregar o reemplazar la configuración de mantenimiento para una tabla Write
s3tables:PutTablePolicy Concede permiso para agregar o reemplazar una política de tabla Permissions Management No
s3tables:GetTablePolicy Concede permiso para recuperar la política de tabla Read No
s3tables:DeleteTablePolicy Concede permiso para eliminar la política de tabla Permissions management No
s3tables:CreateTable Concede permiso para crear una tabla en un bucket de tablas Write
s3tables:GetTable Concede permiso para recuperar información sobre una tabla Read
s3tables:GetTableMetadataLocation Concede permiso para recuperar el puntero raíz de tabla (archivo de metadatos) Read
s3tables:ListTables Concede permiso para enumerar todas las tablas en un bucket de tablas Read
s3tables:RenameTable Concede permisos para cambiar el nombre de una tabla. Write
s3tables:UpdateTableMetadataLocation Concede permiso para actualizar el puntero raíz de tabla (archivo de metadatos) Write
s3tables:GetTableData Concede permiso para leer los metadatos de tabla y los objetos de datos almacenados en el bucket de tablas Read
s3tables:PutTableData Concede permiso para escribir los metadatos de tabla y los objetos de datos almacenados en el bucket de tablas Write
s3tables:GetTableEncryption Concede permiso para recuperar la configuración de cifrado para una tabla Write No
s3tables:PutTableEncryption Concede permiso para agregar cifrado a una tabla Write No

Para realizar acciones de lectura y escritura en el nivel de tabla, Tablas de S3 admite operaciones de la API de Amazon S3 como GetObject y PutObject. La siguiente tabla proporciona una lista de acciones de nivel de objeto. Al conceder permisos de lectura y escritura a las tablas, utilice las siguientes acciones.

Acción API de objetos de S3
s3tables:GetTableData GetObject, ListParts, HeadObject
s3tables:PutTableData PutObject, CreateMultipartUpload, CompleteMultipartUpload, UploadPart, AbortMultipartUpload

Por ejemplo, si un usuario tiene permisos GetTableData, puede leer todos los archivos asociados con la tabla, como el archivo de metadatos, manifiesto, archivos de lista de manifiesto y archivos de datos parquet.

Claves de condición para Tablas de S3

Tablas de S3 admite claves de contexto de condición global de AWS.

Además, Tablas de S3 define las siguientes claves de condición que puede utilizar en una política de acceso.

Clave de condición Descripción Tipo
s3tables:tableName Filtra el acceso por el nombre de las tablas en el bucket de tablas.

Puede utilizar la clave de condición s3tables:tableName para escribir políticas de IAM o de bucket de tablas que restrinjan el acceso de usuarios o aplicaciones solo a las tablas que cumplan esta condición de nombre.

Es importante tener en cuenta que si utiliza la clave de condición s3tables:tableName para controlar el acceso, los cambios en el nombre de las tablas podrían afectar a estas políticas.

Ejemplo de valor: "s3tables:tableName":"department*"
String
s3tables:namespace

Filtra el acceso por los espacios de nombres creados en el bucket de tablas.

Puede utilizar la clave de condición s3tables:namespace para escribir políticas de IAM, de tabla o de bucket de tablas que restrinjan el acceso de usuarios o aplicaciones a tablas que formen parte de un espacio de nombres específico. Ejemplo de valor: "s3tables:namespace":"hr"

Es importante tener en cuenta que si utiliza la clave de condición s3tables:namespace para controlar el acceso, los cambios en los espacios de nombres podrían afectar a estas políticas.

String
s3tables:SSEAlgorithm

Filtra el acceso mediante el algoritmo de cifrado del servidor utilizado para cifrar una tabla.

Puede utilizar la clave de condición s3tables:SSEAlgorithm para escribir políticas de IAM, de tabla o de bucket de tablas que restrinjan el acceso de usuarios o aplicaciones a tablas cifradas con un tipo de cifrado determinado. Ejemplo de valor: "s3tables:SSEAlgorithm":"aws:kms"

Es importante tener en cuenta que si utiliza la clave de condición s3tables:SSEAlgorithm para controlar el acceso, los cambios de cifrado podrían afectar a estas políticas.

String
s3tables:KMSKeyArn

Filtra el acceso por el ARN de clave de AWS KMS de la clave utilizada para cifrar una tabla

Puede utilizar la clave de condición s3tables:KMSKeyArn para escribir políticas de IAM, de tabla o de bucket de tablas que restrinjan el acceso de usuarios o aplicaciones a tablas cifradas con una clave de KMS específica.

Es importante tener en cuenta que si utiliza la clave de condición s3tables:KMSKeyArn para controlar el acceso, los cambios en la clave de KMS podrían afectar a estas políticas.

ARN