

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Contrôle d'accès IAM
<a name="iam-access-control"></a>

Le contrôle d'accès IAM pour Amazon MSK vous permet de gérer à la fois l'authentification et l'autorisation pour votre cluster MSK. Cela élimine la nécessité d'utiliser un mécanisme unique pour l'authentification et un autre pour l'autorisation. Par exemple, lorsqu'un client tente d'écrire sur votre cluster, Amazon MSK utilise IAM pour vérifier si ce client est une identité authentifiée et s'il est autorisé à produire sur votre cluster.

Le contrôle d'accès IAM fonctionne pour les clients Java et non-Java, y compris les clients Kafka écrits en Python JavaScript, Go et .NET. Le contrôle d'accès IAM pour les clients non-Java est disponible pour les clusters MSK dotés de la version 2.7.1 ou supérieure de Kafka.

Pour rendre le contrôle d'accès IAM possible, Amazon MSK apporte des modifications mineures au code source d'Apache Kafka. Ces modifications n'entraîneront pas de différence notable dans votre expérience avec Apache Kafka. Amazon MSK journalise les événements d'accès afin que vous puissiez les contrôler.

Vous pouvez appeler l'ACL Apache Kafka APIs pour un cluster MSK qui utilise le contrôle d'accès IAM. Cependant, Apache Kafka ACLs n'a aucun effet sur l'autorisation des identités IAM. Vous devez utiliser des politiques IAM pour contrôler l'accès aux identités IAM.

