Uso de políticas de IAM para Amazon Kinesis Data Streams y Amazon DynamoDB - Amazon DynamoDB

Uso de políticas de IAM para Amazon Kinesis Data Streams y Amazon DynamoDB

La primera vez que habilita Amazon Kinesis Data Streams para Amazon DynamoDB, DynamoDB le crea automáticamente un AWS Identity and Access Management (IAM) vinculado a servicio. Esta función, AWSServiceRoleForDynamoDBKinesisDataStreamsReplication, permite a DynamoDB administrar la replicación de cambios a nivel de elemento en Kinesis Data Streams en su nombre. No elimine este rol vinculado a un servicio.

Para obtener más información acerca los roles vinculados a servicios, consulte Uso de roles vinculados a servicios en la Guía del usuario de IAM.

nota

DynamoDB no admite condiciones basadas en etiquetas para las políticas de IAM.

Para habilitar Amazon Kinesis Data Streams para Amazon DynamoDB, debe tener los siguientes permisos en la tabla:

  • dynamodb:EnableKinesisStreamingDestination

  • kinesis:ListStreams

  • kinesis:PutRecords

  • kinesis:DescribeStream

Para describir Amazon Kinesis Data Streams para Amazon DynamoDB para una tabla de DynamoDB determinada, debe tener los siguientes permisos en la tabla.

  • dynamodb:DescribeKinesisStreamingDestination

  • kinesis:DescribeStreamSummary

  • kinesis:DescribeStream

Para deshabilitar Amazon Kinesis Data Streams para Amazon DynamoDB, debe tener los siguientes permisos en la tabla.

  • dynamodb:DisableKinesisStreamingDestination

Para actualizar Amazon Kinesis Data Streams para Amazon DynamoDB, la tabla debe tener los siguientes permisos.

  • dynamodb:UpdateKinesisStreamingDestination

En los siguientes ejemplos se muestra cómo utilizar las políticas de IAM para conceder permisos a Amazon Kinesis Data Streams para Amazon DynamoDB.

Ejemplo: Habilitar Amazon Kinesis Data Streams para Amazon DynamoDB

La siguiente política de IAM otorga permisos para activar Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music. No concede permisos para desactivar, actualizar ni describir Kinesis Data Streams para DynamoDB para la tabla Music.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/kinesisreplication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBKinesisDataStreamsReplication", "Condition": { "StringLike": { "iam:AWSServiceName": "kinesisreplication.dynamodb.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "dynamodb:EnableKinesisStreamingDestination" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Music" } ] }

Ejemplo: Actualizar Amazon Kinesis Data Streams para Amazon DynamoDB

La siguiente política de IAM otorga permisos para actualizar Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music. No concede permisos para activar, desactivar ni describir Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateKinesisStreamingDestination" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Music" } ] }

Ejemplo: Deshabilite Amazon Kinesis Data Streams para Amazon DynamoDB

La siguiente política de IAM otorga permisos para desactivar Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music. No concede permisos para activar, actualizar ni describir Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DisableKinesisStreamingDestination" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Music" } ] }

Ejemplo: aplicar permisos de forma selectiva para Amazon Kinesis Data Streams para Amazon DynamoDB basados en recursos

La siguiente política de IAM concede permisos para activar y describir Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Music y deniega permisos para desactivar Amazon Kinesis Data Streams para Amazon DynamoDB para la tabla Orders.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DescribeKinesisStreamingDestination" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Music" }, { "Effect": "Deny", "Action": [ "dynamodb:DisableKinesisStreamingDestination" ], "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Orders" } ] }

Uso de roles vinculados a servicios para Kinesis Data Streams para DynamoDB

Amazon Kinesis Data Streams para Amazon DynamoDB utiliza roles vinculados a servicios de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a Kinesis Data Streams para DynamoDB. Los roles vinculados a servicios están predefinidos por Kinesis Data Streams para DynamoDB e incluyen todos los permisos que el servicio requiere para llamar a otros servicios de AWS en su nombre.

