

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Control de acceso de IAM
<a name="iam-access-control"></a>

El control de acceso de IAM para Amazon MSK le permite gestionar tanto la autenticación como la autorización de su clúster de MSK. Esto elimina la necesidad de utilizar un mecanismo de autenticación y otro mecanismo de autorización. Por ejemplo, cuando un cliente intenta escribir en su clúster, Amazon MSK utiliza IAM para verificar si el cliente es una identidad autenticada y si está autorizado para producir en su clúster.

El control de acceso de IAM funciona para clientes Java y no Java, incluidos los clientes de Kafka escritos en Python JavaScript, Go y.NET. El control de acceso mediante IAM para clientes que no son Java está disponible para clústeres de MSK con la versión 2.7.1 de Kafka o posterior.

Para hacer posible el control de acceso de IAM, Amazon MSK realiza pequeñas modificaciones en el código fuente de Apache Kafka. Estas modificaciones no supondrán una diferencia notable en su experiencia con Apache Kafka. Amazon MSK registra los eventos de acceso para que pueda auditarlos.

Puede invocar la ACL de Apache Kafka APIs para un clúster de MSK que utilice el control de acceso de IAM. Sin embargo, Apache Kafka no afecta a la ACLs autorización de las identidades de IAM. Debe utilizar políticas de IAM para controlar el acceso de las identidades de IAM.

**Consideraciones importantes**  
Cuando utilice el control de acceso mediante IAM con el clúster de MSK, tenga en cuenta las siguientes consideraciones importantes:  
El control de acceso de IAM no se aplica a los nodos de Apache. ZooKeeper Para obtener más información sobre cómo puede controlar el acceso a estos nodos, consulte [Controle el acceso a ZooKeeper los nodos de Apache en su clúster de Amazon MSK](zookeeper-security.md).
La configuración `allow.everyone.if.no.acl.found` de Apache Kafka no tiene efecto si el clúster utiliza el control de acceso de IAM. 
Puede invocar la ACL de Apache Kafka APIs para un clúster de MSK que utilice el control de acceso de IAM. Sin embargo, Apache Kafka no afecta a la ACLs autorización de las identidades de IAM. Debe utilizar políticas de IAM para controlar el acceso de las identidades de IAM.

# Cómo funciona el control de acceso de IAM para Amazon MSK
<a name="how-to-use-iam-access-control"></a>

Para utilizar el control de acceso de IAM para Amazon MSK, lleve a cabo los pasos que se describen en detalle en los siguientes temas:
+ [Creación de un clúster de Amazon MSK que utilice el control de acceso de IAM](create-iam-access-control-cluster-in-console.md) 
+ [Configuración de clientes para el control de acceso de IAM](configure-clients-for-iam-access-control.md)
+ [Creación de políticas de autorización para el rol de IAM](create-iam-access-control-policies.md)
+ [Obtener los agentes de arranque para el control de acceso de IAM](get-bootstrap-brokers-for-iam.md)

# Creación de un clúster de Amazon MSK que utilice el control de acceso de IAM
<a name="create-iam-access-control-cluster-in-console"></a>

En esta sección se explica cómo puede utilizar la Consola de administración de AWS API o la AWS CLI para crear un clúster de Amazon MSK que utilice el control de acceso de IAM. Para obtener información sobre cómo activar el control de acceso de IAM en un clúster existente, consulte [Actualización de la configuración de seguridad de un clúster de Amazon MSK](msk-update-security.md).

**Úselo Consola de administración de AWS para crear un clúster que utilice el control de acceso de IAM**

