

# Uso de políticas de IAM para Amazon Kinesis Data Streams y Amazon DynamoDB
<a name="kds_iam"></a>

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 de los roles vinculados a servicios, consulte [Uso de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) 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
<a name="access-policy-kds-example1"></a>

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
<a name="access-policy-kds-example2"></a>

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
<a name="access-policy-kds-example2"></a>

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
<a name="access-policy-kds-example3"></a>

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
<a name="kds-service-linked-roles"></a>

Amazon Kinesis Data Streams para Amazon DynamoDB utiliza [roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) y busque los servicios que muestran **Sí** en la columna **Rol vinculado a un servicio**. Elija una opción **Sí** 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
<a name="slr-permissions"></a>

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](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/aws-service-role/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](https://docs.aws.amazon.com/IAM/latest/UserGuide/contributorinsights-service-linked-roles.html#service-linked-role-permissions) en la *Guía del usuario de IAM*.

### Creación de un rol vinculado a un servicio para Kinesis Data Streams para DynamoDB
<a name="create-slr"></a>

No necesita crear manualmente un rol vinculado a servicios. Cuando habilita Kinesis Data Streams para DynamoDB en la Consola de administración de AWS, 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
<a name="edit-slr"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/contributorinsights-service-linked-roles.html#edit-service-linked-role) en la *Guía del usuario de IAM*.

### Eliminación de un rol vinculado a un servicio para Kinesis Data Streams para DynamoDB
<a name="delete-slr"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) en la *Guía del usuario de IAM*.