Un rol vinculado a un servicio simplifica la configuración de Kinesis Data Streams para DynamoDB porque ya no tendrá que agregar manualmente los permisos necesarios. Kinesis Data Streams para DynamoDB define los permisos de sus roles vinculados a servicios y, a menos que esté definido de otra manera, solo Kinesis Data Streams puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se pueda asociar a ninguna otra entidad de IAM.

Para obtener información acerca de otros servicios que admiten roles vinculados a servicios, consulte Servicios de AWS que funcionan con IAM y busque los servicios que muestran Yes (Sí) en la columna Service Linked Role (Rol vinculado a servicios). Elija una opción con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

Permisos de roles vinculados a servicios para Kinesis Data Streams para DynamoDB

Kinesis Data Streams para DynamoDB utiliza el rol vinculado a servicio denominado AWSServiceRoleForDynamodBkinesisDataStreamsReplication. El propósito del rol vinculado a servicios es permitir que Amazon DynamoDB administre la replicación de cambios a nivel de elemento en Kinesis Data Streams, en su nombre.

El rol vinculado al servicio AWSServiceRoleForDynamoDBKinesisDataStreamsReplication depende de los siguientes servicios para asumir el rol:

  • kinesisreplication.dynamodb.amazonaws.com

La política de permisos del rol permite que Kinesis Data Streams para DynamoDB realice las siguientes acciones en los recursos especificados:

  • Acción: Put records and describe en Kinesis stream

  • Acción: Generate data keys en AWS KMS para poner datos en las transmisiones de Kinesis cifrados mediante claves de AWS KMS generadas por el usuario.

Para conocer el contenido exacto del documento de política, consulte DynamoDBKinesisReplicationServiceRolePolicy.

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o rol) crear, editar o eliminar un rol vinculado a servicios. Para obtener más información, consulte Permisos de roles vinculados a servicios en la Guía del usuario de IAM.

Creación de un rol vinculado a un servicio para Kinesis Data Streams para DynamoDB

No necesita crear manualmente un rol vinculado a servicios. Cuando habilita Kinesis Data Streams para DynamoDB en la AWS Management Console, la AWS CLI, o la API de AWS, Kinesis Data Streams para DynamoDB crea automáticamente el rol vinculado al servicio.

Si elimina este rol vinculado a servicios y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Cuando habilita Kinesis Data Streams para DynamoDB, Kinesis Data Streams para DynamoDB vuelve a crear el rol vinculado al servicio.

Edición de un rol vinculado a un servicio para Kinesis Data Streams para DynamoDB

Kinesis Data Streams para DynamoDB no permite editar el rol vinculado al servicio AWSServiceRoleForDynamoDBKinesisDataStreamsReplication. Después de crear un rol vinculado al servicio, no podrá cambiar el nombre del rol, ya que varias entidades podrían hacer referencia al rol. Sin embargo, sí puede editar la descripción del rol con IAM. Para obtener más información, consulte Edición de un rol vinculado a servicios en la Guía del usuario de IAM.

Eliminación de un rol vinculado a un servicio para Kinesis Data Streams para DynamoDB

También puede utilizar la consola de IAM, la AWS CLI o la API de AWS para eliminar manualmente el rol vinculado al servicio. Para ello, primero debe limpiar manualmente los recursos del rol vinculado al servicio para poder eliminarlo después manualmente.

nota

Si el servicio Kinesis Data Streams para DynamoDB está utilizando el rol cuando intenta eliminar los recursos, la eliminación podría producir un error. En tal caso, espere unos minutos e intente de nuevo la operación.

Para eliminar manualmente el rol vinculado a servicios mediante IAM

Puede usar la consola de IAM, la AWS CLI o la API de AWS para eliminar el rol vinculado a un servicio de AWSServiceRoleForDynamoDBKinesisDataStreamsReplication. Para más información, consulte Eliminación de un rol vinculado a servicios en la Guía del usuario de IAM.