1. Abra la consola de Amazon MSK en [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Elija **Create cluster**.

1. Elija **Crear clúster con configuración personalizada**.

1. En la sección **Autenticación**, elija **Control de acceso de IAM**.

1. Complete el resto del flujo de trabajo para crear un clúster.

**Utilice la API o la AWS CLI para crear un clúster que utilice el control de acceso de IAM**
+ Para crear un clúster con el control de acceso de IAM habilitado, utilice la [CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)API o el comando CLI [create-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-cluster.html) y pase el siguiente JSON para `ClientAuthentication` el parámetro:. `"ClientAuthentication": { "Sasl": { "Iam": { "Enabled": true } }` 

# Configuración de clientes para el control de acceso de IAM
<a name="configure-clients-for-iam-access-control"></a>

Para permitir que los clientes se comuniquen con un clúster de MSK que utiliza el control de acceso de IAM, elija uno de estos mecanismos:
+ Configuración de clientes que no son de Java mediante un mecanismo SASL\$1OAUTHBEARER
+ Configuración del cliente Java mediante SASL\$1OAUTHBEARER un mecanismo o AWS\$1MSK\$1IAM mecanismo

## Utilice el SASL\$1OAUTHBEARER mecanismo para configurar IAM
<a name="configure-clients-for-iam-access-control-sasl-oauthbearer"></a>

1. Edite el archivo de configuración client.properties con el siguiente ejemplo de cliente de Kafka en Python. Los cambios de configuración son parecidos en otros idiomas.

   ```
   from kafka import KafkaProducer
   from kafka.errors import KafkaError
   from kafka.sasl.oauth import AbstractTokenProvider
   import socket
   import time
   from aws_msk_iam_sasl_signer import MSKAuthTokenProvider
   
   class MSKTokenProvider():
       def token(self):
           token, _ = MSKAuthTokenProvider.generate_auth_token('<my Región de AWS>')
           return token
   
   tp = MSKTokenProvider()
   
   producer = KafkaProducer(
       bootstrap_servers='<myBootstrapString>',
       security_protocol='SASL_SSL',
       sasl_mechanism='OAUTHBEARER',
       sasl_oauth_token_provider=tp,
       client_id=socket.gethostname(),
   )
   
   topic = "<my-topic>"
   while True:
       try:
           inp=input(">")
           producer.send(topic, inp.encode())
           producer.flush()
           print("Produced!")
       except Exception:
           print("Failed to send message:", e)
   
   producer.close()
   ```

1. Descargue la biblioteca auxiliar para el lenguaje de configuración que haya elegido y siga las instrucciones de la sección *Introducción* de la página principal de la biblioteca correspondiente.
   + JavaScript: [https://github.com/aws/aws-msk-iam-sasl-signer-js \$1getting -started](https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started)
   + Python: [https://github.com/aws/aws-msk-iam-sasl-signer-python](https://github.com/aws/aws-msk-iam-sasl-signer-python#get-started) \$1get -started
   + [Go: -signer-go \$1getting -started https://github.com/aws/ aws-msk-iam-sasl](https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started)
   + [.NET: -signer-net \$1getting -started https://github.com/aws/ aws-msk-iam-sasl](https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started)
   + JAVA: el SASL\$1OAUTHBEARER soporte para Java está disponible a través del archivo jar [https://github.com/aws/aws-msk-iam-auth/releases](https://github.com/aws/aws-msk-iam-auth/releases)

## Utilice el AWS\$1MSK\$1IAM mecanismo personalizado de MSK para configurar IAM
<a name="configure-clients-for-iam-access-control-msk-iam"></a>

1. Agregue la línea siguiente al archivo `client.properties`. *<PATH\$1TO\$1TRUST\$1STORE\$1FILE>*Sustitúyala por la ruta completa al archivo del almacén de confianza del cliente.
**nota**  
Si no desea utilizar un certificado específico, puede eliminar `ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>` del archivo `client.properties`. Cuando no especifica un valor para `ssl.truststore.location`, el proceso de Java utiliza el certificado predeterminado.

   ```
   ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>
   security.protocol=SASL_SSL
   sasl.mechanism=AWS_MSK_IAM
   sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
   sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
   ```

   Para usar un perfil con nombre que haya creado para AWS las credenciales, inclúyalo `awsProfileName="your profile name";` en el archivo de configuración del cliente. Para obtener información sobre los perfiles con [nombre, consulte Perfiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) con nombre en la AWS CLI documentación.

1. Descargue el último archivo [aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth/releases)JAR estable y colóquelo en la ruta de clases. Si usa Maven, agregue la siguiente dependencia y ajuste el número de versión según sea necesario:

   ```
   <dependency>
       <groupId>software.amazon.msk</groupId>
       <artifactId>aws-msk-iam-auth</artifactId>
       <version>1.0.0</version>
   </dependency>
   ```

El complemento de cliente de Amazon MSK es de código abierto y cuenta con la licencia Apache 2.0.

# Creación de políticas de autorización para el rol de IAM
<a name="create-iam-access-control-policies"></a>

Asocie una política de autorización al rol de IAM que corresponda al cliente. En una política de autorización, se especifican las acciones que se van a permitir o denegar para el rol. Si su cliente está en una instancia de Amazon EC2, asocie la política de autorización al rol de IAM de esa instancia de Amazon EC2. Como alternativa, puede configurar su cliente para que utilice un perfil con nombre y, a continuación, asociar la política de autorización al rol de ese perfil con nombre. [Configuración de clientes para el control de acceso de IAM](configure-clients-for-iam-access-control.md) describe cómo configurar un cliente para utilizar un perfil con nombre asignado.

Para obtener más información sobre cómo crear una política de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). 

A continuación se muestra un ejemplo de política de autorización para un clúster denominado MyTestCluster. Para entender la semántica de los elementos `Action` y `Resource`, consulte [Semántica de las acciones y los recursos de la política de autorización de IAM](kafka-actions.md).

**importante**  
Los cambios que realice en una política de IAM se reflejan en el IAM APIs e inmediatamente. AWS CLI Sin embargo, puede pasar un tiempo considerable hasta que el cambio en la política surta efecto. En la mayoría de los casos, los cambios en la política entran en vigor en menos de un minuto. En ocasiones, las condiciones de la red pueden aumentar la demora.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeCluster"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:111122223333:cluster/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:topic/MyTestCluster/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:group/MyTestCluster/*"
            ]
        }
    ]
}
```

------

Para obtener información sobre cómo crear una política con elementos de acción que se correspondan con los casos de uso habituales de Apache Kafka, como la producción y el consumo de datos, consulte [Casos de uso habituales de la política de autorización de clientes](iam-access-control-use-cases.md).

[En las versiones 2.8.0 y posteriores de Kafka, el **WriteDataIdempotently**permiso está obsoleto (KIP-679).](https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default) Se utiliza `enable.idempotence = true` de forma predeterminada. Por lo tanto, para las versiones 2.8.0 y posteriores de Kafka, IAM no ofrece la misma funcionalidad que Kafka. ACLs No es posible `WriteDataIdempotently` en un tema si se proporciona únicamente acceso de `WriteData` a ese tema. Esto no afecta al caso en el que se proporciona `WriteData` a **TODOS** los temas. En ese caso, `WriteDataIdempotently` está permitido. Esto se debe a las diferencias en la implementación de la lógica de IAM y en la forma en que se implementa la Kafka. ACLs Además, la escritura idempotente en un tema también requiere acceso a `transactional-ids`.

Para solucionar esta limitación, se recomienda utilizar una política similar a la que se muestra a continuación.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeCluster",
                "kafka-cluster:WriteDataIdempotently"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:cluster/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/TestTopic",
                "arn:aws:kafka:us-east-1:123456789012:transactional-id/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*"
            ]
        }
    ]
}
```

------

En este caso, `WriteData` permite escribir en `TestTopic` y, al mismo tiempo, `WriteDataIdempotently` permite escrituras idempotentes en el clúster. Esta política también agrega acceso a los recursos de `transactional-id` que serán necesarios.

Dado que `WriteDataIdempotently` es un permiso de clúster, no se puede utilizar en los temas. Si `WriteDataIdempotently` se restringe al nivel de tema, esta política no funcionará.

# Obtener los agentes de arranque para el control de acceso de IAM
<a name="get-bootstrap-brokers-for-iam"></a>

Consulte [Obtención de agentes de arranque para un clúster de Amazon MSK](msk-get-bootstrap-brokers.md).

# Semántica de las acciones y los recursos de la política de autorización de IAM
<a name="kafka-actions"></a>

**nota**  
Para los clústeres que ejecutan la versión 3.8 o posterior de Apache Kafka, el control de acceso de IAM admite la WriteTxnMarkers API para finalizar las transacciones. En el caso de los clústeres que ejecutan versiones de Kafka anteriores a la 3.8, el control de acceso de IAM no admite ni siquiera las acciones internas del clúster. WriteTxnMarkers En estas versiones anteriores, para finalizar las transacciones, utiliza la autenticación SCRAM o mTLS con la autenticación adecuada ACLs en lugar de la autenticación de IAM.

En esta sección se explica la semántica de los elementos de acción y recursos que puede utilizar en una política de autorización de IAM. Para ver una política de ejemplo, consulte [Creación de políticas de autorización para el rol de IAM](create-iam-access-control-policies.md).

## Acciones de la política de autorización
<a name="actions"></a>

En la siguiente tabla se enumeran las acciones que puede incluir en una política de autorización cuando utiliza el control de acceso de IAM para Amazon MSK. Si incluye en su política de autorización una acción de la columna *Acción* de la tabla, también debe incluir las acciones correspondientes de la columna *Acciones obligatorias*. 


| Action | Description (Descripción) | Acciones obligatorias | Recursos necesarios de  | Aplicable a los clústeres sin servidor | 
| --- | --- | --- | --- | --- | 
| kafka-cluster:Connect | Otorga permiso para conectarse y autenticarse en el clúster. | Ninguno | clúster | Sí | 
| kafka-cluster:DescribeCluster | Otorga permiso para describir varios aspectos del clúster, equivalente a la ACL DESCRIBE CLUSTER de Apache Kafka. |  `kafka-cluster:Connect`  | clúster | Sí | 
| kafka-cluster:AlterCluster | Otorga permiso para alterar varios aspectos del clúster, equivalente a la ACL ALTER CLUSTER de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeCluster`  | clúster | No | 
| kafka-cluster:DescribeClusterDynamicConfiguration | Otorga permiso para describir la configuración dinámica de un clúster, equivalente a la ACL de CLÚSTER DESCRIBE\$1CONFIGS de Apache Kafka. |  `kafka-cluster:Connect`  | clúster | No | 
| kafka-cluster:AlterClusterDynamicConfiguration | Otorga permiso para modificar la configuración dinámica de un clúster, equivalente a la ACL de CLÚSTER ALTER\$1CONFIGS de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | clúster | No | 
| kafka-cluster:WriteDataIdempotently | Otorga permiso para escribir datos idempotentemente en un clúster, equivalente a la ACL de CLÚSTER IDEMPOTENT\$1WRITE de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:WriteData`  | clúster | Sí | 
| kafka-cluster:CreateTopic | Otorga permiso para crear temas en un clúster, lo que equivale a la ACL CREATE de Apache Kafka. CLUSTER/TOPIC  |  `kafka-cluster:Connect`  | tema | Sí | 
| kafka-cluster:DescribeTopic | Otorga permiso para describir temas en un clúster, equivalente a la ACL DESCRIBE TOPIC de Apache Kafka. |  `kafka-cluster:Connect`  | tema | Sí | 
| kafka-cluster:AlterTopic | Otorga permiso para modificar temas en un clúster, equivalente a la ACL ALTER TOPIC de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | tema | Sí | 
| kafka-cluster:DeleteTopic | Otorga permiso para eliminar temas de un clúster, equivalente a la ACL DELETE TOPIC de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | tema | Sí | 
| kafka-cluster:DescribeTopicDynamicConfiguration | Otorga permiso para describir la configuración dinámica de temas en un clúster, equivalente a la ACL DESCRIBE\$1CONFIGS TOPIC de Apache Kafka. |  `kafka-cluster:Connect`  | tema | Sí | 
| kafka-cluster:AlterTopicDynamicConfiguration | Otorga permiso para modificar la configuración dinámica de temas en un clúster, equivalente a la ACL de TEMA ALTER\$1CONFIGS de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration`  | tema | Sí | 
| kafka-cluster:ReadData | Otorga permiso para leer datos de temas de un clúster, equivalente a la ACL READ TOPIC de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterGroup`  | tema | Sí | 
| kafka-cluster:WriteData | Otorga permiso para escribir datos en temas de un clúster, equivalente a la ACL WRITE TOPIC de Apache Kafka |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | tema | Sí | 
| kafka-cluster:DescribeGroup | Otorga permiso para describir grupos en un clúster, equivalente a la ACL DESCRIBE GROUP de Apache Kafka. |  `kafka-cluster:Connect`  | grupo | Sí | 
| kafka-cluster:AlterGroup | Otorga permiso para unirse a grupos en un clúster, equivalente a la ACL READ GROUP de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | grupo | Sí | 
| kafka-cluster:DeleteGroup | Otorga permiso para eliminar grupos de un clúster, equivalente a la ACL DELETE GROUP de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | grupo | Sí | 
| kafka-cluster:DescribeTransactionalId | Otorga permiso para describir las transacciones IDs en un clúster, lo que equivale a la ACL DESCRIBE TRANSACTIONAL\$1ID de Apache Kafka. |  `kafka-cluster:Connect`  | transactional-id | Sí | 
| kafka-cluster:AlterTransactionalId | Otorga permiso para modificar las transacciones IDs en un clúster, lo que equivale a la ACL WRITE TRANSACTIONAL\$1ID de Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:WriteData`  | transactional-id | Sí | 

Puede utilizar el carácter comodín asterisco (\$1) cualquier número de veces en una acción después de los dos puntos. A continuación se muestran algunos ejemplos.
+ `kafka-cluster:*Topic` significa `kafka-cluster:CreateTopic`, `kafka-cluster:DescribeTopic`, `kafka-cluster:AlterTopic` y `kafka-cluster:DeleteTopic`. No incluye `kafka-cluster:DescribeTopicDynamicConfiguration` ni `kafka-cluster:AlterTopicDynamicConfiguration`.
+ `kafka-cluster:*` se refiere a todos los permisos.

## Recursos de la política de autorización
<a name="msk-iam-resources"></a>

En la siguiente tabla se muestran los cuatro tipos de recursos que puede utilizar en una política de autorización cuando utiliza el control de acceso de IAM para Amazon MSK. Puede obtener el nombre de recurso de Amazon (ARN) del clúster desde Consola de administración de AWS o mediante la [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)API o el comando [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). A continuación, puede usar el ARN del clúster para crear el tema, el grupo y el ID de transacción. ARNs Para especificar un recurso en una política de autorización, se utiliza el ARN de ese recurso.


| Recurso | Formato de ARN | 
| --- | --- | 
| Clúster | arn:aws:kafka: ::cluster//regionaccount-idcluster-namecluster-uuid | 
| Topic | arn:aws:kafka: region :topic///account-idcluster-namecluster-uuidtopic-name | 
| Group | arn:aws:kafka: region ::group///account-idcluster-namecluster-uuidgroup-name | 
| ID de transacción | arn:aws:kafka: region ::transactional-id///account-idcluster-namecluster-uuidtransactional-id | 

Puede utilizar el comodín asterisco (\$1) cualquier número de veces en cualquier parte del ARN que venga después de `:cluster/`, `:topic/`, `:group/` y `:transactional-id/`. A continuación, se muestran algunos ejemplos de cómo puede utilizar el carácter comodín asterisco (\$1) para hacer referencia a varios recursos:
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/*`: todos los temas de cualquier clúster con nombre, independientemente del UUID del clúster. MyTestCluster
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*_test`: todos los temas cuyo nombre termine por «\$1test» del clúster cuyo nombre MyTestCluster y UUID sean abcd1234-0123-abcd-5678-1234abcd-1.
+ `arn:aws:kafka:us-east-1:0123456789012:transactional-id/MyTestCluster/*/5555abcd-1111-abcd-1234-abcd1234-1`: todas las transacciones cuyo identificador de transacción sea 5555abcd-1111-abcd-1234-abcd1234-1, en todas las versiones de un clúster con el nombre de tu cuenta. MyTestCluster Esto significa que si crea un clúster con el nombre MyTestCluster, lo elimina y, a continuación, crea otro clúster con el mismo nombre, puede usar este ARN de recurso para representar el mismo ID de transacciones en ambos clústeres. Sin embargo, no se puede acceder al clúster eliminado.

# Casos de uso habituales de la política de autorización de clientes
<a name="iam-access-control-use-cases"></a>

En la primera columna de la tabla siguiente se muestran algunos casos de uso habituales. Para autorizar a un cliente a llevar a cabo un caso de uso determinado, incluya las acciones necesarias para ese caso de uso en la política de autorización del cliente y establezca `Effect` en `Allow`.

Para obtener información sobre todas las acciones que forman parte del control de acceso de IAM para Amazon MSK, consulte [Semántica de las acciones y los recursos de la política de autorización de IAM](kafka-actions.md).

**nota**  
Las acciones se deniegan de forma predeterminada. Debe permitir de forma explícita todas las acciones que quiera que el cliente pueda realizar.


****  

| Caso de uso | Acciones obligatorias | 
| --- | --- | 
| Administrador |  `kafka-cluster:*`  | 
| Crear un tema |  `kafka-cluster:Connect` `kafka-cluster:CreateTopic`  | 
| Producir datos |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData`  | 
| Consumir datos |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:DescribeGroup` `kafka-cluster:AlterGroup` `kafka-cluster:ReadData`  | 
| Producir datos de forma idempotente |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:WriteDataIdempotently`  | 
| Producir datos de forma transaccional |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:AlterTransactionalId`  | 
| Describir la configuración de un clúster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | 
| Actualizar la configuración de un clúster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration` `kafka-cluster:AlterClusterDynamicConfiguration`  | 
| Describir la configuración de un tema |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` | 
| Actualizar la configuración de un tema |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` `kafka-cluster:AlterTopicDynamicConfiguration`  | 
| Modificar un tema |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterTopic`  | 