View a markdown version of this page

Uso del control de acceso basado en atributos con DynamoDB Streams - Amazon DynamoDB

Uso del control de acceso basado en atributos con DynamoDB Streams

DynamoDB Streams admite el control de acceso basado en atributos (ABAC), la misma estrategia de autorización que se describe en Uso de políticas basadas en recursos para DynamoDB. Con ABAC de DynamoDB Streams, puede adjuntar etiquetas a los flujos y utilizar condiciones basadas en etiquetas en las políticas de IAM para controlar el acceso a ellos.

Los recursos de transmisión no heredan las etiquetas de su tabla principal y puede administrarlas en las transmisiones de forma independiente. Puede agregar un máximo de 50 etiquetas para cada flujo de DynamoDB. El tamaño máximo admitido para todas las etiquetas de un flujo es de 10 KB. Para obtener más información sobre el etiquetado de recursos de DynamoDB y las restricciones de etiquetado, consulte Cómo agregar etiquetas a los recursos en DynamoDB y Restricciones de etiquetado en DynamoDB.

Puede utilizar la clave de condición aws:ResourceTag para permitir o denegar el acceso a un flujo en función de las etiquetas que estén asociadas a dicho flujo. Por ejemplo, la siguiente política permite la acción GetRecords en cualquier flujo que incluya la clave de etiqueta environment con el valor production.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } } ] }

Claves de condición para implementar ABAC con DynamoDB Streams

El ABAC de DynamoDB Streams utiliza las mismas claves de condición que las tablas de DynamoDB: aws:ResourceTag/tag-key, aws:RequestTag/tag-key y aws:TagKeys. Para obtener una descripción de cada clave de condición, consulte Claves de condición para implementar ABAC con DynamoDB. El siguiente comportamiento es específico de DynamoDB Streams:

  • Las claves de condición se aplican a las API de DynamoDB Streams que operan en un flujo, incluidas TagResource, UntagResource y las API de lectura como GetRecords.

  • Cuando ABAC de DynamoDB Streams no está activado en la cuenta, las condiciones de aws:ResourceTag se evalúan como si no hubiera etiquetas adjuntas al recurso de transmisión.

Consideraciones para utilizar ABAC con DynamoDB Streams

Cuando utilice ABAC con DynamoDB Streams, se aplicarán las siguientes consideraciones:

  • ABAC para DynamoDB Streams es independiente de ABAC para tablas de DynamoDB. Al habilitar ABAC para las tablas, no se habilita automáticamente para las transmisiones de la cuenta. Debe habilitar cada uno de ellos de forma independiente.

  • Puede etiquetar o desetiquetar una transmisión después de eliminar su tabla principal mediante los comandos tag-resource, untag-resource y list-tags-of-resource de la CLI o el SDK en el ARN de la transmisión. La transmisión sigue existiendo durante 24 horas después de eliminar la tabla antes de la eliminación. Esta capacidad no está disponible a través de la consola o CloudFormation después de eliminar la tabla.

  • Si usa CloudFormation para administrar los recursos de DynamoDB, asegúrese de que el rol de servicio tenga los permisos dynamodb:TagResource, dynamodb:UntagResource y dynamodb:ListTagsOfResource para los recursos de transmisión.