

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.

# Protection des données dans Amazon Managed Streaming for Apache Kafka
<a name="data-protection"></a>

Le modèle de [responsabilité AWS partagée Le modèle](https://aws.amazon.com/compliance/shared-responsibility-model/) s'applique à la protection des données dans Amazon Managed Streaming for Apache Kafka. Comme décrit dans ce modèle, AWS est chargé de protéger l'infrastructure mondiale qui gère tous les AWS Cloud. La gestion du contrôle de votre contenu hébergé sur cette infrastructure relève de votre responsabilité. Vous êtes également responsable des tâches de configuration et de gestion de la sécurité des Services AWS que vous utilisez. Pour plus d’informations sur la confidentialité des données, consultez [Questions fréquentes (FAQ) sur la confidentialité des données](https://aws.amazon.com/compliance/data-privacy-faq/). Pour en savoir plus sur la protection des données en Europe, consultez le billet de blog [Modèle de responsabilité partagée d’AWS et RGPD (Règlement général sur la protection des données)](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) sur le *Blog de sécuritéAWS *.

À des fins de protection des données, nous vous recommandons de protéger les Compte AWS informations d'identification et de configurer les utilisateurs individuels avec AWS IAM Identity Center ou Gestion des identités et des accès AWS (IAM). Ainsi, chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour exécuter ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :
+ Utilisez l’authentification multifactorielle (MFA) avec chaque compte.
+  SSL/TLS À utiliser pour communiquer avec AWS les ressources. Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Configurez l'API et la journalisation de l'activité des utilisateurs avec AWS CloudTrail. Pour plus d'informations sur l'utilisation des CloudTrail sentiers pour capturer AWS des activités, consultez la section [Utilisation des CloudTrail sentiers](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) dans le *guide de AWS CloudTrail l'utilisateur*.
+ Utilisez des solutions de AWS chiffrement, ainsi que tous les contrôles de sécurité par défaut qu'ils contiennent Services AWS.
+ Utilisez des services de sécurité gérés avancés tels qu’Amazon Macie, qui contribuent à la découverte et à la sécurisation des données sensibles stockées dans Amazon S3.
+ Si vous avez besoin de modules cryptographiques validés par la norme FIPS 140-3 pour accéder AWS via une interface de ligne de commande ou une API, utilisez un point de terminaison FIPS. Pour plus d’informations sur les points de terminaison FIPS disponibles, consultez [Norme FIPS (Federal Information Processing Standard) 140-3](https://aws.amazon.com/compliance/fips/).

Nous vous recommandons fortement de ne jamais placer d’informations confidentielles ou sensibles, telles que les adresses e-mail de vos clients, dans des balises ou des champs de texte libre tels que le champ **Nom**. Cela inclut lorsque vous travaillez avec Amazon MSK ou une autre entreprise à Services AWS l'aide de la console, de l'API ou AWS SDKs. AWS CLI Toutes les données que vous entrez dans des balises ou des champs de texte de forme libre utilisés pour les noms peuvent être utilisées à des fins de facturation ou dans les journaux de diagnostic. Si vous fournissez une adresse URL à un serveur externe, nous vous recommandons fortement de ne pas inclure d’informations d’identification dans l’adresse URL permettant de valider votre demande adressée à ce serveur.

**Topics**
+ [Chiffrement Amazon MSK](msk-encryption.md)
+ [Commencez avec le chiffrement Amazon MSK](msk-working-with-encryption.md)
+ [Utiliser Amazon MSK APIs avec des points de terminaison VPC d'interface](privatelink-vpc-endpoints.md)

# Chiffrement Amazon MSK
<a name="msk-encryption"></a>

Amazon MSK fournit des options de chiffrement des données que vous pouvez utiliser pour répondre à des exigences strictes en matière de gestion des données. Les certificats utilisés par Amazon MSK pour le chiffrement doivent être renouvelés tous les 13 mois. Amazon MSK renouvelle automatiquement ces certificats pour tous les clusters. Les clusters Express Broker restent en `ACTIVE` état lorsqu'Amazon MSK lance l'opération de mise à jour des certificats. Pour les clusters de courtiers standard, Amazon MSK définit l'état du cluster au `MAINTENANCE` moment où il commence l'opération de mise à jour des certificats. MSK le rétablit à la fin `ACTIVE` de la mise à jour. Lorsqu'un cluster est en cours d'opération de mise à jour des certificats, vous pouvez continuer à produire et à consommer des données, mais vous ne pouvez effectuer aucune opération de mise à jour sur celui-ci.

## Chiffrement Amazon MSK au repos
<a name="msk-encryption-at-rest"></a>

Amazon MSK s'intègre à [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/) (KMS) pour permettre le chiffrement transparent côté serveur. Amazon MSK chiffre toujours vos données au repos. Lorsque vous créez un cluster MSK, vous pouvez spécifier la AWS KMS key que vous souhaitez qu'Amazon MSK utilise pour chiffrer vos données au repos. Si vous ne spécifiez pas de clé KMS, Amazon MSK crée une [Clé gérée par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) pour vous et l'utilise en votre nom. Pour plus d'informations sur les clés KMS, consultez [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) dans le *Guide du développeur AWS Key Management Service *.

## Chiffrement Amazon MSK en transit
<a name="msk-encryption-in-transit"></a>

Amazon MSK utilise TLS 1.2. Par défaut, il chiffre les données en transit entre les agents de votre cluster MSK. Vous pouvez remplacer cette valeur par défaut au moment de la création du cluster. 

Pour la communication entre clients et brokers, vous devez spécifier l'un des trois paramètres suivants :
+ Autoriser uniquement les données chiffrées TLS. Il s’agit du paramètre par défaut.
+ Autoriser à la fois le texte brut, ainsi que les données chiffrées TLS.
+ Autoriser uniquement les données en texte brut.

Les courtiers Amazon MSK utilisent des AWS Certificate Manager certificats publics. Par conséquent, tout magasin fiable qui fait confiance à Amazon Trust Services approuve également les certificats des agents Amazon MSK.

Bien que nous vous recommandions d'activer le chiffrement en transit, celui-ci peut entraîner des charges supplémentaires d'UC et quelques millisecondes de latence. La plupart des cas d'utilisation ne sont toutefois pas sensibles à ces différences, cependant l'ampleur de l'impact dépend de la configuration du cluster, des clients et du profil d'utilisation. 

# Commencez avec le chiffrement Amazon MSK
<a name="msk-working-with-encryption"></a>

Lors de la création d'un cluster MSK, vous pouvez spécifier les paramètres de chiffrement au format JSON. Voici un exemple.

```
{
   "EncryptionAtRest": {
       "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcdabcd-1234-abcd-1234-abcd123e8e8e"
    },
   "EncryptionInTransit": {
        "InCluster": true,
        "ClientBroker": "TLS"
    }
}
```

Pour `DataVolumeKMSKeyId`, vous pouvez spécifier une [clé gérée par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) ou la Clé gérée par AWS pour MSK dans votre compte (`alias/aws/kafka`). Si vous ne le spécifiez pas`EncryptionAtRest`, Amazon MSK chiffre toujours vos données au repos sous le. Clé gérée par AWS Pour déterminer la clé utilisée par votre cluster, envoyez une requête `GET` ou invoquez l'opération d'API `DescribeCluster`. 

Pour `EncryptionInTransit`, la valeur par défaut de `InCluster` est true, mais vous pouvez la définir sur false si vous ne voulez pas qu'Amazon MSK chiffre vos données au fur et à mesure qu'elles passent entre les agents.

Pour spécifier le mode de chiffrement des données en transit entre les clients et les brokers, définissez `ClientBroker` sur l'une des trois valeurs suivantes : `TLS`, `TLS_PLAINTEXT` ou `PLAINTEXT`.

**Topics**
+ [Spécifiez les paramètres de chiffrement lors de la création d'un cluster Amazon MSK](msk-working-with-encryption-cluster-create.md)
+ [Testez le chiffrement Amazon MSK TLS](msk-working-with-encryption-test-tls.md)

# Spécifiez les paramètres de chiffrement lors de la création d'un cluster Amazon MSK
<a name="msk-working-with-encryption-cluster-create"></a>

Ce processus décrit comment spécifier les paramètres de chiffrement lors de la création d'un cluster Amazon MSK.

**Spécifier les paramètres de chiffrement lors de la création d'un cluster**

1. Enregistrez le contenu de l'exemple précédent dans un fichier et donnez au fichier le nom souhaité. Par exemple, appelez-le `encryption-settings.json`.

1. Exécutez la commande `create-cluster` et utilisez l'option `encryption-info` pour pointer vers le fichier dans lequel vous avez enregistré votre JSON de configuration. Voici un exemple. *\$1YOUR MSK VERSION\$1*Remplacez-le par une version qui correspond à la version du client Apache Kafka. Pour de plus amples informations sur la recherche de la version de votre cluster MSK, consultez [Déterminer la version de votre cluster MSK](create-topic.md#find-msk-cluster-version). Sachez que l'utilisation d'une version du client Apache Kafka différente de la version de votre cluster MSK peut entraîner la corruption, la perte et l'arrêt des données d'Apache Kafka.

   ```
   aws kafka create-cluster --cluster-name "ExampleClusterName" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file://encryptioninfo.json --kafka-version "{YOUR MSK VERSION}" --number-of-broker-nodes 3
   ```

   Voici un exemple de réponse réussie après l'exécution de cette commande.

   ```
   {
       "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e",
       "ClusterName": "ExampleClusterName",
       "State": "CREATING"
   }
   ```

# Testez le chiffrement Amazon MSK TLS
<a name="msk-working-with-encryption-test-tls"></a>

Ce processus décrit comment tester le chiffrement TLS sur Amazon MSK.

**Pour tester le chiffrement TLS**

1. Créez une machine client en suivant les instructions de [Étape 3 : Créer un ordinateur client](create-client-machine.md).

1. Installez Apache Kafka sur l'ordinateur client.

1. Dans cet exemple, nous utilisons le magasin fiable JVM pour parler au cluster MSK. Pour ce faire, créez d'abord un dossier nommé `/tmp` sur l'ordinateur client. Ensuite, accédez au dossier `bin` de l'installation d'Apache Kafka et exécutez la commande suivante. (Votre chemin JVM peut être différent.)

   ```
   cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks
   ```

1. Dans le dossier `bin` de l'installation d'Apache Kafka sur l'ordinateur client, créez un fichier texte nommé `client.properties` avec le contenu suivant.

   ```
   security.protocol=SSL
   ssl.truststore.location=/tmp/kafka.client.truststore.jks
   ```

1. Exécutez la commande suivante sur une machine sur laquelle le est AWS CLI installé, en le *clusterARN* remplaçant par l'ARN de votre cluster.

   ```
   aws kafka get-bootstrap-brokers --cluster-arn clusterARN
   ```

   Un résultat réussi ressemble à ce qui suit. Enregistrez ce résultat car vous en avez besoin pour l'étape suivante.

   ```
   {
       "BootstrapBrokerStringTls": "a-1.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-3.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-2.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123"
   }
   ```

1. Exécutez la commande suivante, en la *BootstrapBrokerStringTls* remplaçant par l'un des points de terminaison du broker que vous avez obtenus à l'étape précédente.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
   ```

1. Ouvrez une nouvelle fenêtre de commande et connectez-vous au même ordinateur client. Exécutez ensuite la commande suivante pour créer un consommateur de console.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
   ```

1. Dans la fenêtre du producteur, tapez un message texte suivi d'un retour et recherchez le même message dans la fenêtre du consommateur. Amazon MSK a chiffré ce message en transit.

Pour de plus amples informations sur la configuration des clients Apache Kafka pour qu'ils fonctionnent avec des données chiffrées, veuillez consulter [Configuration des clients Kafka](https://kafka.apache.org/documentation/#security_configclients).

# Utiliser Amazon MSK APIs avec des points de terminaison VPC d'interface
<a name="privatelink-vpc-endpoints"></a>

Vous pouvez utiliser un point de terminaison VPC d'interface, alimenté par AWS PrivateLink, pour empêcher le trafic entre votre Amazon VPC et Amazon APIs MSK de quitter le réseau Amazon. Les points de terminaison VPC d'interface ne nécessitent pas de passerelle Internet, de périphérique NAT, de connexion VPN ou de connexion Direct AWS Connect. [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)est une AWS technologie qui permet une communication privée entre les AWS services à l'aide d'une interface réseau élastique avec private IPs dans votre Amazon VPC. Pour plus d'informations, consultez [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) and [Interface VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint) ().AWS PrivateLink

Vos applications peuvent se connecter à Amazon MSK Provisioned et MSK Connect APIs à l'aide de. AWS PrivateLink Pour commencer, créez un point de terminaison VPC d'interface pour votre API Amazon MSK afin de démarrer le trafic en provenance et à destination de vos ressources Amazon VPC via le point de terminaison VPC d'interface. Les points de terminaison VPC d'interface compatibles FIPS sont disponibles pour les régions des États-Unis. Pour plus d'informations, consultez la section [Créer un point de terminaison d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint).

Grâce à cette fonctionnalité, vos clients Apache Kafka peuvent récupérer dynamiquement les chaînes de connexion pour se connecter aux ressources MSK Provisioned ou MSK Connect sans passer par Internet pour récupérer les chaînes de connexion.

Lors de la création d'un point de terminaison VPC d'interface, choisissez l'un des points de terminaison de nom de service suivants :

**Pour MSK Provisioned :**
+ Les points de terminaison de nom de service suivants ne sont plus pris en charge pour les nouvelles connexions :
  + com.amazonaws.region.kafka
  + com.amazonaws.region.kafka-fips (compatible FIPS)
+ Le service de point de terminaison Dualstack prenant en charge les deux IPv4 et le IPv6 trafic est le suivant :
  + aws.api.region.kafka-api
  + aws.api.region. kafka-api-fips (compatible FIPS)

Pour configurer les points de terminaison à double pile, vous devez suivre les directives relatives aux points de terminaison [à double pile et FIPS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html).

Où est le nom de votre région. Choisissez ce nom de service pour fonctionner avec MSK Provisioned APIs compatible. Pour plus d'informations, consultez la section [Operations in the https://docs.aws.amazon.com/msk/](https://docs.aws.amazon.com/msk/1.0/apireference/operations.html) *1.0/apireference/*.

**Pour MSK Connect :**
+ com.amazonaws.region.kafkaconnect

Où est le nom de votre région. Choisissez ce nom de service pour fonctionner avec MSK Connect APIs compatible. Pour plus d'informations, consultez [Actions](https://docs.aws.amazon.com/MSKC/latest/mskc/API_Operations.html) dans le manuel *Amazon MSK Connect API Reference*.

*Pour plus d'informations, y compris step-by-step les instructions pour créer un point de terminaison VPC d'interface, consultez la section [Création d'un point de terminaison d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint) dans le AWS PrivateLink Guide.*

## Contrôlez l'accès aux points de terminaison VPC pour Amazon MSK Provisioned ou MSK Connect APIs
<a name="vpc-endpoints-control-access"></a>

Les politiques de point de terminaison VPC vous permettent de contrôler l'accès en attachant une politique à un point de terminaison VPC ou en utilisant des champs supplémentaires dans une politique attachée à un utilisateur, un groupe ou un rôle IAM afin de limiter l'accès uniquement via le point de terminaison VPC spécifié. Utilisez l'exemple de politique approprié pour définir les autorisations d'accès pour le service MSK Provisioned ou MSK Connect.

Si vous n’attachez pas de stratégie quand vous créez un point de terminaison, Amazon VPC attache une stratégie par défaut pour vous qui autorise un accès total au service. Une politique de point de terminaison n’annule pas et ne remplace pas les politiques IAM ou les politiques spécifiques aux services. Il s’agit d’une politique distincte qui contrôle l’accès depuis le point de terminaison jusqu’au service spécifié.

*Pour plus d'informations, consultez la section [Contrôle de l'accès aux services avec des points de terminaison VPC dans le guide](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).AWS PrivateLink *

------
#### [ MSK Provisioned — VPC policy example ]

**Accès en lecture seule**  
Cet exemple de politique peut être attaché à un point de terminaison VPC. (Pour de plus amples informations, veuillez consulter Contrôle de l'accès aux ressources VPC Amazon). Il limite les actions à la seule liste et à la description des opérations via le point de terminaison VPC auquel il est attaché.

```
{
  "Statement": [
    {
      "Sid": "MSKReadOnly",
      "Principal": "*",
      "Action": [
        "kafka:List*",
        "kafka:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

**MSK Provisioned — Exemple de politique de point de terminaison VPC**  
Restreindre l'accès à un cluster MSK spécifique

Cet exemple de politique peut être attaché à un point de terminaison VPC. Il restreint l'accès à un cluster Kafka spécifique via le point de terminaison VPC auquel il est attaché.

```
{
  "Statement": [
    {
      "Sid": "AccessToSpecificCluster",
      "Principal": "*",
      "Action": "kafka:*",
      "Effect": "Allow",
      "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster"
    }
  ]
}
```

------
#### [ MSK Connect — VPC endpoint policy example ]

**Répertorier les connecteurs et créer un nouveau connecteur**  
Voici un exemple de politique de point de terminaison pour MSK Connect. Cette politique permet au rôle spécifié de répertorier les connecteurs et de créer un nouveau connecteur.

```
{
    "Version": "2012-10-17", 		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "MSKConnectPermissions",
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:ListConnectors",
                "kafkaconnect:CreateConnector"
            ],
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/MyMSKConnectExecutionRole"
                ]
            }
        }
    ]
}
```

**MSK Connect — Exemple de politique de point de terminaison VPC**  
Autorise uniquement les demandes provenant d'une adresse IP spécifique dans le VPC spécifié

L’exemple suivant montre une politique qui autorise uniquement les demandes provenant d’une adresse IP spécifiée dans le VPC spécifié. Les demandes provenant d’autres adresses IP échoueront.

```
{
    "Statement": [
        {
            "Action": "kafkaconnect:*",
            "Effect": "Allow",
            "Principal": "*",
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:VpcSourceIp": "192.0.2.123"
                },
        "StringEquals": {
                    "aws:SourceVpc": "vpc-555555555555"
                }
            }
        }
    ]
}
```

------