Políticas basadas en recursos para Tablas de S3 - Amazon Simple Storage Service

Políticas basadas en recursos para Tablas de S3

Tablas de S3 proporciona políticas basadas en recursos para administrar el acceso a buckets de tablas y tablas: políticas de buckets de tablas y políticas de tablas. Puede utilizar una política de buckets de tablas para la concesión de permisos de acceso a la API en el nivel de bucket de tablas, de espacio de nombres o de tabla. Los permisos asociados al bucket de tablas pueden aplicarse a todas las tablas del bucket o a tablas específicas del bucket, según la definición de la política. Puede utilizar una política de tabla para conceder permisos en el nivel de tabla.

Cuando Tablas de S3 recibe una solicitud, primero verifica que el solicitante tenga los permisos necesarios. Evalúa todas las políticas de acceso, políticas de usuario y políticas basadas en recursos relevantes para decidir si autoriza la solicitud (política de usuario de IAM, política de rol de IAM, política de buckets de tablas y política de tabla). Por ejemplo, si una política de bucket de tablas concede a un usuario permisos para realizar todas las acciones en las tablas del bucket (incluida DeleteTable), pero una tabla individual tiene una política de tabla que deniega la acción DeleteTable a todos los usuarios, el usuario no puede eliminar la tabla.

El siguiente tema incluye ejemplos de políticas de tabla y de bucket de tablas. Para utilizar estas políticas, reemplace los marcadores de posición de entrada del usuario por información propia.

nota
  • Cada política que conceda permisos para modificar tablas debe incluir permisos para GetTableMetadataLocation a fin de ara acceder al archivo raíz de la tabla. Para obtener más información, consulte GetTableMetadataLocation.

  • Cada vez que realice una actividad de escritura o eliminación en la tabla, incluya permisos para UpdateTableMetadataLocation en la política de acceso.

  • Recomendamos utilizar una política de bucket de tablas para regular el acceso a acciones en el nivel de bucket y una política de tabla para regular el acceso a acciones en el nivel de tabla. En los casos en los que desee configurar el mismo conjunto de permisos en varias tablas, le recomendamos que utilice una política de bucket de tablas.

Ejemplo 1: la política de bucket de tablas permite el acceso a PutBucketMaintenanceConfiguration para buckets en una cuenta

La siguiente política de bucket de tablas de ejemplo permite a data steward de IAM eliminar objetos sin referencias para todos los buckets de una cuenta al permitir el acceso a PutBucketMaintenanceConfiguration.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:role/datasteward" }, "Action": ["s3tables:PutTableBucketMaintenanceConfiguration"], "Resource":"arn:aws:s3tables:region:account_id:bucket/*" }] }

Ejemplo 2: política de bucket de tablas para permitir el acceso de lectura (SELECT) a las tablas almacenadas en el espacio de nombres hr

A continuación, se muestra un ejemplo de política de bucket de tablas que permite a Jane, una usuaria del ID de Cuenta de AWS 123456789012 acceder a tablas almacenadas en el espacio de nombres hr en un bucket de tablas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": [ "s3tables:GetTableData", "s3tables:GetTableMetadataLocation" ], "Resource": "arn:aws:s3tables:region:account_id:bucket/amzn-s3-demo-table-bucket/table/*", "Condition": { "StringLike": {"s3tables:namespace": "hr"} } } ] }

Ejemplo 3: política de tabla para permitir al usuario eliminar una tabla

A continuación, se muestra un ejemplo de política de tabla que permite al rol de IAM data steward eliminar una tabla.

{ "Version": "2012-10-17", "Id": "DeleteTable", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:role/datasteward" }, "Action": [ "s3tables:DeleteTable", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableData", "s3tables:GetTableMetadataLocation" ], "Resource":"arn:aws:s3tables:region:account_id:bucket/amzn-s3-demo-bucket1/table/tableUUID" }] }