**Considérations importantes**  
Lorsque vous utilisez le contrôle d'accès IAM avec votre cluster MSK, gardez à l'esprit les considérations importantes suivantes :  
Le contrôle d'accès IAM ne s'applique pas aux ZooKeeper nœuds Apache. Pour plus d'informations sur la manière de contrôler l'accès à ces nœuds, consultez [Contrôlez l'accès aux ZooKeeper nœuds Apache de votre cluster Amazon MSK](zookeeper-security.md).
Le paramètre Apache Kafka `allow.everyone.if.no.acl.found` n'a aucun effet si votre cluster utilise le contrôle d'accès IAM. 
Vous pouvez appeler l'ACL Apache Kafka APIs pour un cluster MSK qui utilise le contrôle d'accès IAM. Cependant, Apache Kafka ACLs n'a aucun effet sur l'autorisation des identités IAM. Vous devez utiliser des politiques IAM pour contrôler l'accès aux identités IAM.

# Fonctionnement du contrôle d'accès IAM pour Amazon MSK
<a name="how-to-use-iam-access-control"></a>

Pour utiliser le contrôle d'accès IAM pour Amazon MSK, effectuez les étapes suivantes, décrites en détail dans ces rubriques :
+ [Créez un cluster Amazon MSK qui utilise le contrôle d'accès IAM](create-iam-access-control-cluster-in-console.md) 
+ [Configurer les clients pour le contrôle d'accès IAM](configure-clients-for-iam-access-control.md)
+ [Création de politiques d'autorisation pour le rôle IAM](create-iam-access-control-policies.md)
+ [Obtenez les agents d'amorçage pour le contrôle d'accès IAM](get-bootstrap-brokers-for-iam.md)

# Créez un cluster Amazon MSK qui utilise le contrôle d'accès IAM
<a name="create-iam-access-control-cluster-in-console"></a>

Cette section explique comment vous pouvez utiliser l' AWS Management Console API ou le AWS CLI pour créer un cluster Amazon MSK qui utilise le contrôle d'accès IAM. Pour plus d'informations sur l'activation du contrôle d'accès IAM pour un cluster existant, consultez [Mettre à jour les paramètres de sécurité d'un cluster Amazon MSK](msk-update-security.md).

**Utilisez le AWS Management Console pour créer un cluster qui utilise le contrôle d'accès IAM**

1. Ouvrez la console Amazon MSK à l'adresse [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Choisissez **Créer un cluster**.

1. Choisissez **Créer un cluster avec des paramètres personnalisés**.

1. Dans la section **Authentification**, choisissez **Contrôle d'accès IAM**.

1. Suivez le reste du flux de travail pour créer un cluster.

**Utilisez l'API ou le AWS CLI pour créer un cluster qui utilise le contrôle d'accès IAM**
+ Pour créer un cluster avec le contrôle d'accès IAM activé, utilisez l'[CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)API ou la commande [create-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-cluster.html) CLI et transmettez le JSON suivant pour `ClientAuthentication` le paramètre :. `"ClientAuthentication": { "Sasl": { "Iam": { "Enabled": true } }` 

# Configurer les clients pour le contrôle d'accès IAM
<a name="configure-clients-for-iam-access-control"></a>

Pour permettre aux clients de communiquer avec un cluster MSK qui utilise le contrôle d’accès IAM, vous pouvez utiliser l’un des mécanismes suivants :
+ Configuration d'un client non Java à l'aide d'un mécanisme SASL\$1OAUTHBEARER
+ Configuration du client Java à l'aide d' SASL\$1OAUTHBEARERun mécanisme ou d' AWS\$1MSK\$1IAM un mécanisme

## Utiliser le SASL\$1OAUTHBEARER mécanisme pour configurer IAM
<a name="configure-clients-for-iam-access-control-sasl-oauthbearer"></a>

1. Modifiez votre fichier de configuration client.properties à l'aide de l'exemple de client Python Kafka suivant. Les modifications de configuration sont similaires dans les autres langages.

   ```
   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 Région 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. Téléchargez la bibliothèque d'assistance pour la langue de configuration que vous avez choisie et suivez les instructions de la section *Démarrage* de la page d'accueil de cette bibliothèque de langues.
   + JavaScript: [https://github.com/aws/aws-msk-iam-sasl-signer-js](https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started) \$1getting -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 : [https://github.com/aws/aws-msk-iam-sasl-signer-go](https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started) \$1getting -started
   + .NET : [https://github.com/aws/aws-msk-iam-sasl-signer-net](https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started) \$1getting -démarré
   + JAVA : le SASL\$1OAUTHBEARER support de Java est disponible via le fichier [https://github.com/aws/aws-msk-iam-auth/releases](https://github.com/aws/aws-msk-iam-auth/releases)jar

## Utiliser le AWS\$1MSK\$1IAM mécanisme personnalisé MSK pour configurer IAM
<a name="configure-clients-for-iam-access-control-msk-iam"></a>

1. Ajoutez ce qui suit dans le fichier `client.properties`. *<PATH\$1TO\$1TRUST\$1STORE\$1FILE>*Remplacez-le par le chemin complet vers le fichier Trust Store sur le client.
**Note**  
Si vous ne souhaitez pas utiliser un certificat spécifique, vous pouvez supprimer `ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>` de votre fichier `client.properties`. Si vous ne spécifiez aucune valeur pour `ssl.truststore.location`, le processus Java utilise le certificat par défaut.

   ```
   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
   ```

   Pour utiliser un profil nommé que vous avez créé pour les AWS informations d'identification, `awsProfileName="your profile name";` incluez-le dans votre fichier de configuration client. Pour plus d'informations sur les profils nommés, consultez la section [Profils nommés](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) dans la AWS CLI documentation.

1. Téléchargez le dernier fichier [aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth/releases)JAR stable et placez-le dans le chemin de classe. Si vous utilisez Maven, ajoutez la dépendance suivante, en ajustant le numéro de version selon les besoins :

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

Le plug-in client Amazon MSK est open source sous la licence Apache 2.0.

# Création de politiques d'autorisation pour le rôle IAM
<a name="create-iam-access-control-policies"></a>

Attachez une politique d'autorisation au rôle IAM qui correspond au client. Dans une politique d'autorisation, vous spécifiez les actions à autoriser ou à refuser pour le rôle. Si votre client utilise une instance Amazon EC2, associez la politique d'autorisation au rôle IAM pour cette instance Amazon EC2. Vous pouvez également configurer votre client pour qu'il utilise un profil nommé, puis associer la politique d'autorisation au rôle de ce profil nommé. [Configurer les clients pour le contrôle d'accès IAM](configure-clients-for-iam-access-control.md) décrit comment configurer un client pour utiliser un profil nommé.

Pour plus d'informations sur la création d'une politique IAM, consultez [Création de politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). 

Voici un exemple de politique d'autorisation pour un cluster nommé MyTestCluster. Pour comprendre la sémantique des éléments `Action` et `Resource`, consultez [Sémantique des politiques d'autorisation, des actions et des ressources de l'IAM](kafka-actions.md).

**Important**  
Les modifications que vous apportez à une politique IAM sont reflétées dans l'IAM APIs et immédiatement. AWS CLI Cependant, la modification de la politique peut prendre un certain temps avant d'être effective. Dans la plupart des cas, les modifications de politique prennent effet en moins d'une minute. Les conditions du réseau peuvent parfois augmenter le délai.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

Pour savoir comment créer une politique avec des éléments d'action correspondant aux cas d'utilisation courants d'Apache Kafka, tels que la production et la consommation de données, consultez [Cas d'utilisation courants de la politique d'autorisation des clients](iam-access-control-use-cases.md).

[Pour les versions 2.8.0 et supérieures de Kafka, l'**WriteDataIdempotently**autorisation est obsolète (KIP-679).](https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default) Par défaut, `enable.idempotence = true` est défini. Par conséquent, pour les versions 2.8.0 et supérieures de Kafka, IAM n'offre pas les mêmes fonctionnalités que Kafka. ACLs Il n'est pas possible d'accéder `WriteDataIdempotently` à un sujet en fournissant uniquement `WriteData` l'accès à ce sujet. Cela n'affecte pas le cas lorsqu'il `WriteData` est fourni à **TOUS les** sujets. Dans ce cas, `WriteDataIdempotently` est autorisé. Cela est dû à des différences dans la mise en œuvre de la logique IAM et dans la manière dont les Kafka ACLs sont implémentés. De plus, écrire sur un sujet de manière idiote nécessite également un accès à. `transactional-ids`

Pour contourner ce problème, nous vous recommandons d'utiliser une politique similaire à la suivante.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

Dans ce cas, `WriteData` autorise les écritures vers la `TestTopic`, pendant que `WriteDataIdempotently` autorise les écritures idempotentes sur le cluster. Cette politique ajoute également l'accès aux `transactional-id` ressources qui seront nécessaires.

Comme il `WriteDataIdempotently` s'agit d'une autorisation au niveau du cluster, vous ne pouvez pas l'utiliser au niveau du sujet. Si elle `WriteDataIdempotently` est limitée au niveau du sujet, cette politique ne fonctionnera pas.

# Obtenez les agents d'amorçage pour le contrôle d'accès IAM
<a name="get-bootstrap-brokers-for-iam"></a>

Consultez [Obtenez les courtiers bootstrap pour un cluster Amazon MSK](msk-get-bootstrap-brokers.md).

# Sémantique des politiques d'autorisation, des actions et des ressources de l'IAM
<a name="kafka-actions"></a>

**Note**  
Pour les clusters exécutant Apache Kafka version 3.8 ou ultérieure, le contrôle d'accès IAM prend en charge l' WriteTxnMarkers API pour mettre fin aux transactions. Pour les clusters exécutant des versions de Kafka antérieures à 3.8, le contrôle d'accès IAM ne prend pas en charge les actions internes du cluster, notamment. WriteTxnMarkers Pour ces versions antérieures, pour mettre fin aux transactions, utilisez l'authentification SCRAM ou mTLS avec une authentification appropriée ACLs au lieu de l'authentification IAM.

Cette section explique la sémantique des éléments d'action et de ressource que vous pouvez utiliser dans une politique d'autorisation IAM. Pour un exemple de politique, consultez [Création de politiques d'autorisation pour le rôle IAM](create-iam-access-control-policies.md).

## Actions relatives à la politique d'autorisation
<a name="actions"></a>

Le tableau suivant répertorie les actions que vous pouvez inclure dans une politique d'autorisation lorsque vous utilisez le contrôle d'accès IAM pour Amazon MSK. Lorsque vous incluez dans votre politique d'autorisation une action de la colonne *Action* du tableau, vous devez également inclure les actions correspondantes de la colonne *Actions requises*. 


| Action | Description | Actions requises | Ressources requises | Applicable aux clusters sans serveur | 
| --- | --- | --- | --- | --- | 
| kafka-cluster:Connect | Octroie l'autorisation de se connecter et de s'authentifier à un cluster. | Aucune | cluster | Oui | 
| kafka-cluster:DescribeCluster | Octroie l'autorisation de décrire divers aspects du cluster, équivalent à l'ACL DESCRIBE CLUSTER d'Apache Kafka. |  `kafka-cluster:Connect`  | cluster | Oui | 
| kafka-cluster:AlterCluster | Octroi l'autorisation de modifier divers aspects du cluster, équivalent à l'ACL ALTER CLUSTER d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeCluster`  | cluster | Non | 
| kafka-cluster:DescribeClusterDynamicConfiguration | Octroie l'autorisation de décrire la configuration dynamique d'un cluster, équivalent à l'ACL DESCRIBE\$1CONFIGS CLUSTER d'Apache Kafka. |  `kafka-cluster:Connect`  | cluster | Non | 
| kafka-cluster:AlterClusterDynamicConfiguration | Octroie l'autorisation de modifier la configuration dynamique d'un cluster, équivalente à l'ACL ALTER\$1CONFIGS CLUSTER d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | cluster | Non | 
| kafka-cluster:WriteDataIdempotently | Octroie l'autorisation d'écrire des données de manière idempotente dans un cluster, équivalent à l'ACL IDEMPOTENT\$1WRITE CLUSTER d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:WriteData`  | cluster | Oui | 
| kafka-cluster:CreateTopic | Accorde l'autorisation de créer des sujets sur un cluster, ce qui est équivalent à l' CLUSTER/TOPIC ACL CREATE d'Apache Kafka. |  `kafka-cluster:Connect`  | topic | Oui | 
| kafka-cluster:DescribeTopic | Octroie l'autorisation de décrire des rubriques dans un cluster, équivalent à l'ACL DESCRIBE TOPIC d'Apache Kafka. |  `kafka-cluster:Connect`  | topic | Oui | 
| kafka-cluster:AlterTopic | Octroie l'autorisation de modifier des rubriques dans un cluster, équivalent à l'ACL ALTER TOPIC d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topic | Oui | 
| kafka-cluster:DeleteTopic | Octroie l'autorisation de supprimer des rubriques dans un cluster, équivalent à l'ACL DELETE TOPIC d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topic | Oui | 
| kafka-cluster:DescribeTopicDynamicConfiguration | Octroie l'autorisation de décrire la configuration dynamique des rubriques dans un cluster, équivalent à l'ACL DESCRIBE\$1CONFIGS TOPIC d'Apache Kafka. |  `kafka-cluster:Connect`  | topic | Oui | 
| kafka-cluster:AlterTopicDynamicConfiguration | Octroie l'autorisation de modifier la configuration dynamique des rubriques dans un cluster, équivalent à l'ACL ALTER\$1CONFIGS TOPIC d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration`  | topic | Oui | 
| kafka-cluster:ReadData | Octroie l'autorisation de lire des données provenant de rubriques dans un cluster, équivalent à l'ACL READ TOPIC d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterGroup`  | topic | Oui | 
| kafka-cluster:WriteData | Autorise l'écriture des données dans les rubriques d'un cluster, équivalent à l'ACL WRITE TOPIC d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topic | Oui | 
| kafka-cluster:DescribeGroup | Octroie l'autorisation de décrire des groupes dans un cluster, équivalent à l'ACL DESCRIBE GROUP d'Apache Kafka. |  `kafka-cluster:Connect`  | groupe | Oui | 
| kafka-cluster:AlterGroup | Octroie l'autorisation de rejoindre des groupes dans un cluster, équivalent à l'ACL READ GROUP d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | groupe | Oui | 
| kafka-cluster:DeleteGroup | Octroie l'autorisation de supprimer des groupes d'un cluster, équivalent à l'ACL DELETE GROUP d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | groupe | Oui | 
| kafka-cluster:DescribeTransactionalId | Accorde l'autorisation de décrire les transactions IDs sur un cluster, ce qui est équivalent à l'ACL DESCRIBE TRANSACTIONAL\$1ID d'Apache Kafka. |  `kafka-cluster:Connect`  | transactional-id | Oui | 
| kafka-cluster:AlterTransactionalId | Accorde l'autorisation de modifier les transactions IDs sur un cluster, ce qui est équivalent à l'ACL WRITE TRANSACTIONAL\$1ID d'Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:WriteData`  | transactional-id | Oui | 

Vous pouvez utiliser le caractère générique astérisque (\$1) autant de fois que vous le souhaitez dans une action après deux points. Voici quelques exemples.
+ `kafka-cluster:*Topic` représente `kafka-cluster:CreateTopic`, `kafka-cluster:DescribeTopic`, `kafka-cluster:AlterTopic` et `kafka-cluster:DeleteTopic`. Cela n'inclut pas `kafka-cluster:DescribeTopicDynamicConfiguration` ou `kafka-cluster:AlterTopicDynamicConfiguration`.
+ `kafka-cluster:*` représente toutes les autorisations.

## Ressources relatives aux politiques d'autorisation
<a name="msk-iam-resources"></a>

Le tableau suivant montre les quatre types de ressources que vous pouvez utiliser dans une politique d'autorisation lorsque vous utilisez le contrôle d'accès IAM pour Amazon MSK. Vous pouvez obtenir le nom de ressource Amazon (ARN) du cluster à partir du AWS Management Console ou en utilisant l'[DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)API ou la commande [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI . Vous pouvez ensuite utiliser l'ARN du cluster pour créer un identifiant ARNs de sujet, de groupe et de transaction. Pour spécifier une ressource dans une politique d'autorisation, utilisez l'ARN de cette ressource.


| Ressource | Format ARN | 
| --- | --- | 
| Cluster | arn:aws:kafka : ::cluster//regionaccount-idcluster-namecluster-uuid | 
| Rubrique | arn:aws:kafka : ::topic//regionaccount-idcluster-namecluster-uuidtopic-name | 
| Groupe | arn:aws:kafka : :group///regionaccount-idcluster-namecluster-uuidgroup-name | 
| ID transactionnel | arn:aws:kafka : :transactional-id//regionaccount-idcluster-namecluster-uuidtransactional-id | 

Vous pouvez utiliser le caractère générique astérisque (\$1) autant de fois que vous le souhaitez dans la partie de l'ARN située après `:cluster/`, `:topic/`, `:group/` et `:transactional-id/`. Les exemples suivants illustrent la manière dont vous pouvez utiliser le caractère générique astérisque (\$1) pour faire référence à plusieurs ressources :
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/*`: tous les sujets d'un cluster nommé MyTestCluster, quel que soit l'UUID du cluster.
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*_test`: toutes les rubriques dont le nom se termine par « \$1test » dans le cluster dont le nom est MyTestCluster et dont l'UUID est abcd1234-0123-abcd-5678-1234abcd-1.
+ `arn:aws:kafka:us-east-1:0123456789012:transactional-id/MyTestCluster/*/5555abcd-1111-abcd-1234-abcd1234-1`: toutes les transactions dont l'ID transactionnel est 5555abcd-1111-abcd-1234-abcd1234-1, dans toutes les incarnations d'un cluster nommé dans votre compte. MyTestCluster Cela signifie que si vous créez un cluster nommé MyTestCluster, que vous le supprimez, puis que vous créez un autre cluster portant le même nom, vous pouvez utiliser cet ARN de ressource pour représenter le même identifiant de transaction sur les deux clusters. Cependant, le cluster supprimé n'est pas accessible.

# Cas d'utilisation courants de la politique d'autorisation des clients
<a name="iam-access-control-use-cases"></a>

La première colonne du tableau suivant présente certains cas d'utilisation courants. Pour autoriser un client à exécuter un cas d'utilisation donné, incluez les actions requises pour ce cas d'utilisation dans la politique d'autorisation du client et définissez `Effect` sur `Allow`.

Pour plus d'informations sur toutes les actions faisant partie du contrôle d'accès IAM pour Amazon MSK, consultez [Sémantique des politiques d'autorisation, des actions et des ressources de l'IAM](kafka-actions.md).

**Note**  
Les actions sont refusées par défaut. Vous devez autoriser explicitement chaque action que vous souhaitez autoriser le client à effectuer.


****  

| Cas d’utilisation | Actions requises | 
| --- | --- | 
| Admin |  `kafka-cluster:*`  | 
| Création d’une rubrique |  `kafka-cluster:Connect` `kafka-cluster:CreateTopic`  | 
| Produire des données |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData`  | 
| Consommer des données |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:DescribeGroup` `kafka-cluster:AlterGroup` `kafka-cluster:ReadData`  | 
| Produire des données de manière idempotente |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:WriteDataIdempotently`  | 
| Produire des données de manière transactionnelle |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:AlterTransactionalId`  | 
| Décrire la configuration d'un cluster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | 
| Mettre à jour la configuration d'un cluster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration` `kafka-cluster:AlterClusterDynamicConfiguration`  | 
| Décrire la configuration d'une rubrique |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` | 
| Mettre à jour la configuration d'une rubrique |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` `kafka-cluster:AlterTopicDynamicConfiguration`  | 
| Modifier une rubrique |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterTopic`  | 