

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.

# Sécurité dans AWS IoT Greengrass
<a name="security"></a>

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) décrit ceci comme la sécurité *du* cloud et la sécurité *dans* le cloud :
+ **Sécurité du cloud** : AWS est chargée de protéger l'infrastructure qui exécute les AWS services dans le AWS Cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans le cadre des programmes de [AWS conformité Programmes](https://aws.amazon.com/compliance/programs/) de de conformité. Pour en savoir plus sur les programmes de conformité qui s'appliquent à AWS IoT Greengrass, voir [AWS Services concernés par programme de conformitéAWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Sécurité dans le cloud** : votre responsabilité est déterminée par le service AWS que vous utilisez. Vous êtes également responsable d’autres facteurs, y compris la sensibilité de vos données, les exigences de votre entreprise, et la législation et la réglementation applicables.

Lorsque vous les utilisez AWS IoT Greengrass, vous êtes également responsable de la sécurisation de vos appareils, de votre connexion au réseau local et de vos clés privées.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de son utilisation AWS IoT Greengrass. Les rubriques suivantes expliquent comment procéder à la configuration AWS IoT Greengrass pour atteindre vos objectifs de sécurité et de conformité. Vous apprendrez également à utiliser d'autres AWS services qui vous aident à surveiller et à sécuriser vos AWS IoT Greengrass ressources. 

**Topics**
+ [Protection des données dans AWS IoT Greengrass](data-protection.md)
+ [Authentification et autorisation de l'appareil pour AWS IoT Greengrass](device-auth.md)
+ [Gestion des identités et des accès pour AWS IoT Greengrass](security-iam.md)
+ [Autoriser le trafic des appareils via un proxy ou un pare-feu](allow-device-traffic.md)
+ [Validation de conformité pour AWS IoT Greengrass](compliance-validation.md)
+ [Points de terminaison FIPS](FIPS.md)
+ [Résilience dans AWS IoT Greengrass](disaster-recovery-resiliency.md)
+ [Sécurité de l'infrastructure dans AWS IoT Greengrass](infrastructure-security.md)
+ [Analyse de configuration et de vulnérabilité dans AWS IoT Greengrass](vulnerability-analysis-and-management.md)
+ [Intégrité du code dans AWS IoT Greengrass V2](code-integrity.md)
+ [AWS IoT Greengrass et points de terminaison VPC d'interface ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Bonnes pratiques en matière de sécurité pour AWS IoT Greengrass](security-best-practices.md)

# Protection des données dans AWS IoT Greengrass
<a name="data-protection"></a>

Le [modèle de responsabilité AWS partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) de s'applique à la protection des données dans AWS IoT Greengrass. 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 AWS IoT Greengrass ou d'autres Services AWS utilisateurs 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.

Pour plus d'informations sur la protection des informations sensibles dans AWS IoT Greengrass, consultez[Ne journalisez pas les informations sensibles](security-best-practices.md#protect-pii).

Pour en savoir plus sur la protection des données, consultez le billet de blog [Modèle de responsabilité partagée AWS et RGPD](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) sur le *Blog sur la sécurité d’AWS *.

**Topics**
+ [Chiffrement des données](data-encryption.md)
+ [Intégration de sécurité matérielle](hardware-security.md)

# Chiffrement des données
<a name="data-encryption"></a>

AWS IoT Greengrass utilise le chiffrement pour protéger les données en transit (sur Internet ou sur un réseau local) et au repos (stockées dans le AWS Cloud).

Les appareils d'un AWS IoT Greengrass environnement collectent souvent des données qui sont envoyées aux AWS services pour un traitement ultérieur. Pour plus d'informations sur le chiffrement des données sur d'autres AWS services, consultez la documentation de sécurité de ce service.

**Topics**
+ [Chiffrement en transit](encryption-in-transit.md)
+ [Chiffrement au repos](encryption-at-rest.md)
+ [Gestion des clés pour l’appareil principal Greengrass (noyau)](key-management.md)

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

AWS IoT Greengrass dispose de deux modes de communication lorsque les données sont en transit :
+ [Données en transit sur Internet](#data-in-transit-internet). La communication entre un noyau Greengrass et AWS IoT Greengrass Internet est cryptée.
+ [Données sur l’appareil principal (noyau)](#data-in-transit-locally). La communication entre les composants du périphérique principal de Greengrass n'est pas cryptée.

## Données en transit sur Internet
<a name="data-in-transit-internet"></a>

AWS IoT Greengrass utilise le protocole TLS (Transport Layer Security) pour chiffrer toutes les communications sur Internet. Toutes les données envoyées au AWS Cloud sont envoyées via une connexion TLS à l'aide des protocoles MQTT ou HTTPS. Elles sont donc sécurisées par défaut. AWS IoT Greengrass utilise le modèle AWS IoT de sécurité des transports. Pour de plus amples informations, veuillez consulter [Sécurité du transport](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) dans le *Manuel du développeur AWS IoT Core *.

## Données sur l’appareil principal (noyau)
<a name="data-in-transit-locally"></a>

AWS IoT Greengrass ne chiffre pas les données échangées localement sur l'appareil principal de Greengrass car les données ne quittent pas l'appareil. Cela inclut la communication entre les composants définis par l'utilisateur, le SDK de l' AWS IoT appareil et les composants publics, tels que le gestionnaire de flux.

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

AWS IoT Greengrass stocke vos données :
+ [Données au repos dans le AWS Cloud](#data-at-rest-cloud). Ces données sont cryptées.
+ [Données au repos sur le noyau Greengrass](#data-at-rest-device). Ces données ne sont pas cryptées (sauf les copies locales de vos secrets).

## Données au repos dans le AWS Cloud
<a name="data-at-rest-cloud"></a>

AWS IoT Greengrass chiffre les données clients stockées dans le AWS Cloud. Ces données sont protégées à l'aide de AWS KMS clés gérées par AWS IoT Greengrass.

## Données au repos sur le noyau Greengrass
<a name="data-at-rest-device"></a>

AWS IoT Greengrass s'appuie sur les autorisations de fichiers Unix et le chiffrement complet du disque (s'il est activé) pour protéger les données au repos sur le cœur. Il est de votre responsabilité de sécuriser le système de fichiers et l'appareil.

Cependant, AWS IoT Greengrass crypte les copies locales de vos secrets récupérés à partir de AWS Secrets Manager. Pour plus d'informations, consultez le composant du [gestionnaire de secrets](secret-manager-component.md).

# Gestion des clés pour l’appareil principal Greengrass (noyau)
<a name="key-management"></a>

Il est de la responsabilité du client de garantir le stockage sécurisé des clés cryptographiques (publiques et privées) sur l'appareil principal de Greengrass. AWS IoT Greengrass utilise des clés publiques et privées dans le scénario suivant :
+ La clé client IoT est utilisée avec le certificat IoT pour authentifier la liaison TLS (Transport Layer Security) lorsqu'un noyau Greengrass se connecte à AWS IoT Core. Pour de plus amples informations, veuillez consulter [Authentification et autorisation de l'appareil pour AWS IoT Greengrass](device-auth.md).
**Note**  
La clé et le certificat sont également appelés clé privée principale et certificat d’appareil noyau.

Un appareil Greengrass Core prend en charge le stockage de clés privées à l'aide des autorisations du système de fichiers ou d'un module [de sécurité matériel](hardware-security.md). Si vous utilisez des clés privées basées sur le système de fichiers, vous êtes responsable de leur stockage sécurisé sur l’appareil noyau.

# Intégration de sécurité matérielle
<a name="hardware-security"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.3 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 

Vous pouvez configurer le logiciel AWS IoT Greengrass Core pour utiliser un module de sécurité matériel (HSM) via l'interface [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Cette fonctionnalité vous permet de stocker en toute sécurité la clé privée et le certificat de l'appareil afin qu'ils ne soient pas exposés ou dupliqués dans le logiciel. Vous pouvez stocker la clé privée et le certificat sur un module matériel tel qu'un HSM ou un module de plateforme sécurisée (TPM).

Le logiciel AWS IoT Greengrass Core utilise une clé privée et un certificat X.509 pour authentifier les connexions aux services AWS IoT et AWS IoT Greengrass . Le [composant du gestionnaire de secrets](secret-manager-component.md) utilise cette clé privée pour chiffrer et déchiffrer en toute sécurité les secrets que vous déployez sur un appareil principal de Greengrass. Lorsque vous configurez un périphérique principal pour utiliser un HSM, ces composants utilisent la clé privée et le certificat que vous stockez dans le HSM.

Le [composant broker Moquette MQTT](mqtt-broker-moquette-component.md) stocke également une clé privée pour son certificat de serveur MQTT local. Ce composant stocke la clé privée sur le système de fichiers de l'appareil dans le dossier de travail du composant. Actuellement, AWS IoT Greengrass ne prend pas en charge le stockage de cette clé privée ou de ce certificat dans un HSM.

**Astuce**  
Recherchez les appareils compatibles avec cette fonctionnalité dans le [catalogue d'appareils AWS partenaires](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1).

**Topics**
+ [Exigences](#hardware-security-requirements)
+ [Bonnes pratiques en matière de sécurité matérielle](#hardware-security-best-practices)
+ [Installation du logiciel AWS IoT Greengrass Core avec sécurité matérielle](#install-with-hardware-security)
+ [Configuration de la sécurité matérielle sur un périphérique principal existant](#enable-hardware-security)
+ [Utiliser du matériel sans support PKCS \$111](#hardware-without-pkcs11)
+ [Consultez aussi](#hardware-security-see-also)

## Exigences
<a name="hardware-security-requirements"></a>

Vous devez satisfaire aux exigences suivantes pour utiliser un HSM sur un appareil principal Greengrass :
+ [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.3 ou version ultérieure installé sur le périphérique principal. Vous pouvez choisir une version compatible lorsque vous installez le logiciel AWS IoT Greengrass Core sur un appareil principal.
+ Le [composant fournisseur PKCS \$111](pkcs11-provider-component.md) installé sur le périphérique principal. Vous pouvez télécharger et installer ce composant lorsque vous installez le logiciel AWS IoT Greengrass Core sur un appareil principal.
+ <a name="hardware-security-module-requirements-key"></a>Module de sécurité matérielle qui prend en charge le schéma de signature [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) et les clés RSA d'une taille de clé RSA-2048 (ou supérieure) ou les clés ECC.
**Note**  <a name="hardware-security-module-requirements-key-notes"></a>
Pour utiliser un module de sécurité matériel avec des clés ECC, vous devez utiliser [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 ou version ultérieure.  
Pour utiliser un module de sécurité matériel et un [gestionnaire de secrets](secret-manager-component.md), vous devez utiliser un module de sécurité matériel avec des clés RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Une bibliothèque de fournisseur PKCS \$111 que le logiciel AWS IoT Greengrass Core peut charger au moment de l'exécution (à l'aide de libdl) pour appeler les fonctions PKCS \$111. La bibliothèque du fournisseur PKCS \$111 doit implémenter les opérations d'API PKCS \$111 suivantes :
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>Le module matériel doit être résolu par étiquette d'emplacement, tel que défini dans la spécification PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>Vous devez stocker la clé privée et le certificat dans le HSM dans le même emplacement, et ils doivent utiliser la même étiquette d'objet et le même ID d'objet, si le HSM prend en charge l'objet. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Le certificat et la clé privée doivent pouvoir être résolus par des libellés d'objets.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>La clé privée doit disposer des autorisations suivantes :
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Facultatif) Pour utiliser le [composant secret manager](secret-manager-component.md), vous devez utiliser la version 2.1.0 ou ultérieure, et la clé privée doit disposer des autorisations suivantes :
  + `unwrap`
  + `wrap`

## Bonnes pratiques en matière de sécurité matérielle
<a name="hardware-security-best-practices"></a>

Tenez compte des meilleures pratiques suivantes lorsque vous configurez la sécurité matérielle sur les appareils principaux de Greengrass.
+ Générer des clés privées directement sur le HSM en utilisant le générateur de nombres aléatoires du matériel interne. Cette approche est plus sûre que l'importation d'une clé privée que vous générez ailleurs, car la clé privée reste dans le HSM.
+ Configurez les clés privées pour qu'elles soient immuables et interdisez l'exportation.
+ Utilisez l'outil de provisionnement recommandé par le fournisseur du matériel HSM pour générer une demande de signature de certificat (CSR) à l'aide de la clé privée protégée par le matériel, puis utilisez la AWS IoT console ou l'API pour générer un certificat client.

**Note**  
Les bonnes pratiques de sécurité relatives à la rotation des clés ne s'appliquent pas lorsque vous générez des clés privées sur un HSM.

## Installation du logiciel AWS IoT Greengrass Core avec sécurité matérielle
<a name="install-with-hardware-security"></a>

Lorsque vous installez le logiciel AWS IoT Greengrass Core, vous pouvez le configurer pour utiliser une clé privée que vous générez dans un HSM. Cette approche suit les [meilleures pratiques de sécurité](#hardware-security-best-practices) pour générer la clé privée dans le HSM, afin que la clé privée reste dans le HSM.

Pour installer le logiciel AWS IoT Greengrass Core avec sécurité matérielle, procédez comme suit :

1. Générez une clé privée dans le HSM.

1. Créez une demande de signature de certificat (CSR) à partir de la clé privée.

1. Créez un certificat à partir du CSR. Vous pouvez créer un certificat signé par AWS IoT ou par une autre autorité de certification racine (CA). Pour plus d'informations sur l'utilisation d'une autre autorité de certification racine, voir [Création de vos propres certificats clients](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) dans le *Guide du AWS IoT Core développeur*.

1. Téléchargez le AWS IoT certificat et importez-le dans le HSM.

1. Installez le logiciel AWS IoT Greengrass Core à partir d'un fichier de configuration qui indique d'utiliser le composant fournisseur PKCS \$111 ainsi que la clé privée et le certificat du HSM.

Vous pouvez choisir l'une des options d'installation suivantes pour installer le logiciel AWS IoT Greengrass Core en toute sécurité matérielle :
+ **Installation manuelle**

  Choisissez cette option pour créer manuellement les AWS ressources requises et configurer la sécurité matérielle. Pour de plus amples informations, veuillez consulter [Installation AWS IoT Greengrass du logiciel Core avec provisionnement manuel des ressources](manual-installation.md).
+ **Installation avec provisionnement personnalisé**

  Choisissez cette option pour développer une application Java personnalisée qui crée automatiquement les AWS ressources requises et configure la sécurité du matériel. Pour de plus amples informations, veuillez consulter [Installez le logiciel AWS IoT Greengrass Core avec un provisionnement personnalisé des ressources](custom-provisioning.md).

Actuellement, AWS IoT Greengrass ne prend pas en charge l'installation du logiciel AWS IoT Greengrass Core avec sécurité matérielle lorsque vous effectuez une [installation avec le provisionnement automatique des ressources ou le provisionnement](quick-installation.md) du [AWS IoT parc](fleet-provisioning.md).

## Configuration de la sécurité matérielle sur un périphérique principal existant
<a name="enable-hardware-security"></a>

Vous pouvez importer la clé privée et le certificat d'un périphérique principal dans un HSM pour configurer la sécurité matérielle.

**Considérations**  
Vous devez disposer d'un accès root au système de fichiers de l'appareil principal.
Dans cette procédure, vous arrêtez le logiciel AWS IoT Greengrass principal, de sorte que le périphérique principal est hors ligne et indisponible pendant que vous configurez la sécurité matérielle.

Pour configurer la sécurité matérielle sur un périphérique principal existant, procédez comme suit :

1. Initialisez le HSM.

1. Déployez le [composant fournisseur PKCS \$111](pkcs11-provider-component.md) sur le périphérique principal.

1. Arrêtez le logiciel AWS IoT Greengrass Core.

1. Importez la clé privée et le certificat de l'appareil principal dans le HSM.

1. Mettez à jour le fichier de configuration du logiciel AWS IoT Greengrass Core pour utiliser la clé privée et le certificat du HSM.

1. Démarrez le logiciel AWS IoT Greengrass Core.

### Étape 1 : Initialisation du module de sécurité matérielle
<a name="enable-hardware-security-initialize-hsm"></a>

Procédez comme suit pour initialiser le HSM sur votre appareil principal.

**Pour initialiser le module de sécurité matérielle**
+ Initialisez un jeton PKCS \$111 dans le HSM et enregistrez l'ID de slot et le code PIN utilisateur associés au jeton. Consultez la documentation de votre HSM pour savoir comment initialiser un jeton. Vous utiliserez l'ID de slot et le code PIN de l'utilisateur ultérieurement lorsque vous déployez et configurez le composant fournisseur PKCS \$111.

### Étape 2 : Déployer le composant fournisseur PKCS \$111
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Procédez comme suit pour déployer et configurer le [composant fournisseur PKCS \$111](pkcs11-provider-component.md). Vous pouvez déployer le composant sur un ou plusieurs appareils principaux.

#### Pour déployer le composant fournisseur PKCS \$111 (console)
<a name="deploy-pkcs11-provider-component-console"></a>

1. Dans le menu de navigation de la [AWS IoT Greengrass console](https://console.aws.amazon.com/greengrass), sélectionnez **Composants**.

1. Sur la page **Composants**, choisissez l'onglet **Composants publics**, puis sélectionnez **aws.greengrass.crypto.Pkcs11Provider**.

1. Sur la page **aws.greengrass.crypto.Pkcs11Provider**, choisissez **Deploy (Déployer)**.

1. <a name="deploy-component-choose-deployment-step"></a>Dans **Ajouter au déploiement**, choisissez un déploiement existant à réviser ou choisissez de créer un nouveau déploiement, puis choisissez **Suivant**.

1. <a name="deploy-component-choose-target-step"></a>Si vous avez choisi de créer un nouveau déploiement, choisissez le périphérique principal ou le groupe d'objets cible pour le déploiement. Sur la page **Spécifier la cible**, sous **Cible de déploiement**, choisissez un périphérique principal ou un groupe d'objets, puis cliquez sur **Suivant**.

1. Sur la page **Sélectionner les composants**, sous **Composants publics**, sélectionnez **aws.greengrass.crypto.Pkcs11Provider**, puis cliquez sur **Suivant**.

1. Sur la page **Configurer les composants**, sélectionnez **aws.greengrass.crypto.Pkcs11Provider**, puis effectuez les opérations suivantes :

   1. Choisissez **Configure component (Configurer un composant)**.

   1. Dans le aws.greengrass.crypto.Pkcs11Provider mode **Configurer**, sous **Mise à jour de la configuration**, dans **Configuration à fusionner**, entrez la mise à jour de configuration suivante. Mettez à jour les paramètres de configuration suivants avec les valeurs des équipements principaux cibles. Spécifiez l'ID du slot et le code PIN de l'utilisateur dans lesquels vous avez initialisé le jeton PKCS \$111 plus tôt. Vous importez la clé privée et le certificat dans cet emplacement du HSM ultérieurement.<a name="pkcs11-provider-component-configuration-parameters"></a>  
`name`  
Nom de la configuration PKCS \$111.  
`library`  
Le chemin de fichier absolu vers la bibliothèque de l'implémentation PKCS \$111 que le logiciel AWS IoT Greengrass Core peut charger avec libdl.  
`slot`  
L'ID du slot qui contient la clé privée et le certificat de l'appareil. Cette valeur est différente de l'index ou de l'étiquette de l'emplacement.  
`userPin`  
Le code PIN de l'utilisateur à utiliser pour accéder au slot.

      ```
      {
        "name": "softhsm_pkcs11",
        "library": "/usr/lib/softhsm/libsofthsm2.so",
        "slot": 1,
        "userPin": "1234"
      }
      ```

   1. Choisissez **Confirmer** pour fermer le modal, puis cliquez sur **Suivant**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Sur la page **Configure advanced settings (Configurer les paramètres avancés)**, conservez les paramètres de configuration par défaut et choisissez **Next (Suivant)**.

1. <a name="deploy-component-review-and-deploy-step"></a>Sur la page **Review (Révision)**, choisissez **Deploy (Déployer)**.

   Le déploiement peut prendre jusqu'à une minute.

#### Pour déployer le composant fournisseur PKCS \$111 ()AWS CLI
<a name="deploy-pkcs11-provider-component-cli"></a>

Pour déployer le composant fournisseur PKCS \$111, créez un document de déploiement incluant `aws.greengrass.crypto.Pkcs11Provider` l'`components`objet et spécifiez la mise à jour de configuration pour le composant. Suivez les instructions [Créer des déploiements](create-deployments.md) pour créer un nouveau déploiement ou modifier un déploiement existant.

L'exemple de document de déploiement partiel suivant indique de déployer et de configurer le composant fournisseur PKCS \$111. Mettez à jour les paramètres de configuration suivants avec les valeurs des équipements principaux cibles. Enregistrez l'ID du slot et le code PIN de l'utilisateur pour les utiliser ultérieurement lors de l'importation de la clé privée et du certificat dans le HSM.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Nom de la configuration PKCS \$111.

`library`  
Le chemin de fichier absolu vers la bibliothèque de l'implémentation PKCS \$111 que le logiciel AWS IoT Greengrass Core peut charger avec libdl.

`slot`  
L'ID du slot qui contient la clé privée et le certificat de l'appareil. Cette valeur est différente de l'index ou de l'étiquette de l'emplacement.

`userPin`  
Le code PIN de l'utilisateur à utiliser pour accéder au slot.

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

```
{
  ...,
  "components": {
    ...,
    "aws.greengrass.crypto.Pkcs11Provider": {
      "componentVersion": "2.0.0",
      "configurationUpdate": {
        "merge": "{\"name\":\"softhsm_pkcs11\",\"library\":\"/usr/lib/softhsm/libsofthsm2.so\",\"slot\":1,\"userPin\":\"1234\"}"
      }
    }
  }
}
```

L'exécution du déploiement peut prendre plusieurs minutes. Vous pouvez utiliser le AWS IoT Greengrass service pour vérifier l'état du déploiement. Vous pouvez consulter les journaux du logiciel AWS IoT Greengrass Core pour vérifier que le composant fournisseur PKCS \$111 se déploie correctement. Pour plus d’informations, consultez les ressources suivantes :
+ [Vérifier l'état du déploiement](check-deployment-status.md)
+ [AWS IoT Greengrass Journaux de surveillance](monitor-logs.md)

Si le déploiement échoue, vous pouvez résoudre les problèmes de déploiement sur chaque appareil principal. Pour de plus amples informations, veuillez consulter [Résolution des problèmes AWS IoT Greengrass V2](troubleshooting.md).

### Étape 3 : mise à jour de la configuration sur le périphérique principal
<a name="enable-hardware-security-configure-core-device"></a>

Le logiciel AWS IoT Greengrass Core utilise un fichier de configuration qui indique le mode de fonctionnement de l'appareil. Ce fichier de configuration indique où trouver la clé privée et le certificat que l'appareil utilise pour se connecter au AWS Cloud. Procédez comme suit pour importer la clé privée et le certificat du périphérique principal dans le HSM et mettre à jour le fichier de configuration pour utiliser le HSM.

**Pour mettre à jour la configuration sur le périphérique principal afin d'utiliser la sécurité matérielle**

1. Arrêtez le logiciel AWS IoT Greengrass Core. Si vous avez [configuré le logiciel AWS IoT Greengrass Core en tant que service système](configure-greengrass-core-v2.md#configure-system-service) avec systemd, vous pouvez exécuter la commande suivante pour arrêter le logiciel.

   ```
   sudo systemctl stop greengrass.service
   ```

1. Trouvez la clé privée et les fichiers de certificat de l'appareil principal.
   + Si vous avez installé le logiciel AWS IoT Greengrass Core avec provisionnement [automatique ou provisionnement](quick-installation.md) de [flotte](fleet-provisioning.md), la clé privée existe à l'adresse`/greengrass/v2/privKey.key`, et le certificat, à l'adresse. `/greengrass/v2/thingCert.crt`
   + Si vous avez installé le logiciel AWS IoT Greengrass Core avec un [provisionnement manuel](manual-installation.md), la clé privée existe `/greengrass/v2/private.pem.key` par défaut et le certificat existe `/greengrass/v2/device.pem.crt` par défaut.

   Vous pouvez également vérifier les `system.certificateFilePath` propriétés `system.privateKeyPath` et `/greengrass/v2/config/effectiveConfig.yaml` pour trouver l'emplacement de ces fichiers.

1. Importez la clé privée et le certificat dans le HSM. Consultez la documentation de votre HSM pour savoir comment y importer des clés privées et des certificats. Importez la clé privée et le certificat à l'aide de l'ID du slot et du code PIN utilisateur sur lesquels vous avez initialisé le jeton PKCS \$111 plus tôt. Vous devez utiliser le même libellé et le même identifiant d'objet pour la clé privée et le même certificat. Enregistrez l'étiquette d'objet que vous spécifiez lors de l'importation de chaque fichier. Vous utiliserez cette étiquette ultérieurement lorsque vous mettrez à jour la configuration logicielle AWS IoT Greengrass principale pour utiliser la clé privée et le certificat du HSM.

1. Mettez à jour la configuration AWS IoT Greengrass principale pour utiliser la clé privée et le certificat dans le HSM. Pour mettre à jour la configuration, vous devez modifier le fichier de configuration AWS IoT Greengrass Core et exécuter le logiciel AWS IoT Greengrass Core avec le fichier de configuration mis à jour pour appliquer la nouvelle configuration.

   Procédez comme suit :

   1. Créez une sauvegarde du fichier de configuration AWS IoT Greengrass Core. Vous pouvez utiliser cette sauvegarde pour restaurer le périphérique principal si vous rencontrez des problèmes lors de la configuration de la sécurité matérielle.

      ```
      sudo cp /greengrass/v2/config/effectiveConfig.yaml ~/ggc-config-backup.yaml
      ```

   1. Ouvrez le fichier de configuration AWS IoT Greengrass Core dans un éditeur de texte. Par exemple, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour modifier le fichier. Remplacez `/greengrass/v2` par le chemin d'accès au dossier racine de Greengrass.

      ```
      sudo nano /greengrass/v2/config/effectiveConfig.yaml
      ```

   1. Remplacez la valeur de `system.privateKeyPath` par l'URI PKCS \$111 pour la clé privée dans le HSM. *iotdevicekey*Remplacez-le par le libellé de l'objet dans lequel vous avez importé la clé privée et le certificat précédemment.

      ```
      pkcs11:object=iotdevicekey;type=private
      ```

   1. Remplacez la valeur de `system.certificateFilePath` par l'URI PKCS \$111 pour le certificat dans le HSM. *iotdevicekey*Remplacez-le par le libellé de l'objet dans lequel vous avez importé la clé privée et le certificat précédemment.

      ```
      pkcs11:object=iotdevicekey;type=cert
      ```

   Une fois ces étapes terminées, la `system` propriété du fichier de configuration AWS IoT Greengrass Core devrait ressembler à celle de l'exemple suivant.

   ```
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/rootCA.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   ```

1. Appliquez la configuration dans le `effectiveConfig.yaml` fichier mis à jour. Exécutez `Greengrass.jar` avec le `--init-config` paramètre pour appliquer la configuration dans`effectiveConfig.yaml`. Remplacez `/greengrass/v2` par le chemin d'accès au dossier racine de Greengrass.

   ```
   sudo java -Droot="/greengrass/v2" \
     -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
     --start false \
     --init-config /greengrass/v2/config/effectiveConfig.yaml
   ```

1. Démarrez le logiciel AWS IoT Greengrass Core. Si vous avez [configuré le logiciel AWS IoT Greengrass Core en tant que service système](configure-greengrass-core-v2.md#configure-system-service) avec systemd, vous pouvez exécuter la commande suivante pour démarrer le logiciel.

   ```
   sudo systemctl start greengrass.service
   ```

   Pour de plus amples informations, veuillez consulter [Exécutez le logiciel AWS IoT Greengrass Core](run-greengrass-core-v2.md).

1. Consultez les journaux du logiciel AWS IoT Greengrass Core pour vérifier que le logiciel démarre et se connecte au AWS Cloud. Le logiciel AWS IoT Greengrass Core utilise la clé privée et le certificat pour se connecter aux AWS IoT Greengrass services AWS IoT et.

   ```
   sudo tail -f /greengrass/v2/logs/greengrass.log
   ```

   Les messages du journal au niveau des informations suivants indiquent que le logiciel AWS IoT Greengrass Core se connecte correctement aux services AWS IoT et AWS IoT Greengrass .

   ```
   2021-12-06T22:47:53.702Z [INFO] (Thread-3) com.aws.greengrass.mqttclient.AwsIotMqttClient: Successfully connected to AWS IoT Core. {clientId=MyGreengrassCore5, sessionPresent=false}
   ```

1. (Facultatif) Après avoir vérifié que le logiciel AWS IoT Greengrass Core fonctionne avec la clé privée et le certificat du HSM, supprimez les fichiers de clé privée et de certificat du système de fichiers de l'appareil. Exécutez la commande suivante et remplacez les chemins de fichiers par les chemins d'accès aux fichiers de clé privée et de certificat.

   ```
   sudo rm /greengrass/v2/privKey.key
   sudo rm /greengrass/v2/thingCert.crt
   ```

## Utiliser du matériel sans support PKCS \$111
<a name="hardware-without-pkcs11"></a>

La bibliothèque PKCS \$1 11 est généralement fournie par le fournisseur de matériel ou est en open source. Par exemple, avec du matériel conforme aux normes (tel que TPM1 .2), il peut être possible d'utiliser des logiciels open source existants. Toutefois, si votre matériel ne dispose pas d'une implémentation de bibliothèque PKCS \$111 correspondante, ou si vous souhaitez créer un fournisseur PKCS \$111 personnalisé, contactez votre représentant du support Amazon Web Services Enterprise pour toute question relative à l'intégration.

## Consultez aussi
<a name="hardware-security-see-also"></a>
+ [Guide d'utilisation de l'interface à jetons cryptographiques PKCS \$111, version 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html)
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11 : version de chiffrement RSA 1.5](https://tools.ietf.org/html/rfc2313)

# Authentification et autorisation de l'appareil pour AWS IoT Greengrass
<a name="device-auth"></a>

Les appareils dans AWS IoT Greengrass les environnements utilisent des certificats X.509 pour l'authentification et des AWS IoT politiques d'autorisation. Les certificats et les stratégies permettent aux appareils de se connecter en toute sécurité avec d’autres appareils, AWS IoT Core et AWS IoT Greengrass.

Les certificats X.509 sont des certificats numériques qui font appel à la norme d'infrastructure de clé publique X.509 pour associer une clé publique à l’identité contenue dans un certificat. Les certificats X.509 sont émis par une entité de confiance appelée autorité de certification (CA). Celle-ci gère un ou plusieurs certificats spéciaux appelés certificats d'autorité de certification, qu'elle utilise pour émettre des certificats X.509. Seule l'autorité du certificat a accès aux certificats d'autorité de certification.

AWS IoT les politiques définissent l'ensemble des opérations autorisées pour les AWS IoT appareils. Plus précisément, ils autorisent et interdisent l'accès aux AWS IoT Core opérations du plan de AWS IoT Greengrass données, telles que la publication de messages MQTT et la récupération des ombres des appareils.

Tous les appareils nécessitent une entrée dans le AWS IoT Core registre et un certificat X.509 activé avec une AWS IoT politique associée. Les appareils se répartissent en deux catégories :
+ **Appareils Greengrass Core**

  Les appareils Greengrass Core utilisent des certificats et des AWS IoT politiques pour se connecter à AWS IoT Core et. AWS IoT Greengrass Les certificats et les politiques permettent également AWS IoT Greengrass de déployer des composants et des configurations sur les appareils principaux.
+ **Appareils clients**

  Les appareils clients MQTT utilisent des certificats et des politiques pour se connecter au AWS IoT Greengrass service AWS IoT Core et le utiliser. Cela permet aux appareils clients d'utiliser le AWS IoT Greengrass cloud discovery pour rechercher et se connecter à un appareil principal de Greengrass. Un appareil client utilise le même certificat pour se connecter au service AWS IoT Core cloud et aux appareils principaux. Les appareils clients utilisent également les informations de découverte pour l'authentification mutuelle avec le périphérique principal. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).

## Certificats X.509
<a name="x509-certificates"></a>

La communication entre les appareils principaux et les appareils clients et entre les appareils AWS IoT Core et/ou AWS IoT Greengrass doit être authentifiée. Cette authentification mutuelle est basée sur les certificats d'appareils X.509 enregistrés et sur des clés de chiffrement.

Dans un AWS IoT Greengrass environnement, les appareils utilisent des certificats avec des clés publiques et privées pour les connexions TLS (Transport Layer Security) suivantes :
+ Le composant AWS IoT client de l'appareil principal de Greengrass qui se connecte à Internet AWS IoT Core et AWS IoT Greengrass via Internet.
+ Appareils clients qui se AWS IoT Greengrass connectent via Internet pour découvrir les appareils principaux.
+ Le composant broker MQTT sur le cœur de Greengrass se connectant aux appareils Greengrass du groupe via le réseau local.

AWS IoT Greengrass les appareils principaux stockent les certificats dans le dossier racine de Greengrass.

### Certificats d'autorité de certification (CA)
<a name="ca-certificates"></a>

Les appareils principaux et les appareils clients de Greengrass téléchargent un certificat CA racine utilisé pour l'authentification auprès des services AWS IoT Core et AWS IoT Greengrass . Nous vous recommandons d'utiliser un certificat d'autorité de certification racine Amazon Trust Services (ATS), tel que [Amazon Root CA 1](https://www.amazontrust.com/repository/AmazonRootCA1.pem). Pour de plus amples informations, veuillez consulter [Certificats d'autorité de certification pour l'authentification du serveur](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs) dans le *Manuel du développeur AWS IoT Core *.

Les appareils clients téléchargent également un certificat CA du périphérique principal Greengrass. Ils utilisent ce certificat pour valider le certificat du serveur MQTT sur le périphérique principal lors de l'authentification mutuelle.

### Rotation des certificats sur le broker MQTT local
<a name="mqtt-certificate-expiration"></a>

Lorsque vous [activez la prise en charge des appareils clients](interact-with-local-iot-devices.md), les appareils principaux de Greengrass génèrent un certificat de serveur MQTT local que les appareils clients utilisent pour l'authentification mutuelle. Ce certificat est signé par le certificat CA de l'appareil principal, que celui-ci stocke dans le AWS IoT Greengrass cloud. Les appareils clients récupèrent le certificat CA du périphérique principal lorsqu'ils découvrent le périphérique principal. Ils utilisent le certificat CA du périphérique principal pour vérifier le certificat du serveur MQTT du périphérique principal lorsqu'ils se connectent au périphérique principal. Le certificat CA de l'appareil principal expire au bout de 5 ans.

Le certificat du serveur MQTT expire tous les 7 jours par défaut, et vous pouvez configurer cette durée entre 2 et 10 jours. Cette période limitée est basée sur les bonnes pratiques en matière de sécurité. Cette rotation permet d'atténuer le risque qu'un attaquant vole le certificat du serveur MQTT et la clé privée pour se faire passer pour le périphérique principal de Greengrass.

Le périphérique principal de Greengrass fait pivoter le certificat du serveur MQTT 24 heures avant son expiration. Le périphérique principal Greengrass génère un nouveau certificat et redémarre le broker MQTT local. Dans ce cas, tous les appareils clients connectés au périphérique principal de Greengrass sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique principal de Greengrass après un court laps de temps.

## AWS IoT politiques relatives aux opérations du plan de données
<a name="iot-policies"></a>

Utilisez AWS IoT des politiques pour autoriser l'accès aux plans de AWS IoT Greengrass données AWS IoT Core et. Le plan de AWS IoT Core données fournit des opérations pour les appareils, les utilisateurs et les applications. Ces opérations incluent la possibilité de se connecter à des sujets AWS IoT Core et de s'y abonner. Le plan AWS IoT Greengrass de données fournit des opérations pour les appareils Greengrass. Pour de plus amples informations, veuillez consulter [AWS IoT Greengrass V2 actions politiques](#greengrass-policy-actions). Ces opérations incluent la capacité de résoudre les dépendances des composants et de télécharger des artefacts de composants publics.

Une AWS IoT politique est un document JSON similaire à une [politique IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json). Elle contient une ou plusieurs instructions de stratégie qui spécifient les propriétés suivantes :
+ `Effect`. Le mode d'accès, qui peut être `Allow` ou`Deny`.
+ `Action`. Liste des actions autorisées ou refusées par la politique.
+ `Resource`. Liste des ressources sur lesquelles l'action est autorisée ou refusée.

AWS IoT les politiques `*` le prennent en charge en tant que caractère générique et traitent les caractères génériques MQTT (`+`et`#`) comme des chaînes littérales. Pour plus d'informations sur le `*` caractère générique, consultez la section [Utilisation du caractère générique dans la ressource ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html#reference_policies_elements_resource_wildcards) du Guide de l'*Gestion des identités et des accès AWS utilisateur*.

Pour de plus amples informations, veuillez consulter [Stratégies AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) et [Actions de stratégie AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) dans le *Manuel du développeur AWS IoT Core *.

**Important**  
<a name="thing-policy-variable-not-supported"></a>[Les variables de politique des](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) objets (`iot:Connection.Thing.*`) ne sont pas prises en charge dans AWS IoT les politiques relatives aux appareils principaux ou aux opérations du plan de données Greengrass. Vous pouvez plutôt utiliser un caractère générique correspondant à plusieurs appareils portant des noms similaires. Par exemple, vous pouvez spécifier `MyGreengrassDevice*` de correspondre `MyGreengrassDevice1``MyGreengrassDevice2`, et ainsi de suite. 

**Note**  
AWS IoT Core vous permet d'associer des AWS IoT politiques à des groupes d'objets afin de définir des autorisations pour des groupes d'appareils. Les politiques relatives aux groupes d'objets n'autorisent pas l'accès aux opérations du plan de AWS IoT Greengrass données. Pour autoriser un objet à accéder à une opération de plan de AWS IoT Greengrass données, ajoutez l'autorisation à une AWS IoT politique que vous associez au certificat de l'objet.

### AWS IoT Greengrass V2 actions politiques
<a name="greengrass-policy-actions"></a>

AWS IoT Greengrass V2 définit les actions politiques suivantes que les appareils principaux et clients de Greengrass peuvent utiliser dans AWS IoT les politiques. Pour spécifier une ressource pour une action de politique, vous utilisez le Amazon Resource Name (ARN) de la ressource.Principales actions de l'appareil

`greengrass:GetComponentVersionArtifact`  <a name="greengrass-get-component-version-artifact-action"></a>
Accorde l'autorisation d'obtenir une URL présignée pour télécharger un artefact de composant public ou un artefact de composant Lambda.  
Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie un composant public ou un Lambda contenant des artefacts. Si l'appareil principal possède déjà l'artefact, il ne le télécharge pas à nouveau.  
Type de ressource : `componentVersion`  
Format ARN de la ressource : `arn:aws:greengrass:region:account-id:components:component-name:versions:component-version`

`greengrass:ResolveComponentCandidates`  <a name="greengrass-resolve-component-candidates-action"></a>
Accorde l'autorisation d'identifier une liste de composants répondant aux exigences relatives aux composants, à la version et à la plate-forme pour un déploiement. En cas de conflit entre les exigences ou s'il n'existe aucun composant répondant aux exigences, cette opération renvoie une erreur et le déploiement échoue sur le périphérique.  
Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie des composants.  
Type de ressource : Aucune  
Format ARN de la ressource : `*`

`greengrass:GetDeploymentConfiguration`  <a name="greengrass-get-deployment-configuration-action"></a>
Accorde l'autorisation d'obtenir une URL présignée pour télécharger un document de déploiement volumineux.  
Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie un document de déploiement supérieur à 7 Ko (si le déploiement cible un objet) ou 31 Ko (si le déploiement cible un groupe d'objets). Le document de déploiement inclut les configurations des composants, les politiques de déploiement et les métadonnées de déploiement. Pour de plus amples informations, veuillez consulter [Déployer AWS IoT Greengrass des composants sur des appareils](manage-deployments.md).  
Cette fonctionnalité est disponible pour les versions 2.3.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.  
Type de ressource : Aucune  
Format ARN de la ressource : `*`

`greengrass:ListThingGroupsForCoreDevice`  <a name="greengrass-list-thing-groups-for-core-device-action"></a>
Accorde l'autorisation d'obtenir la hiérarchie des groupes d'objets d'un appareil principal.  
Cette autorisation est vérifiée lorsqu'un périphérique principal reçoit un déploiement de AWS IoT Greengrass. Le périphérique principal utilise cette action pour déterminer s'il a été supprimé d'un groupe d'objets depuis le dernier déploiement. Si le périphérique principal a été supprimé d'un groupe d'objets et que ce groupe d'objets est la cible d'un déploiement sur le périphérique principal, le périphérique principal supprime les composants installés par ce déploiement.  
Cette fonctionnalité est utilisée par les versions 2.5.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.  
Type de ressource : `thing` (appareil principal)  
Format ARN de la ressource : `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:VerifyClientDeviceIdentity`  <a name="greengrass-verify-client-device-identity-action"></a>
Accorde l'autorisation de vérifier l'identité d'un appareil client qui se connecte à un appareil principal.  
Cette autorisation est évaluée lorsqu'un périphérique principal exécute le [composant d'authentification du périphérique client](client-device-auth-component.md) et reçoit une connexion MQTT d'un périphérique client. L'appareil client présente son certificat d' AWS IoT appareil. Ensuite, le périphérique principal envoie le certificat de l'appareil au service AWS IoT Greengrass cloud pour vérifier l'identité de l'appareil client. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Type de ressource : Aucune  
Format ARN de la ressource : `*`

`greengrass:VerifyClientDeviceIoTCertificateAssociation`  <a name="greengrass-verify-client-device-iot-certificate-association-action"></a>
Accorde l'autorisation de vérifier si un appareil client est associé à un AWS IoT certificat.  
Cette autorisation est évaluée lorsqu'un périphérique principal exécute le [composant d'authentification du périphérique client](client-device-auth-component.md) et autorise un périphérique client à se connecter via MQTT. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Pour qu'un appareil principal puisse utiliser cette opération, le rôle de [service Greengrass doit être associé à votre rôle](greengrass-service-role.md) Compte AWS et autoriser cette autorisation. `iot:DescribeCertificate`
Type de ressource : `thing` (appareil client)  
Format ARN de la ressource : `arn:aws:iot:region:account-id:thing/client-device-thing-name`

`greengrass:PutCertificateAuthorities`  <a name="greengrass-put-certificate-authorities-action"></a>
Accorde l'autorisation de télécharger des certificats d'autorité de certification (CA) que les appareils clients peuvent télécharger pour vérifier le périphérique principal.  
Cette autorisation est évaluée lorsqu'un périphérique principal installe et exécute le composant d'[authentification du périphérique client](client-device-auth-component.md). Ce composant crée une autorité de certification locale et utilise cette opération pour télécharger ses certificats CA. Les appareils clients téléchargent ces certificats CA lorsqu'ils utilisent l'opération [Discover](#greengrass-discover-action) pour trouver les périphériques principaux auxquels ils peuvent se connecter. Lorsque les appareils clients se connectent à un courtier MQTT sur un périphérique principal, ils utilisent ces certificats CA pour vérifier l'identité du périphérique principal. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Type de ressource : Aucune  
Format de l'ARN : `*`

`greengrass:GetConnectivityInfo`  <a name="greengrass-get-connectivity-info-action"></a>
Accorde l'autorisation d'obtenir des informations de connectivité pour un appareil principal. Ces informations décrivent comment les appareils clients peuvent se connecter au périphérique principal.  
Cette autorisation est évaluée lorsqu'un périphérique principal installe et exécute le composant d'[authentification du périphérique client](client-device-auth-component.md). Ce composant utilise les informations de connectivité pour générer des certificats CA valides à télécharger sur le service AWS IoT Greengrass cloud lors de l'[PutCertificateAuthories](#greengrass-put-certificate-authorities-action)opération. Les appareils clients utilisent ces certificats CA pour vérifier l'identité du périphérique principal. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Vous pouvez également utiliser cette opération sur le plan AWS IoT Greengrass de contrôle pour afficher les informations de connectivité d'un périphérique principal. Pour plus d’informations, consultez [GetConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/getconnectivityinfo-get.html) dans la *Référence d’API AWS IoT Greengrass V1 *.  
Type de ressource : `thing` (appareil principal)  
Format ARN de la ressource : `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:UpdateConnectivityInfo`  <a name="greengrass-update-connectivity-info-action"></a>
Accorde l'autorisation de mettre à jour les informations de connectivité d'un appareil principal. Ces informations décrivent comment les appareils clients peuvent se connecter au périphérique principal.  
Cette autorisation est évaluée lorsqu'un périphérique principal exécute le [composant de détection IP](ip-detector-component.md). Ce composant identifie les informations dont les appareils clients ont besoin pour se connecter au périphérique principal sur le réseau local. Ce composant utilise ensuite cette opération pour télécharger les informations de connectivité vers le service AWS IoT Greengrass cloud, afin que les appareils clients puissent récupérer ces informations avec l'opération [Discover](#greengrass-discover-action). Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Vous pouvez également utiliser cette opération sur le plan de AWS IoT Greengrass contrôle pour mettre à jour manuellement les informations de connectivité d'un périphérique principal. Pour plus d’informations, consultez [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html) dans la *Référence d’API AWS IoT Greengrass V1 *.  
Type de ressource : `thing` (appareil principal)  
Format ARN de la ressource : `arn:aws:iot:region:account-id:thing/core-device-thing-name`Actions relatives à l'appareil client

`greengrass:Discover`  <a name="greengrass-discover-action"></a>
Accorde l'autorisation de découvrir les informations de connectivité pour les appareils principaux auxquels un appareil client peut se connecter. Ces informations décrivent comment le périphérique client peut se connecter aux périphériques principaux. Un appareil client ne peut découvrir que les périphériques principaux auxquels vous l'avez associé à l'aide de cette [BatchAssociateClientDeviceWithCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)opération. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).  
Type de ressource : `thing` (appareil client)  
Format ARN de la ressource : `arn:aws:iot:region:account-id:thing/client-device-thing-name`

## Mettre à jour la AWS IoT politique d'un appareil principal
<a name="update-core-device-iot-policy"></a>

Vous pouvez utiliser les AWS IoT consoles AWS IoT Greengrass et ou l' AWS IoT API pour consulter et mettre à jour la AWS IoT politique d'un appareil principal.

**Note**  
Si vous avez utilisé le [programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources](quick-installation.md), votre appareil principal dispose d'une AWS IoT politique qui autorise l'accès à toutes les AWS IoT Greengrass actions (`greengrass:*`). Vous pouvez suivre ces étapes pour restreindre l'accès aux seules actions utilisées par un appareil principal.

### Révision et mise à jour de la AWS IoT politique d'un appareil principal (console)
<a name="update-core-device-iot-policy-console"></a>

1. <a name="update-iot-policy-console-open-greengrass-console"></a>Dans le menu de navigation de la [AWS IoT Greengrass console](https://console.aws.amazon.com/greengrass), choisissez **Core devices**.

1. <a name="update-iot-policy-console-choose-core-device"></a>Sur la page **des appareils principaux**, choisissez le périphérique principal à mettre à jour.

1. <a name="update-iot-policy-console-choose-core-device-thing"></a>Sur la page de détails de l'appareil principal, choisissez le lien vers l'**objet** de l'appareil principal. Ce lien ouvre la page des détails de l'objet dans la AWS IoT console.

1. <a name="update-iot-policy-console-choose-thing-security"></a>Sur la page des détails de l'objet, sélectionnez **Certificats**.

1. <a name="update-iot-policy-console-choose-thing-certificate"></a>Dans l'onglet **Certificats**, choisissez le certificat actif de l'objet.

1. <a name="update-iot-policy-console-choose-certificate-policies"></a>Sur la page des détails du certificat, sélectionnez **Policies**.

1. <a name="update-iot-policy-console-choose-policy"></a>Dans l'onglet **Politiques**, choisissez la AWS IoT politique à revoir et à mettre à jour. Vous pouvez ajouter les autorisations requises à n'importe quelle politique associée au certificat actif de l'appareil principal.
**Note**  <a name="quick-installation-iot-policies-note"></a>
Si vous avez utilisé le [programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources](quick-installation.md), vous avez deux AWS IoT règles. Nous vous recommandons de choisir la politique nommée **GreengrassV2IoTThingPolicy**, si elle existe. Les appareils principaux que vous créez avec le programme d'installation rapide utilisent ce nom de politique par défaut. Si vous ajoutez des autorisations à cette politique, vous les accordez également aux autres appareils principaux qui utilisent cette politique.

1. <a name="update-iot-policy-console-edit-policy"></a>Dans l'aperçu des politiques, choisissez **Modifier la version active**.

1. Passez en revue la politique et ajoutez, supprimez ou modifiez des autorisations selon vos besoins.

1. <a name="update-iot-policy-console-set-as-active-version"></a>Pour définir une nouvelle version de politique comme version active, sous **État de la version de politique**, sélectionnez **Définir la version modifiée comme version active pour cette politique**.

1. <a name="update-iot-policy-console-save-policy"></a>Sélectionnez **Enregistrer comme nouvelle version**.

### Révision et mise à jour de la AWS IoT politique d'un appareil principal (AWS CLI)
<a name="update-core-device-iot-policy-cli"></a>

1. <a name="update-iot-policy-cli-list-thing-principals"></a>Énumérez les principes de base de l'appareil AWS IoT . Les principaux de l'objet peuvent être des certificats de périphérique X.509 ou d'autres identifiants. Exécutez la commande suivante et *MyGreengrassCore* remplacez-la par le nom du périphérique principal.

   ```
   aws iot list-thing-principals --thing-name MyGreengrassCore
   ```

   L'opération renvoie une réponse répertoriant les principaux éléments du périphérique principal.

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:123456789012:cert/certificateId"
       ]
   }
   ```

1. <a name="update-iot-policy-cli-identify-active-certificate"></a>Identifiez le certificat actif de l'appareil principal. Exécutez la commande suivante et remplacez-la *certificateId* par l'ID de chaque certificat de l'étape précédente jusqu'à ce que vous trouviez le certificat actif. L'ID du certificat est la chaîne hexadécimale à la fin de l'ARN du certificat. L'`--query`argument indique de n'afficher que le statut du certificat.

   ```
   aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'
   ```

   L'opération renvoie le statut du certificat sous forme de chaîne. Par exemple, si le certificat est actif, cette opération produit des résultats`"ACTIVE"`.

1. <a name="update-iot-policy-cli-list-certificate-policies"></a> AWS IoT Répertoriez les politiques associées au certificat. Exécutez la commande suivante et remplacez l'ARN du certificat par l'ARN du certificat.

   ```
   aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId
   ```

   L'opération renvoie une réponse répertoriant les AWS IoT politiques associées au certificat.

   ```
   {
       "policies": [
           {
               "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias"
           },
           {
               "policyName": "GreengrassV2IoTThingPolicy",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy"
           }
       ]
   }
   ```

1. <a name="update-iot-policy-cli-choose-policy"></a>Choisissez la politique à consulter et à mettre à jour.
**Note**  <a name="quick-installation-iot-policies-note"></a>
Si vous avez utilisé le [programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources](quick-installation.md), vous avez deux AWS IoT règles. Nous vous recommandons de choisir la politique nommée **GreengrassV2IoTThingPolicy**, si elle existe. Les appareils principaux que vous créez avec le programme d'installation rapide utilisent ce nom de politique par défaut. Si vous ajoutez des autorisations à cette politique, vous les accordez également aux autres appareils principaux qui utilisent cette politique.

1. <a name="update-iot-policy-cli-get-policy-document"></a>Obtenez le document de la politique. Exécutez la commande suivante et *GreengrassV2IoTThingPolicy* remplacez-la par le nom de la politique.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy
   ```

   L'opération renvoie une réponse contenant le document de la politique et d'autres informations relatives à la politique. Le document de politique est un objet JSON sérialisé sous forme de chaîne. 

   ```
   {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
                   \\"iot:Connect\\",\
                   \\"iot:Publish\\",\
                   \\"iot:Subscribe\\",\
                   \\"iot:Receive\\",\
                   \\"greengrass:*\\"\
   ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "defaultVersionId": "1",
       "creationDate": "2021-02-05T16:03:14.098000-08:00",
       "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00",
       "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f"
   }
   ```

1. <a name="update-iot-policy-cli-create-policy-document-file"></a>Utilisez un convertisseur en ligne ou un autre outil pour convertir la chaîne du document de politique en objet JSON, puis enregistrez-la dans un fichier nommé`iot-policy.json`.

   Par exemple, si l'outil [jq](https://stedolan.github.io/jq/) est installé, vous pouvez exécuter la commande suivante pour obtenir le document de politique, le convertir en objet JSON et enregistrer le document de politique en tant qu'objet JSON.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
   ```

1. Passez en revue le document de politique et ajoutez, supprimez ou modifiez des autorisations selon les besoins.

   <a name="nano-command-intro-existing-file"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour ouvrir le fichier.

   ```
   nano iot-policy.json
   ```

   Lorsque vous aurez terminé, le document de politique peut ressembler à la [AWS IoT politique minimale pour les appareils principaux](#greengrass-core-minimal-iot-policy).

1. <a name="update-iot-policy-cli-create-policy-version"></a>Enregistrez les modifications en tant que nouvelle version de la politique. Exécutez la commande suivante et *GreengrassV2IoTThingPolicy* remplacez-la par le nom de la politique.

   ```
   aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default
   ```

   L'opération renvoie une réponse similaire à l'exemple suivant en cas de succès.

   ```
   {
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
   \\t\\t\\"iot:Connect\\",\
   \\t\\t\\"iot:Publish\\",\
   \\t\\t\\"iot:Subscribe\\",\
   \\t\\t\\"iot:Receive\\",\
   \\t\\t\\"greengrass:*\\"\
         ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "policyVersionId": "2",
       "isDefaultVersion": true
   }
   ```

## AWS IoT Politique minimale pour les appareils AWS IoT Greengrass V2 principaux
<a name="greengrass-core-minimal-iot-policy"></a>

**Important**  
Les versions ultérieures du [composant Greengrass nucleus](greengrass-nucleus-component.md) nécessitent des autorisations supplémentaires sur la politique minimale AWS IoT . Vous devrez peut-être [mettre à jour les AWS IoT politiques de vos appareils principaux](#update-core-device-iot-policy) pour accorder des autorisations supplémentaires.  
Les appareils principaux qui exécutent Greengrass nucleus v2.5.0 et versions ultérieures utilisent l'`greengrass:ListThingGroupsForCoreDevice`autorisation de désinstaller des composants lorsque vous supprimez un périphérique principal d'un groupe d'objets.
Les appareils principaux qui exécutent Greengrass nucleus v2.3.0 et versions ultérieures utilisent l'`greengrass:GetDeploymentConfiguration`autorisation de prendre en charge des documents de configuration de déploiement volumineux.

L'exemple de stratégie suivant comprend l'ensemble d'actions minimum requis pour prendre en charge la fonctionnalité Greengrass de base pour l'appareil de votre noyau.
+ La `Connect` politique inclut le `*` caractère générique après le nom de l'objet principal de l'appareil (par exemple,`core-device-thing-name*`). L'appareil principal utilise le même certificat d'appareil pour souscrire plusieurs abonnements simultanés AWS IoT Core, mais l'ID client d'une connexion peut ne pas correspondre exactement au nom de l'appareil principal. Après les 50 premiers abonnements, l'appareil principal l'utilise `core-device-thing-name#number` comme identifiant client, qui `number` augmente pour chaque 50 abonnements supplémentaires. Par exemple, lorsqu'un périphérique principal nommé `MyCoreDevice` crée 150 abonnements simultanés, il utilise le client suivant IDs :
  + Abonnements 1 à 50 : `MyCoreDevice`
  + Abonnements 51 à 100 : `MyCoreDevice#2`
  + Abonnements 101 à 150 : `MyCoreDevice#3`

  Le caractère générique permet au périphérique principal de se connecter lorsqu'il utilise ces clients IDs dotés d'un suffixe.
+ La stratégie énumère les rubriques MQTT et les filtres de rubrique vers lesquels l'appareil du noyau peut publier des messages, auxquels il peut s'abonner et desquels il peut recevoir des messages, y compris les rubriques utilisées pour le shadow. Pour faciliter l'échange de messages entre AWS IoT Core les composants Greengrass et les appareils clients, spécifiez les sujets et les filtres de sujets que vous souhaitez autoriser. Pour de plus amples informations, veuillez consulter [Exemples de stratégie de publication/abonnement](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) dans le *Manuel du développeur AWS IoT Core *.
+ La politique autorise la publication dans la rubrique suivante pour les données de télémétrie.

  ```
  $aws/things/core-device-thing-name/greengrass/health/json
  ```

  Vous pouvez supprimer cette autorisation pour les appareils principaux sur lesquels vous désactivez la télémétrie. Pour de plus amples informations, veuillez consulter [Collectez les données de télémétrie relatives à l'état du système à partir des principaux appareils AWS IoT Greengrass](telemetry.md).
+ La politique accorde l'autorisation d'assumer un rôle IAM par le biais d'un alias de AWS IoT rôle. Le périphérique principal utilise ce rôle, appelé rôle d'échange de jetons, pour acquérir des AWS informations d'identification qu'il peut utiliser pour authentifier les AWS demandes. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

  Lorsque vous installez le logiciel AWS IoT Greengrass Core, vous créez et joignez une deuxième AWS IoT politique qui inclut uniquement cette autorisation. Si vous incluez cette autorisation dans la AWS IoT politique principale de votre appareil principal, vous pouvez détacher et supprimer l'autre AWS IoT politique.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:client/core-device-thing-name*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive",
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrass/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrassv2/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/token-exchange-role-alias-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetComponentVersionArtifact",
                "greengrass:ResolveComponentCandidates",
                "greengrass:GetDeploymentConfiguration",
                "greengrass:ListThingGroupsForCoreDevice"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS IoT Politique minimale de prise en charge des appareils clients
<a name="client-device-support-minimal-iot-policy"></a>

L'exemple de politique suivant inclut l'ensemble minimal d'actions requises pour prendre en charge l'interaction avec les appareils clients sur un périphérique principal. Pour prendre en charge les appareils clients, un périphérique principal doit disposer des autorisations définies dans cette AWS IoT politique, en plus de la [AWS IoT politique minimale pour le fonctionnement de base](#greengrass-core-minimal-iot-policy).
+ La politique permet au périphérique principal de mettre à jour ses propres informations de connectivité. Cette autorisation (`greengrass:UpdateConnectivityInfo`) n'est requise que si vous déployez le [composant de détection IP](ip-detector-component.md) sur le périphérique principal.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:PutCertificateAuthorities",
                "greengrass:VerifyClientDeviceIdentity"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:VerifyClientDeviceIoTCertificateAssociation"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:thing/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetConnectivityInfo",
                "greengrass:UpdateConnectivityInfo"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/core-device-thing-name"
            ]
        }
    ]
}
```

------

## AWS IoT Politique minimale pour les appareils clients
<a name="client-device-minimal-iot-policy"></a>

L'exemple de politique suivant inclut l'ensemble minimal d'actions requises pour qu'un appareil client découvre les périphériques principaux auxquels il se connecte et communique via MQTT. La AWS IoT politique de l'appareil client doit inclure l'`greengrass:Discover`action permettant à l'appareil de découvrir les informations de connectivité pour les appareils principaux Greengrass associés. Dans la `Resource` section, spécifiez l'Amazon Resource Name (ARN) de l'appareil client, et non l'ARN du périphérique principal Greengrass.
+ La politique permet la communication sur tous les sujets du MQTT. Pour suivre les meilleures pratiques de sécurité, limitez les `iot:Publish``iot:Subscribe`, et `iot:Receive` les autorisations à l'ensemble minimal de sujets requis par un appareil client pour votre cas d'utilisation.
+ La politique permet à l'objet de découvrir les principaux appareils pour AWS IoT tout. Pour suivre les meilleures pratiques de sécurité, limitez l'`greengrass:Discover`autorisation à l' AWS IoT objet de l'appareil client ou à un caractère générique correspondant à un ensemble d' AWS IoT éléments.
**Important**  
<a name="thing-policy-variable-not-supported"></a>[Les variables de politique des](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) objets (`iot:Connection.Thing.*`) ne sont pas prises en charge dans AWS IoT les politiques relatives aux appareils principaux ou aux opérations du plan de données Greengrass. Vous pouvez plutôt utiliser un caractère générique correspondant à plusieurs appareils portant des noms similaires. Par exemple, vous pouvez spécifier `MyGreengrassDevice*` de correspondre `MyGreengrassDevice1``MyGreengrassDevice2`, et ainsi de suite. 
+ La AWS IoT politique d'un appareil client n'exige généralement pas d'autorisations ou d'`iot:DeleteThingShadow`actions `iot:GetThingShadow``iot:UpdateThingShadow`, car le périphérique principal de Greengrass gère les opérations de synchronisation parallèle pour les appareils clients. Pour permettre au périphérique principal de gérer les ombres des périphériques clients, vérifiez que la AWS IoT politique du périphérique principal autorise ces actions et que ARNs la `Resource` section inclut les périphériques clients.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:Discover"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/*"
            ]
        }
    ]
}
```

------

# Gestion des identités et des accès pour AWS IoT Greengrass
<a name="security-iam"></a>

Gestion des identités et des accès AWS (IAM) est un outil Service AWS qui permet à un administrateur de contrôler en toute sécurité l'accès aux AWS ressources. Les administrateurs IAM contrôlent qui peut être *authentifié* (connecté) et *autorisé (autorisé*) à utiliser AWS IoT Greengrass les ressources. IAM est un Service AWS outil que vous pouvez utiliser sans frais supplémentaires.

**Note**  
Cette rubrique décrit les concepts et fonctionnalités de l'IAM. Pour plus d'informations sur les fonctionnalités IAM prises en charge par AWS IoT Greengrass, consultez[Comment AWS IoT Greengrass fonctionne avec IAM](security_iam_service-with-iam.md).

## Public ciblé
<a name="security_iam_audience"></a>

La façon dont vous utilisez Gestion des identités et des accès AWS (IAM) varie en fonction de votre rôle :
+ **Utilisateur du service** : demandez des autorisations à votre administrateur si vous ne pouvez pas accéder aux fonctionnalités (voir [Résolution des problèmes d'identité et d'accès pour AWS IoT Greengrass](security_iam_troubleshoot.md))
+ **Administrateur du service** : déterminez l’accès des utilisateurs et soumettez les demandes d’autorisation (voir [Comment AWS IoT Greengrass fonctionne avec IAM](security_iam_service-with-iam.md))
+ **Administrateur IAM** : rédigez des politiques pour gérer l’accès (voir [Exemples de politiques basées sur l'identité pour AWS IoT Greengrass](security_iam_id-based-policy-examples.md))

## Authentification par des identités
<a name="security_iam_authentication"></a>

L'authentification est la façon dont vous vous connectez à AWS l'aide de vos informations d'identification. Vous devez être authentifié en tant qu'utilisateur IAM ou en assumant un rôle IAM. Utilisateur racine d'un compte AWS

Vous pouvez vous connecter en tant qu'identité fédérée à l'aide d'informations d'identification provenant d'une source d'identité telle que AWS IAM Identity Center (IAM Identity Center), d'une authentification unique ou d'informations d'identification. Google/Facebook Pour plus d’informations sur la connexion, consultez [Connexion à votre Compte AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dans le *Guide de l’utilisateur Connexion à AWS *.

Pour l'accès par programmation, AWS fournit un SDK et une CLI pour signer les demandes de manière cryptographique. Pour plus d’informations, consultez [Signature AWS Version 4 pour les demandes d’API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dans le *Guide de l’utilisateur IAM*.

### Compte AWS utilisateur root
<a name="security_iam_authentication-rootuser"></a>

 Lorsque vous créez un Compte AWS, vous commencez par une seule identité de connexion appelée *utilisateur Compte AWS root* qui dispose d'un accès complet à toutes Services AWS les ressources. Il est vivement déconseillé d’utiliser l’utilisateur racine pour vos tâches quotidiennes. Pour les tâches qui requièrent des informations d’identification de l’utilisateur racine, consultez [Tâches qui requièrent les informations d’identification de l’utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dans le *Guide de l’utilisateur IAM*. 

### Utilisateurs et groupes IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* est une identité qui dispose d’autorisations spécifiques pour une seule personne ou application. Nous vous recommandons d’utiliser ces informations d’identification temporaires au lieu des utilisateurs IAM avec des informations d’identification à long terme. Pour plus d'informations, voir [Exiger des utilisateurs humains qu'ils utilisent la fédération avec un fournisseur d'identité pour accéder à AWS l'aide d'informations d'identification temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dans le *guide de l'utilisateur IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spécifient une collection d’utilisateurs IAM et permettent de gérer plus facilement les autorisations pour de grands ensembles d’utilisateurs. Pour plus d’informations, consultez [Cas d’utilisation pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dans le *Guide de l’utilisateur IAM*.

### Rôles IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Gestion de l’accès à l’aide de politiques
<a name="security_iam_access-manage"></a>

Vous contrôlez l'accès en AWS créant des politiques et en les associant à AWS des identités ou à des ressources. Une politique définit les autorisations lorsqu'elles sont associées à une identité ou à une ressource. AWS évalue ces politiques lorsqu'un directeur fait une demande. La plupart des politiques sont stockées AWS sous forme de documents JSON. Pour plus d’informations les documents de politique JSON, consultez [Vue d’ensemble des politiques JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dans le *Guide de l’utilisateur IAM*.

À l’aide de politiques, les administrateurs précisent qui a accès à quoi en définissant quel **principal** peut effectuer des **actions** sur quelles **ressources** et dans quelles **conditions**.

Par défaut, les utilisateurs et les rôles ne disposent d’aucune autorisation. Un administrateur IAM crée des politiques IAM et les ajoute aux rôles, que les utilisateurs peuvent ensuite assumer. Les politiques IAM définissent les autorisations quelle que soit la méthode que vous utilisez pour exécuter l’opération.

### Politiques basées sur l’identité
<a name="security_iam_access-manage-id-based-policies"></a>

Les stratégies basées sur l’identité sont des documents de stratégie d’autorisations JSON que vous attachez à une identité (utilisateur, groupe ou rôle). Ces politiques contrôlent les actions que peuvent exécuter ces identités, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Les politiques basées sur l’identité peuvent être des *politiques intégrées* (intégrées directement dans une seule identité) ou des *politiques gérées (politiques* autonomes associées à plusieurs identités). Pour découvrir comment choisir entre des politiques gérées et en ligne, consultez [Choix entre les politiques gérées et les politiques en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dans le *Guide de l’utilisateur IAM*.

### Politiques basées sur les ressources
<a name="security_iam_access-manage-resource-based-policies"></a>

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Les exemples incluent *les politiques de confiance de rôle* IAM et les *stratégies de compartiment* Amazon S3. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Vous devez [spécifier un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans une politique basée sur les ressources.

Les politiques basées sur les ressources sont des politiques en ligne situées dans ce service. Vous ne pouvez pas utiliser les politiques AWS gérées par IAM dans une stratégie basée sur les ressources.

### Listes de contrôle d'accès (ACLs)
<a name="security_iam_access-manage-acl"></a>

Les listes de contrôle d'accès (ACLs) contrôlent les principaux (membres du compte, utilisateurs ou rôles) autorisés à accéder à une ressource. ACLs sont similaires aux politiques basées sur les ressources, bien qu'elles n'utilisent pas le format de document de politique JSON.

Amazon S3 et AWS WAF Amazon VPC sont des exemples de services compatibles. ACLs Pour en savoir plus ACLs, consultez la [présentation de la liste de contrôle d'accès (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) dans le *guide du développeur Amazon Simple Storage Service*.

### Autres types de politique
<a name="security_iam_access-manage-other-policies"></a>

AWS prend en charge des types de politiques supplémentaires qui peuvent définir les autorisations maximales accordées par les types de politiques les plus courants :
+ **Limites d’autorisations** : une limite des autorisations définit le nombre maximum d’autorisations qu’une politique basée sur l’identité peut accorder à une entité IAM. Pour plus d’informations, consultez [Limites d’autorisations pour des entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dans le *Guide de l’utilisateur IAM*.
+ **Politiques de contrôle des services (SCPs)** — Spécifiez les autorisations maximales pour une organisation ou une unité organisationnelle dans AWS Organizations. Pour plus d’informations, consultez [Politiques de contrôle de service](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.
+ **Politiques de contrôle des ressources (RCPs)** : définissez le maximum d'autorisations disponibles pour les ressources de vos comptes. Pour plus d'informations, voir [Politiques de contrôle des ressources (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ **Politiques de session** : politiques avancées que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Pour plus d’informations, consultez [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *Guide de l’utilisateur IAM*.

### Plusieurs types de politique
<a name="security_iam_access-manage-multiple-policies"></a>

Lorsque plusieurs types de politiques s’appliquent à la requête, les autorisations en résultant sont plus compliquées à comprendre. Pour savoir comment AWS déterminer s'il faut autoriser une demande lorsque plusieurs types de politiques sont impliqués, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*.

## Consultez aussi
<a name="security_iam_service-see-also"></a>
+ [Comment AWS IoT Greengrass fonctionne avec IAM](security_iam_service-with-iam.md)
+ [Exemples de politiques basées sur l'identité pour AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Résolution des problèmes d'identité et d'accès pour AWS IoT Greengrass](security_iam_troubleshoot.md)

# Comment AWS IoT Greengrass fonctionne avec IAM
<a name="security_iam_service-with-iam"></a>

Avant d'utiliser IAM pour gérer l'accès AWS IoT Greengrass, vous devez comprendre les fonctionnalités IAM que vous pouvez utiliser. AWS IoT Greengrass


| Fonctionnalité IAM | Prise en charge par Greengrass ? | 
| --- | --- | 
| [Stratégies basées sur l'identité avec autorisations au niveau des ressources](#security_iam_service-with-iam-id-based-policies) | Oui | 
| [Politiques basées sur les ressources](#security_iam_service-with-iam-resource-based-policies) | Non | 
| [Listes de contrôle d'accès (ACLs)](#security_iam_service-with-iam-acls) | Non | 
| [Autorisation basée sur les balises](#security_iam_service-with-iam-tags) | Oui | 
| [Informations d’identification temporaires](#security_iam_service-with-iam-roles-tempcreds) | Oui | 
| [Rôles liés à un service](#security_iam_service-with-iam-roles-service-linked) | Non | 
| [Rôles de service](#security_iam_service-with-iam-roles-service-linked) | Oui | 

Pour obtenir une vue d'ensemble de la façon dont les autres AWS services fonctionnent avec IAM, consultez la section [AWS Services compatibles avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dans le Guide de l'utilisateur d'*IAM*.

## Politiques basées sur l'identité pour AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Avec les politiques basées sur l'identité IAM, vous pouvez spécifier les actions et les ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. AWS IoT Greengrass prend en charge des actions, des ressources et des clés de condition spécifiques. Pour en savoir plus sur tous les éléments que vous utilisez dans une politique, consultez la [référence des éléments de stratégie IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dans le guide de l'*utilisateur IAM*.

### Actions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Action` d’une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l’accès à une politique. Intégration d’actions dans une politique afin d’accorder l’autorisation d’exécuter les opérations associées.

Actions de stratégie pour AWS IoT Greengrass utiliser le `greengrass:` préfixe avant l'action. Par exemple, pour permettre à quelqu'un d'utiliser l'opération d'`ListCoreDevices`API pour répertorier les principaux appareils dans sa politique Compte AWS, vous devez inclure l'`greengrass:ListCoreDevices`action dans sa politique. Les déclarations de politique doivent inclure un `NotAction` élément `Action` ou. AWS IoT Greengrass définit son propre ensemble d'actions décrivant les tâches que vous pouvez effectuer avec ce service.

Pour spécifier plusieurs actions dans une seule instruction, listez-les entre crochets (`[``]`) et séparez-les par des virgules, comme suit :

```
"Action": [
  "greengrass:action1",
  "greengrass:action2",
  "greengrass:action3"
]
```

Vous pouvez utiliser des caractères génériques (`*`) pour spécifier plusieurs actions. Par exemple, pour spécifier toutes les actions qui commencent par le mot `List`, incluez l’action suivante :

```
"Action": "greengrass:List*"
```

**Note**  
Nous vous recommandons d'éviter d’utiliser des caractères génériques pour spécifier toutes les actions disponibles pour un service. La bonne pratique consiste à applique le principe du moindre privilège et à accorder des autorisations de portée limitée dans une stratégie. Pour de plus amples informations, veuillez consulter [Accorder le moins d’autorisations possibles](security-best-practices.md#least-privilege).

Pour la liste complète des AWS IoT Greengrass actions, voir [Actions définies par AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) dans le *guide de l'utilisateur IAM*.

### Ressources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément de politique JSON `Resource` indique le ou les objets auxquels l’action s’applique. Il est recommandé de définir une ressource à l’aide de son [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, utilisez un caractère générique (\$1) afin d’indiquer que l’instruction s’applique à toutes les ressources.

```
"Resource": "*"
```

Le tableau suivant contient la AWS IoT Greengrass ressource ARNs qui peut être utilisée dans l'`Resource`élément d'une déclaration de politique. Pour un mappage des autorisations prises en charge au niveau des ressources pour les AWS IoT Greengrass actions, voir [Actions définies par AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) dans le guide de l'utilisateur *IAM*.

Certaines AWS IoT Greengrass actions (par exemple, certaines opérations de liste) ne peuvent pas être effectuées sur une ressource spécifique. Dans ce cas, vous devez utiliser le caractère générique seul.

```
"Resource": "*"
```

Pour spécifier plusieurs ressources ARNs dans une instruction, listez-les entre crochets (`[``]`) et séparez-les par des virgules, comme suit :

```
"Resource": [
  "resource-arn1",
  "resource-arn2",
  "resource-arn3"
]
```

Pour plus d'informations sur les formats ARN, consultez [Amazon Resource Names (ARNs) et les espaces de noms de AWS service](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) dans le *Référence générale d'Amazon Web Services*.

### Clés de condition
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Condition` indique à quel moment les instructions s’exécutent en fonction de critères définis. Vous pouvez créer des expressions conditionnelles qui utilisent des [opérateurs de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande. Pour voir toutes les clés de condition AWS globales, voir les clés de [contexte de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

### Exemples
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Pour consulter des exemples de politiques AWS IoT Greengrass basées sur l'identité, consultez. [Exemples de politiques basées sur l'identité pour AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Politiques basées sur les ressources pour AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass ne prend pas en charge les [politiques basées sur les ressources](security-iam.md#security_iam_access-manage-resource-based-policies).

## Listes de contrôle d'accès (ACLs)
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass ne prend pas en charge [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorisation basée sur les AWS IoT Greengrass tags
<a name="security_iam_service-with-iam-tags"></a>

Vous pouvez associer des balises aux AWS IoT Greengrass ressources prises en charge ou transmettre des balises dans une demande à AWS IoT Greengrass. Pour contrôler l'accès basé sur des balises, vous devez fournir les informations de balise dans l'[élément Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) d'une stratégie utilisant les clés de condition `aws:ResourceTag/${TagKey}`, `aws:RequestTag/${TagKey}` ou `aws:TagKeys`. Pour de plus amples informations, veuillez consulter [Marquez vos AWS IoT Greengrass Version 2 ressources](tag-resources.md).

## Rôles IAM pour AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) est une entité au sein de votre Compte AWS qui dispose d'autorisations spécifiques.

### Utilisation d'informations d'identification temporaires avec AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Les informations d'identification temporaires sont utilisées pour se connecter à la fédération, assumer un rôle IAM ou assumer un rôle entre comptes. Vous obtenez des informations d'identification de sécurité temporaires en appelant des opérations d' AWS STS API telles que [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html).

Sur le noyau de Greengrass, des informations d'identification temporaires pour le [rôle d'appareil](device-service-role.md) sont mises à la disposition des composants de Greengrass. Si vos composants utilisent le AWS SDK, vous n'avez pas besoin d'ajouter de logique pour obtenir les informations d'identification, car le AWS SDK le fait pour vous.

### Rôles liés à un service
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass ne prend pas en charge les [rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Rôles du service
<a name="security_iam_service-with-iam-roles-service"></a>

Cette fonction permet à un service d’endosser une [fonction du service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) en votre nom. Ce rôle autorise le service à accéder à des ressources d’autres services pour effectuer une action en votre nom. Les rôles de service s’affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu’un administrateur IAM peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bon fonctionnement du service.

AWS IoT Greengrass les appareils principaux utilisent un rôle de service pour permettre aux composants Greengrass et aux fonctions Lambda d'accéder à certaines de vos AWS ressources en votre nom. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

AWS IoT Greengrass utilise un rôle de service pour accéder à certaines de vos AWS ressources en votre nom. Pour de plus amples informations, veuillez consulter [Rôle de service Greengrass](greengrass-service-role.md).

# Exemples de politiques basées sur l'identité pour AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources AWS IoT Greengrass . Ils ne peuvent pas non plus effectuer de tâches à l'aide de l' AWS API AWS Management Console AWS CLI, ou. Un administrateur IAM doit créer des politiques IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces politiques aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

## Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer AWS IoT Greengrass des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par le AWS client spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez [politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

## Exemples de politiques
<a name="security_iam_id-based-policy-examples-list"></a>

Les exemples de stratégie définie par le client suivants accordent des autorisations pour des scénarios courants.

**Topics**
+ [Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques dans l’onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dans le *Guide de l’utilisateur IAM*.

### Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Autoriser les appareils principaux à interagir avec les AWS services
<a name="device-service-role"></a>

AWS IoT Greengrass les appareils principaux utilisent le fournisseur AWS IoT Core d'informations d'identification pour autoriser les appels aux AWS services. Le fournisseur AWS IoT Core d'informations d'identification permet aux appareils d'utiliser leurs certificats X.509 comme identité d'appareil unique pour authentifier les demandes. AWS Il n'est donc plus nécessaire de stocker un identifiant de clé d' AWS accès et une clé d'accès secrète sur vos AWS IoT Greengrass principaux appareils. Pour plus d'informations, consultez la section [Autorisation des appels directs vers AWS des services](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) dans le *Guide du AWS IoT Core développeur*.

Lorsque vous exécutez le logiciel AWS IoT Greengrass Core, vous pouvez choisir de fournir les AWS ressources dont le périphérique principal a besoin. Cela inclut le rôle Gestion des identités et des accès AWS (IAM) que votre appareil principal assume par le biais du fournisseur AWS IoT Core d'informations d'identification. Utilisez l'`--provision true`argument pour configurer un rôle et des politiques permettant au périphérique principal d'obtenir des AWS informations d'identification temporaires. Cet argument configure également un alias de AWS IoT rôle qui pointe vers ce rôle IAM. Vous pouvez spécifier le nom du rôle IAM et l'alias de AWS IoT rôle à utiliser. Si vous spécifiez `--provision true` sans ces autres paramètres de nom, le périphérique principal de Greengrass crée et utilise les ressources par défaut suivantes :
+ Rôle IAM : `GreengrassV2TokenExchangeRole`

  Ce rôle possède une politique nommée `GreengrassV2TokenExchangeRoleAccess` et une relation de confiance qui permet `credentials.iot.amazonaws.com` d'assumer le rôle. La politique inclut les autorisations minimales pour le périphérique principal.
**Important**  
Cette politique n'inclut pas l'accès aux fichiers dans les compartiments S3. Vous devez ajouter des autorisations au rôle pour permettre aux appareils principaux de récupérer les artefacts des composants à partir des compartiments S3. Pour de plus amples informations, veuillez consulter [Autoriser l'accès aux compartiments S3 pour les artefacts des composants](#device-service-role-access-s3-bucket).
+ AWS IoT alias de rôle : `GreengrassV2TokenExchangeRoleAlias`

  Cet alias de rôle fait référence au rôle IAM.

Pour de plus amples informations, veuillez consulter [Étape 3 : Installation du logiciel AWS IoT Greengrass principal](install-greengrass-v2.md).

Vous pouvez également définir l'alias de rôle pour un appareil principal existant. Pour ce faire, configurez le paramètre de `iotRoleAlias` configuration du composant [Greengrass nucleus](greengrass-nucleus-component.md).

Vous pouvez obtenir des AWS informations d'identification temporaires pour ce rôle IAM afin d'effectuer AWS des opérations dans vos composants personnalisés. Pour de plus amples informations, veuillez consulter [Interagissez avec les AWS services](interact-with-aws-services.md).

**Topics**
+ [Autorisations de rôle de service pour les appareils principaux](#device-service-role-permissions)
+ [Autoriser l'accès aux compartiments S3 pour les artefacts des composants](#device-service-role-access-s3-bucket)

## Autorisations de rôle de service pour les appareils principaux
<a name="device-service-role-permissions"></a>

Le rôle permet au service suivant d'assumer le rôle :
+ `credentials.iot.amazonaws.com`

Si vous utilisez le logiciel AWS IoT Greengrass Core pour créer ce rôle, il utilise la politique d'autorisation suivante pour autoriser les appareils principaux à se connecter et à envoyer des journaux à AWS. Le nom de la politique est par défaut le nom du rôle IAM se terminant par. `Access` Par exemple, si vous utilisez le nom de rôle IAM par défaut, le nom de cette politique est`GreengrassV2TokenExchangeRoleAccess`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Autoriser l'accès aux compartiments S3 pour les artefacts des composants
<a name="device-service-role-access-s3-bucket"></a>

Le rôle de périphérique principal par défaut ne permet pas aux appareils principaux d'accéder aux compartiments S3. Pour déployer des composants contenant des artefacts dans des compartiments S3, vous devez ajouter l'`s3:GetObject`autorisation permettant aux appareils principaux de télécharger des artefacts de composants. Vous pouvez ajouter une nouvelle politique au rôle principal de l'appareil pour accorder cette autorisation.

**Pour ajouter une politique qui autorise l'accès aux artefacts des composants dans Amazon S3**

1. Créez un fichier appelé `component-artifact-policy.json` et copiez-y le code JSON suivant. Cette politique permet d'accéder à tous les fichiers d'un compartiment S3. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3 pour autoriser l'accès au périphérique principal.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Exécutez la commande suivante pour créer la politique à partir du document de stratégie dans`component-artifact-policy.json`.

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Copiez le nom Amazon Resource Name (ARN) de la politique à partir des métadonnées de la politique dans la sortie. Vous utilisez cet ARN pour associer cette politique au rôle principal de l'appareil à l'étape suivante.

1. Exécutez la commande suivante pour associer la politique au rôle principal de l'appareil. *GreengrassV2TokenExchangeRole*Remplacez-le par le nom du rôle que vous avez spécifié lors de l'exécution du logiciel AWS IoT Greengrass Core. Remplacez ensuite l'ARN de la politique par l'ARN de l'étape précédente.

------
#### [ Linux or Unix ]

   ```
   aws iam attach-role-policy \
     --role-name GreengrassV2TokenExchangeRole \
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ PowerShell ]

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Si la commande n'a aucune sortie, elle a réussi et votre appareil principal peut accéder aux artefacts que vous téléchargez dans ce compartiment S3.

# Politique IAM minimale permettant au programme d'installation de provisionner les ressources
<a name="provision-minimal-iam-policy"></a>

Lorsque vous installez le logiciel AWS IoT Greengrass Core, vous pouvez fournir les AWS ressources requises, telles qu'un AWS IoT objet ou un rôle IAM pour votre appareil. Vous pouvez également déployer des outils de développement locaux sur l'appareil. Le programme d'installation a besoin AWS d'informations d'identification pour pouvoir effectuer ces actions dans votre Compte AWS. Pour de plus amples informations, veuillez consulter [Installation du logiciel AWS IoT Greengrass de base](install-greengrass-core-v2.md).

L'exemple de politique suivant inclut l'ensemble minimal d'actions dont le programme d'installation a besoin pour provisionner ces ressources. Ces autorisations sont requises si vous spécifiez l'`--provision`argument du programme d'installation. *account-id*Remplacez-le par votre Compte AWS ID et remplacez-le *GreengrassV2TokenExchangeRole* par le nom du rôle d'échange de jetons que vous spécifiez avec l'[argument du `--tes-role-name` programme d'installation](configure-installer.md).

**Note**  
La déclaration `DeployDevTools` de politique n'est requise que si vous spécifiez l'`--deploy-dev-tools`argument du programme d'installation.

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Rôle de service Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>Le rôle de service Greengrass est un rôle de service Gestion des identités et des accès AWS (IAM) qui autorise l'accès AWS IoT Greengrass aux ressources des AWS services en votre nom. Ce rôle permet de vérifier l'identité AWS IoT Greengrass des appareils clients et de gérer les informations de connectivité de base des appareils.

**Note**  
AWS IoT Greengrass V1 utilise également ce rôle pour effectuer des tâches essentielles. Pour plus d'informations, voir le [rôle de service Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) dans le Guide du *AWS IoT Greengrass V1 développeur*.

Pour autoriser AWS IoT Greengrass l'accès à vos ressources, le rôle de service Greengrass doit être associé à votre rôle Compte AWS et spécifié en AWS IoT Greengrass tant qu'entité de confiance. Le rôle doit inclure la politique [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)gérée ou une politique personnalisée qui définit des autorisations équivalentes pour les AWS IoT Greengrass fonctionnalités que vous utilisez. AWS applique cette politique, qui définit l'ensemble des autorisations AWS IoT Greengrass utilisées pour accéder à vos AWS ressources. Pour de plus amples informations, veuillez consulter [AWS politique gérée : AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Vous pouvez réutiliser le même rôle de service Greengrass partout Régions AWS, mais vous devez l'associer à votre compte partout Région AWS où vous l'utilisez. AWS IoT Greengrass Si le rôle de service n'est pas configuré actuellement Région AWS, les appareils principaux ne vérifient pas les appareils clients et ne mettent pas à jour les informations de connectivité.

Les sections suivantes décrivent comment créer et gérer le rôle de service Greengrass avec le AWS Management Console ou. AWS CLI

**Topics**
+ [Gérer le rôle de service Greengrass (console)](#manage-greengrass-service-role-console)
+ [Gérer le rôle de service Greengrass (CLI)](#manage-service-role-cli)
+ [Consultez aussi](#service-role-see-also)

**Note**  
Outre le rôle de service qui autorise l'accès au niveau de service, vous attribuez un rôle d'*échange de jetons aux appareils principaux de* Greengrass. Le rôle d'échange de jetons est un rôle IAM distinct qui contrôle la manière dont les composants Greengrass et les fonctions Lambda du périphérique principal peuvent accéder aux services. AWS Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

## Gérer le rôle de service Greengrass (console)
<a name="manage-greengrass-service-role-console"></a>

La AWS IoT console facilite la gestion de votre rôle dans le service Greengrass. Par exemple, lorsque vous configurez la découverte des appareils clients pour un appareil principal, la console vérifie si vous êtes Compte AWS actuellement attaché à un rôle de service Greengrass. Région AWS Si ce n'est pas le cas, la console peut créer et configurer un rôle de service pour vous. Pour de plus amples informations, veuillez consulter [Créer le rôle de service Greengrass (console)](#create-greengrass-service-role-console).

Vous pouvez utiliser la console pour les tâches de gestion des rôles suivantes :

**Topics**
+ [Rechercher votre rôle de service Greengrass (console)](#get-greengrass-service-role-console)
+ [Créer le rôle de service Greengrass (console)](#create-greengrass-service-role-console)
+ [Modifier le rôle de service Greengrass (console)](#update-greengrass-service-role-console)
+ [Détacher le rôle de service Greengrass (console)](#remove-greengrass-service-role-console)

**Note**  
L'utilisateur qui est connecté à la console doit disposer d'autorisations pour afficher, créer ou modifier le rôle de service.

### Rechercher votre rôle de service Greengrass (console)
<a name="get-greengrass-service-role-console"></a>

Suivez les étapes ci-dessous pour trouver le rôle de service AWS IoT Greengrass utilisé dans le courant Région AWS.

1. <a name="open-iot-console"></a>Accédez à la [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Faites défiler l'écran jusqu'à la section **Greengrass service role (Rôle de service Greengrass)** pour afficher votre rôle de service et ses stratégies.

   Si aucun rôle de service n'apparaît, la console peut en créer ou en configurer un pour vous. Pour de plus amples informations, veuillez consulter [Créer le rôle de service Greengrass](#create-greengrass-service-role-console).

### Créer le rôle de service Greengrass (console)
<a name="create-greengrass-service-role-console"></a>

La console peut créer et configurer un rôle de service Greengrass par défaut pour vous. Ce rôle a les propriétés suivantes :


| Propriété | Value | 
| --- | --- | 
| Nom | Greengrass\$1ServiceRole | 
| Entité de confiance | AWS service: greengrass | 
| Politique | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**Note**  
Si vous créez ce rôle à l'aide du [script de configuration de l'AWS IoT Greengrass V1 appareil](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), le nom du rôle est`GreengrassServiceRole_random-string`.

Lorsque vous configurez la découverte des appareils clients pour un appareil principal, la console vérifie si un rôle de service Greengrass est associé à votre rôle Compte AWS dans le service actuel. Région AWS Si ce n'est pas le cas, la console vous invite AWS IoT Greengrass à autoriser les AWS services à lire et à écrire en votre nom.

Si vous accordez l'autorisation, la console vérifie si un rôle nommé `Greengrass_ServiceRole` existe dans votre Compte AWS.
+ Si le rôle existe, la console attache le rôle de service à votre rôle Compte AWS dans le courant Région AWS.
+ Si le rôle n'existe pas, la console crée un rôle de service Greengrass par défaut et l'attache à votre rôle Compte AWS dans le service actuel. Région AWS

**Note**  
Si vous souhaitez créer un rôle de service avec des politiques de rôle personnalisées, utilisez la console IAM pour créer ou modifier le rôle. Pour plus d'informations, voir [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) ou [Modification d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) dans le *Guide de l'utilisateur IAM*. Assurez-vous que le rôle accorde des autorisations équivalentes à la stratégie `AWSGreengrassResourceAccessRolePolicy` gérée pour les fonctions et les ressources que vous utilisez. Nous vous recommandons également d'inclure les clés `aws:SourceArn` contextuelles et les clés de contexte de condition `aws:SourceAccount` globale dans votre politique de confiance afin d'éviter le problème *de sécurité secondaire confus*. Les clés contextuelles de condition limitent l'accès pour autoriser uniquement les demandes provenant du compte spécifié et de l'espace de travail Greengrass. Pour de plus amples informations sur le problème de l’adjoint confus, veuillez consulter [Prévention du problème de l’adjoint confus entre services](cross-service-confused-deputy-prevention.md).  
Si vous créez un rôle de service, retournez à la AWS IoT console et associez le rôle à votre Compte AWS. Vous pouvez le faire sous le **rôle de service Greengrass** sur la page **Paramètres.**

### Modifier le rôle de service Greengrass (console)
<a name="update-greengrass-service-role-console"></a>

Utilisez la procédure suivante pour choisir un autre rôle de service Greengrass à associer à votre rôle Compte AWS dans le rôle Région AWS actuellement sélectionné dans la console.

1. <a name="open-iot-console"></a>Accédez à la [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Sous le rôle de **service Greengrass, sélectionnez **Modifier** le rôle**.

   La boîte de dialogue **Mettre à jour le rôle de service Greengrass** s'ouvre et indique les rôles IAM Compte AWS que vous définissez AWS IoT Greengrass comme une entité de confiance.

1. Choisissez le rôle de service Greengrass à associer.

1. Choisissez **Attacher un rôle**.

### Détacher le rôle de service Greengrass (console)
<a name="remove-greengrass-service-role-console"></a>

Suivez la procédure ci-dessous pour dissocier le rôle de service Greengrass de AWS votre compte à l'heure actuelle. Région AWS Cela révoque les autorisations AWS IoT Greengrass d'accès aux AWS services actuels Région AWS.

**Important**  
Le détachement du rôle de service peut interrompre les opérations actives.

1. <a name="open-iot-console"></a>Accédez à la [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Sous le rôle de **service Greengrass, choisissez **Detach** role**.

1. Dans la boîte de dialogue de confirmation, choisissez **Détacher**.

**Note**  
Si vous n'avez plus besoin du rôle, vous pouvez le supprimer dans la console IAM. Pour plus d'informations, consultez [Suppression de rôles ou de profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dans le *guide de l'utilisateur IAM*.  
D'autres rôles peuvent vous AWS IoT Greengrass permettre d'accéder à vos ressources. Pour trouver tous les rôles qui permettent AWS IoT Greengrass d'assumer des autorisations en votre nom, dans la console IAM, sur la page **Rôles**, recherchez les rôles incluant **AWS service : greengrass** dans la colonne **Entités fiables**.

## Gérer le rôle de service Greengrass (CLI)
<a name="manage-service-role-cli"></a>

Dans les procédures suivantes, nous partons du principe que le AWS Command Line Interface est installé et configuré pour utiliser votre Compte AWS. Pour plus d'informations, consultez les [sections Installation, mise à jour et désinstallation du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) et [Configuration du AWS CLI dans le](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) *guide de l'AWS Command Line Interface utilisateur*.

Vous pouvez utiliser le AWS CLI pour les tâches de gestion des rôles suivantes :

**Topics**
+ [Obtenir le rôle de service Greengrass (interface de ligne de commande)](#get-service-role)
+ [Créer le rôle de service Greengrass (interface de ligne de commande)](#create-service-role)
+ [Supprimer le rôle de service Greengrass (interface de ligne de commande)](#remove-service-role)

### Obtenir le rôle de service Greengrass (interface de ligne de commande)
<a name="get-service-role"></a>

Utilisez la procédure suivante pour savoir si un rôle de service Greengrass vous est associé Compte AWS dans un. Région AWS
+ Obtenez le rôle de service. *region*Remplacez-le par votre Région AWS (par exemple,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Si un rôle de service Greengrass est déjà associé à votre compte, la demande renvoie les métadonnées de rôle suivantes.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Si la demande ne renvoie pas les métadonnées du rôle, vous devez créer le rôle de service (s'il n'existe pas) et l'associer à votre compte dans le Région AWS.

### Créer le rôle de service Greengrass (interface de ligne de commande)
<a name="create-service-role"></a>

Suivez les étapes ci-dessous pour créer un rôle et l'associer à votre Compte AWS.

**Pour créer le rôle de service à l'aide d'IAM**

1. Créez un rôle avec une politique de confiance qui permet AWS IoT Greengrass d'assumer le rôle. Cet exemple crée un rôle nommé `Greengrass_ServiceRole`, mais vous pouvez utiliser un autre nom. Nous vous recommandons également d'inclure les clés `aws:SourceArn` contextuelles et les clés de contexte de condition `aws:SourceAccount` globale dans votre politique de confiance afin d'éviter le problème *de sécurité secondaire confus*. Les clés contextuelles de condition limitent l'accès pour autoriser uniquement les demandes provenant du compte spécifié et de l'espace de travail Greengrass. Pour de plus amples informations sur le problème de l’adjoint confus, veuillez consulter [Prévention du problème de l’adjoint confus entre services](cross-service-confused-deputy-prevention.md).

------
#### [ Linux or Unix ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Copiez l'ARN de rôle du rôle des métadonnées dans la sortie. Vous utilisez l'ARN pour associer le rôle à votre compte.

1. Attachez la stratégie `AWSGreengrassResourceAccessRolePolicy` au rôle.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Pour associer le rôle de service à votre Compte AWS**
+ Associez le rôle à votre compte. *role-arn*Remplacez-le par l'ARN du rôle *region* de service et par votre Région AWS (par exemple,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  En cas de succès, la demande renvoie la réponse suivante.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Supprimer le rôle de service Greengrass (interface de ligne de commande)
<a name="remove-service-role"></a>

Suivez les étapes ci-dessous pour dissocier le rôle de service Greengrass de votre. Compte AWS
+ Dissociez le rôle de service de votre compte. *region*Remplacez-le par votre Région AWS (par exemple,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  En cas de réussite, la réponse suivante est renvoyée.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**Note**  
Vous devez supprimer le rôle de service si vous ne l'utilisez dans aucun d'entre eux Région AWS. Utilisez d'abord [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) pour détacher la stratégie gérée du rôle, puis utilisez `AWSGreengrassResourceAccessRolePolicy`[https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) pour supprimer le rôle. Pour plus d'informations, consultez [Suppression de rôles ou de profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dans le *guide de l'utilisateur IAM*.

## Consultez aussi
<a name="service-role-see-also"></a>
+ [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le guide de l'*utilisateur IAM*
+ [Modification d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) dans le guide de l'*utilisateur IAM*
+ [Supprimer des rôles ou des profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) dans le guide de l'*utilisateur IAM*
+ AWS IoT Greengrass commandes dans la *référence des AWS CLI commandes*
  + [associate-service-role-to-compte](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-compte](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-compte](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Commandes IAM dans la référence des *AWS CLI commandes*
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS politiques gérées pour AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Une politique AWS gérée est une politique autonome créée et administrée par AWS. AWS les politiques gérées sont conçues pour fournir des autorisations pour de nombreux cas d'utilisation courants afin que vous puissiez commencer à attribuer des autorisations aux utilisateurs, aux groupes et aux rôles.

N'oubliez pas que les politiques AWS gérées peuvent ne pas accorder d'autorisations de moindre privilège pour vos cas d'utilisation spécifiques, car elles sont accessibles à tous les AWS clients. Nous vous recommandons de réduire encore les autorisations en définissant des [politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) qui sont propres à vos cas d’utilisation.

Vous ne pouvez pas modifier les autorisations définies dans les politiques AWS gérées. Si les autorisations définies dans une politique AWS gérée sont AWS mises à jour, la mise à jour affecte toutes les identités principales (utilisateurs, groupes et rôles) auxquelles la politique est attachée. AWS est le plus susceptible de mettre à jour une politique AWS gérée lorsqu'une nouvelle politique Service AWS est lancée ou lorsque de nouvelles opérations d'API sont disponibles pour les services existants.

Pour plus d’informations, consultez [Politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *Guide de l’utilisateur IAM*.

**Topics**
+ [AWS politique gérée : AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS politique gérée : AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS politique gérée : AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass mises à jour des politiques AWS gérées](#aws-managed-policy-updates)

## AWS politique gérée : AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

Vous pouvez associer la politique `AWSGreengrassFullAccess` à vos identités IAM.

Cette politique accorde des autorisations administratives qui permettent au principal d'avoir un accès complet à toutes les AWS IoT Greengrass actions.

**Détails de l’autorisation**

Cette politique inclut les autorisations suivantes :
+ `greengrass`— Permet aux principaux un accès complet à toutes les AWS IoT Greengrass actions.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS politique gérée : AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

Vous pouvez associer la politique `AWSGreengrassReadOnlyAccess` à vos identités IAM.

Cette politique accorde des autorisations en lecture seule qui permettent au principal de consulter, mais pas de modifier, les informations contenues dans. AWS IoT Greengrass Par exemple, les principaux disposant de ces autorisations peuvent consulter la liste des composants déployés sur un appareil principal Greengrass, mais ne peuvent pas créer de déploiement pour modifier les composants qui s'exécutent sur cet appareil.

**Détails de l’autorisation**

Cette politique inclut les autorisations suivantes :
+ `greengrass`— Permet aux principaux d'effectuer des actions qui renvoient soit une liste d'éléments, soit des informations sur un élément. Cela inclut les opérations d'API qui commencent par `List` ou`Get`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS politique gérée : AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Vous pouvez associer la `AWSGreengrassResourceAccessRolePolicy` politique à vos entités IAM. AWS IoT Greengrass associe également cette politique à un rôle de service qui permet AWS IoT Greengrass d'effectuer des actions en votre nom. Pour de plus amples informations, veuillez consulter [Rôle de service Greengrass](greengrass-service-role.md).

Cette politique accorde des autorisations administratives qui permettent d' AWS IoT Greengrass effectuer des tâches essentielles, telles que la récupération de vos fonctions Lambda, la AWS IoT gestion des ombres des appareils et la vérification des appareils clients Greengrass.

**Détails de l’autorisation**

Cette politique inclut les autorisations suivantes.
+ `greengrass`— Gérez les ressources de Greengrass.
+ `iot`(`*Shadow`) — Gérez les AWS IoT ombres dont le nom contient les identifiants spéciaux suivants. Ces autorisations sont nécessaires pour AWS IoT Greengrass pouvoir communiquer avec les appareils principaux.
  + `*-gci`— AWS IoT Greengrass utilise cette ombre pour stocker les informations de connectivité des appareils principaux, afin que les appareils clients puissent découvrir les appareils principaux et s'y connecter.
  + `*-gcm`— La AWS IoT Greengrass V1 utilise cette ombre pour informer le périphérique principal que le certificat d'autorité de certification (CA) du groupe Greengrass a changé.
  + `*-gda`— La AWS IoT Greengrass V1 utilise cette ombre pour informer le périphérique principal d'un déploiement.
  + `GG_*`— Non utilisé.
+ `iot`(`DescribeThing`et`DescribeCertificate`) — Récupérez des informations sur AWS IoT des objets et des certificats. Ces autorisations sont nécessaires pour vérifier les AWS IoT Greengrass appareils clients qui se connectent à un périphérique principal. Pour de plus amples informations, veuillez consulter [Interagissez avec les appareils IoT locaux](interact-with-local-iot-devices.md).
+ `lambda`— Récupère des informations sur AWS Lambda les fonctions. Cette autorisation est requise pour que la AWS IoT Greengrass V1 puisse déployer des fonctions Lambda sur les cœurs de Greengrass. Pour plus d'informations, consultez la section [Exécuter la fonction Lambda sur le AWS IoT Greengrass noyau dans le Guide du](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) *développeur de la AWS IoT Greengrass V1*.
+ `secretsmanager`— Récupère la valeur des AWS Secrets Manager secrets dont le nom commence `greengrass-` par Cette autorisation est requise pour que la AWS IoT Greengrass V1 puisse déployer les secrets de Secrets Manager sur les cœurs de Greengrass. Pour plus d'informations, consultez la section [Déployer des secrets vers le AWS IoT Greengrass cœur](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) dans le *Guide du développeur de la AWS IoT Greengrass V1*.
+ `s3`— Récupère des objets de fichiers dans des compartiments S3 dont les noms contiennent `greengrass` ou`sagemaker`. Ces autorisations sont requises pour que AWS IoT Greengrass V1 puisse déployer des ressources d'apprentissage automatique que vous stockez dans des compartiments S3. Pour plus d'informations, consultez les [ressources d'apprentissage automatique](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) dans le *guide du développeur de la AWS IoT Greengrass V1*.
+ `sagemaker`— Récupérez des informations sur les modèles d'inférence d'apprentissage automatique Amazon SageMaker AI. Cette autorisation est requise pour que la AWS IoT Greengrass V1 puisse déployer des modèles ML sur les cœurs de Greengrass. Pour plus d'informations, consultez la section [Effectuer une inférence d'apprentissage automatique](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) dans le *guide du développeur de la AWS IoT Greengrass V1*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass mises à jour des politiques AWS gérées
<a name="aws-managed-policy-updates"></a>

Vous pouvez consulter les informations relatives aux mises à jour des politiques AWS gérées à AWS IoT Greengrass partir du moment où ce service a commencé à suivre ces modifications. Pour recevoir des alertes automatiques concernant les modifications apportées à cette page, abonnez-vous au flux RSS sur la [page d'historique du document AWS IoT Greengrass V2](document-history.md).


| Modifier | Description | Date | 
| --- | --- | --- | 
|  AWS IoT Greengrass a commencé à suivre les modifications  |  AWS IoT Greengrass a commencé à suivre les modifications apportées AWS à ses politiques gérées.  |  2 juillet 2021  | 

# Prévention du problème de l’adjoint confus entre services
<a name="cross-service-confused-deputy-prevention"></a>

Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. En AWS, l'usurpation d'identité interservices peut entraîner la confusion des adjoints. L’usurpation d’identité entre services peut se produire lorsqu’un service (le *service appelant*) appelle un autre service (le *service appelé*). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé à accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte. 

Nous recommandons d'utiliser les clés de contexte de condition [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)et les clés contextuelles dans les politiques de ressources afin de limiter les autorisations qui AWS IoT Greengrass accordent un autre service à la ressource. Si vous utilisez les deux clés de contexte de condition globale, la valeur `aws:SourceAccount` et le compte de la valeur `aws:SourceArn` doit utiliser le même ID de compte lorsqu’il est utilisé dans la même déclaration de stratégie.

La valeur de `aws:SourceArn` doit être la ressource client Greengrass associée à la `sts:AssumeRole` demande.

Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale `aws:SourceArn` avec l’ARN complet de la ressource. Si vous ne connaissez pas l’ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale `aws:SourceArn` avec des caractères génériques (`*`) pour les parties inconnues de l’ARN. Par exemple, `arn:aws:greengrass::account-id:*`. 

Pour obtenir un exemple de politique utilisant les clés de contexte de condition `aws:SourceAccount` globale `aws:SourceArn` et les clés contextuelles, consultez[Créer le rôle de service Greengrass](greengrass-service-role.md#create-service-role).

# Résolution des problèmes d'identité et d'accès pour AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Utilisez les informations suivantes pour vous aider à diagnostiquer et à résoudre les problèmes courants que vous pouvez rencontrer lorsque vous travaillez avec AWS IoT Greengrass IAM.

**Topics**
+ [Je ne suis pas autorisé à effectuer une action dans AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Je ne suis pas autorisé à effectuer iam : PassRole](#security_iam_troubleshoot-passrole)
+ [Je suis administrateur et je souhaite autoriser d'autres personnes à accéder AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Je souhaite permettre à des personnes extérieures Compte AWS à moi d'accéder à mes AWS IoT Greengrass ressources](#security_iam_troubleshoot-cross-account-access)

Pour obtenir de l’aide relative à la résolution des problèmes généraux, veuillez consulter [Résolution des problèmes AWS IoT Greengrass V2](troubleshooting.md).

## Je ne suis pas autorisé à effectuer une action dans AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Si vous recevez un message d'erreur indiquant que vous n'êtes pas autorisé à exécuter une action, vous devez contacter votre administrateur pour obtenir de l'aide. Votre administrateur est la personne qui vous a fourni votre nom d'utilisateur et votre mot de passe.

L'exemple d'erreur suivant se produit lorsque l'utilisateur `mateojackson` IAM essaie d'afficher les détails d'un appareil principal, mais ne dispose pas des `greengrass:GetCoreDevice` autorisations nécessaires.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

Dans ce cas, Mateo demande à son administrateur de mettre à jour ses politiques pour lui permettre d’accéder à la ressource `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` à l’aide de l’action `greengrass:GetCoreDevice`.

Les problèmes généraux liés à l'IAM que vous pouvez rencontrer lors de votre utilisation sont les AWS IoT Greengrass suivants.

## Je ne suis pas autorisé à effectuer iam : PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si vous recevez une erreur selon laquelle vous n’êtes pas autorisé à exécuter `iam:PassRole` l’action, vos stratégies doivent être mises à jour afin de vous permettre de transmettre un rôle à AWS IoT Greengrass.

Certains vous Services AWS permettent de transmettre un rôle existant à ce service au lieu de créer un nouveau rôle de service ou un rôle lié à un service. Pour ce faire, vous devez disposer des autorisations nécessaires pour transmettre le rôle au service.

L’exemple d’erreur suivant se produit lorsqu’un utilisateur IAM nommé `marymajor` essaie d’utiliser la console pour exécuter une action dans AWS IoT Greengrass. Toutefois, l'action nécessite que le service ait des autorisations accordées par une fonction de service. Mary n'est pas autorisée à transmettre le rôle au service.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dans ce cas, les politiques de Mary doivent être mises à jour pour lui permettre d’exécuter l’action `iam:PassRole`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations d’identification de connexion.

## Je suis administrateur et je souhaite autoriser d'autres personnes à accéder AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Pour autoriser d'autres personnes à y accéder AWS IoT Greengrass, vous devez accorder l'autorisation aux personnes ou aux applications qui ont besoin d'y accéder. Si vous utilisez AWS IAM Identity Center pour gérer des personnes et des applications, vous attribuez des ensembles d'autorisations aux utilisateurs ou aux groupes afin de définir leur niveau d'accès. Les ensembles d'autorisations créent et attribuent automatiquement des politiques IAM aux rôles IAM associés à la personne ou à l'application. Pour plus d'informations, consultez la section [Ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dans le *guide de AWS IAM Identity Center l'utilisateur*.

Si vous n'utilisez pas IAM Identity Center, vous devez créer des entités IAM (utilisateurs ou rôles) pour les personnes ou les applications qui ont besoin d'un accès. Vous devez ensuite associer une politique à l'entité qui leur accorde les autorisations appropriées dans AWS IoT Greengrass. Une fois les autorisations accordées, fournissez les informations d'identification à l'utilisateur ou au développeur de l'application. Ils utiliseront ces informations d'identification pour y accéder AWS. Pour en savoir plus sur la création d'utilisateurs, de groupes, de politiques et d'autorisations [IAM, consultez la section Identités](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html), [politiques et autorisations IAM dans le guide de l'utilisateur *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).

## Je souhaite permettre à des personnes extérieures Compte AWS à moi d'accéder à mes AWS IoT Greengrass ressources
<a name="security_iam_troubleshoot-cross-account-access"></a>

Vous pouvez créer un rôle IAM que les utilisateurs d'autres comptes ou des personnes extérieures à votre organisation peuvent utiliser pour accéder à vos AWS ressources. Vous pouvez spécifier qui est approuvé pour assumer le rôle. Pour plus d'informations, consultez les [sections Fourniture d'accès à un utilisateur IAM dans un autre utilisateur Compte AWS que vous possédez](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) et [Fourniture d'accès à Compte AWS des utilisateurs appartenant à des tiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dans le Guide de l'*utilisateur IAM*.

AWS IoT Greengrass ne prend pas en charge l'accès entre comptes basé sur des politiques basées sur les ressources ou des listes de contrôle d'accès (). ACLs

# Autoriser le trafic des appareils via un proxy ou un pare-feu
<a name="allow-device-traffic"></a>

Les appareils principaux de Greengrass et les composants de Greengrass exécutent les demandes sortantes adressées aux services et à d'autres sites Web AWS . Par mesure de sécurité, vous pouvez limiter le trafic sortant à un petit nombre de terminaux et de ports. Vous pouvez utiliser les informations suivantes sur les points de terminaison et les ports pour limiter le trafic des appareils via un proxy, un pare-feu ou un groupe de [sécurité Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html). Pour plus d'informations sur la configuration d'un périphérique principal pour utiliser un proxy, consultez[Connexion au port 443 ou via un proxy réseau](configure-greengrass-core-v2.md#configure-alpn-network-proxy).

**Topics**
+ [Points de terminaison pour le fonctionnement de base](#core-endpoints)
+ [Points de terminaison pour l'installation avec provisionnement automatique](#automatic-provisioning-endpoints)
+ [Points de terminaison pour les composants AWS fournis](#public-component-endpoints)

## Points de terminaison pour le fonctionnement de base
<a name="core-endpoints"></a>

Les appareils Greengrass Core utilisent les points de terminaison et les ports suivants pour un fonctionnement de base.

### Récupérer des points de AWS IoT terminaison
<a name="retrieve-iot-endpoints"></a>

Obtenez les AWS IoT points de terminaison qui vous Compte AWS conviennent et enregistrez-les pour les utiliser ultérieurement. Votre appareil utilise ces points de terminaison pour se connecter à AWS IoT. Procédez comme suit :

1. Obtenez le point de terminaison de AWS IoT données pour votre Compte AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Obtenez le point de terminaison des informations d' AWS IoT identification pour votre Compte AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```


| Endpoint |  Port | Obligatoire | Description | 
| --- | --- | --- | --- | 
|  `greengrass-ats.iot.region.amazonaws.com`  | 8443 ou 443 | Oui |  Utilisé pour les opérations du plan de données, telles que l'installation de déploiements et l'utilisation de périphériques clients.  | 
|  `device-data-prefix-ats.iot.region.amazonaws.com`  |  MQTT : 8883 ou 443 HTTPS : 8443 ou 443  | Oui |  Utilisé pour les opérations du plan de données destinées à la gestion des appareils, telles que la communication MQTT et la synchronisation des ombres avec AWS IoT Core.  | 
|  `device-credentials-prefix.credentials.iot.region.amazonaws.com`  | 443 | Oui |  Utilisé pour acquérir des AWS informations d'identification, que l'appareil principal utilise pour télécharger des artefacts de composants depuis Amazon S3 et effectuer d'autres opérations. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).  | 
|  `*.s3.amazonaws.com` `*.s3.region.amazonaws.com`  | 443 | Oui |  Utilisé pour les déploiements. Ce format inclut le `*` caractère, car les préfixes des points de terminaison sont contrôlés en interne et peuvent changer à tout moment.  | 
|  `data.iot.region.amazonaws.com`  | 443 | Non |  Nécessaire si le périphérique principal exécute une version du [noyau Greengrass](greengrass-nucleus-component.md) antérieure à la version 2.4.0 et est configuré pour utiliser un proxy réseau. Le périphérique principal utilise ce point de terminaison pour communiquer avec le MQTT AWS IoT Core lorsqu'il est derrière un proxy. Pour de plus amples informations, veuillez consulter [Configuration d'un proxy réseau](configure-greengrass-core-v2.md#configure-network-proxy).  | 

## Points de terminaison pour l'installation avec provisionnement automatique
<a name="automatic-provisioning-endpoints"></a>

Les appareils Greengrass Core utilisent les points de terminaison et les ports suivants lorsque vous [installez le logiciel AWS IoT Greengrass Core avec provisionnement automatique des ressources](quick-installation.md).


| Endpoint |  Port | Obligatoire | Description | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | Oui |  Utilisé pour créer des AWS IoT ressources et récupérer des informations sur les AWS IoT ressources existantes.  | 
|  `iam.amazonaws.com`  | 443 | Oui |  Utilisé pour créer des ressources IAM et récupérer des informations sur les ressources IAM existantes.  | 
|  `sts.region.amazonaws.com`  | 443 | Oui |  Utilisé pour obtenir l'identifiant de votre Compte AWS.  | 
|  `greengrass.region.amazonaws.com`  | 443 | Non |  Obligatoire si vous utilisez l'`--deploy-dev-tools`argument pour déployer le composant Greengrass CLI sur le périphérique principal.  | 

## Points de terminaison pour les composants AWS fournis
<a name="public-component-endpoints"></a>

Les appareils Greengrass Core utilisent des points de terminaison supplémentaires en fonction des composants logiciels qu'ils exécutent. Vous trouverez les points de terminaison requis par chaque composant AWS fourni dans la section **Exigences** de la page de chaque composant de ce guide du développeur. Pour de plus amples informations, veuillez consulter [AWS-composants fournis](public-components.md).

# Validation de conformité pour AWS IoT Greengrass
<a name="compliance-validation"></a>

Pour savoir si un [programme Services AWS de conformité Service AWS s'inscrit dans le champ d'application de programmes de conformité](https://aws.amazon.com/compliance/services-in-scope/) spécifiques, consultez Services AWS la section de conformité et sélectionnez le programme de conformité qui vous intéresse. Pour des informations générales, voir Programmes de [AWS conformité Programmes AWS](https://aws.amazon.com/compliance/programs/) de .

Vous pouvez télécharger des rapports d'audit tiers à l'aide de AWS Artifact. Pour plus d'informations, voir [Téléchargement de rapports dans AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Votre responsabilité en matière de conformité lors de l'utilisation Services AWS est déterminée par la sensibilité de vos données, les objectifs de conformité de votre entreprise et les lois et réglementations applicables. Pour plus d'informations sur votre responsabilité en matière de conformité lors de l'utilisation Services AWS, consultez [AWS la documentation de sécurité](https://docs.aws.amazon.com/security/).

# Points de terminaison FIPS
<a name="FIPS"></a>

AWS IoT Greengrass prend en charge l'utilisation des points de terminaison FIPS ([Federal Information Processing Standard (FIPS) 140-2)](https://aws.amazon.com/compliance/fips/). Lorsque le mode FIPS est activé, toutes les transmissions de données, y compris les protocoles HTTP et MQTT, vers les AWS Cloud services doivent appeler et établir des connexions avec les points de terminaison compatibles FIPS correspondants (FIPS - [Amazon Web Services](https://aws.amazon.com/compliance/fips/) ()).AWS

Communications MQTT pour AWS IoT utiliser le point de terminaison FIPS du plan de données IoT ([connexion aux points de terminaison AWS IoT FIPS - AWS IoT Core) et la bibliothèque](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-fips.html#iot-connect-fips-data) cryptographique compatible FIPS développée par AWS aws-lc.

Pour les communications HTTP dans Greengrass :
+ Pour les composants du noyau et du plugin, tous les clients HTTP du SDK sont configurés avec des points de terminaison FIPS en définissant la propriété système sur true ; AWS\$1USE\$1FIPS\$1ENDPOINT 
+ Pour les composants génériques, tous les composants commencent par une propriété système AWS\$1USE\$1FIPS\$1ENDPOINT définie sur true. Ce processus garantit que les clients HTTP du SDK utilisés par ces composants génériques envoient des demandes aux points de terminaison conformes à la norme FIPS.

**Note**  
Dans le cas du gestionnaire de flux, Nucleus transmet la variable d'environnement AWS\$1GG \$1FIPS\$1MODE. Cette variable d'environnement permet aux clients HTTP utilisés dans le Stream Manager d'identifier et de se connecter au point de terminaison compatible FIPS correspondant.

AWS IoT Greengrass propose deux méthodes pour activer le mode FIPS : le provisionnement et le déploiement. Pour activer le mode FIPS, vous devez définir le paramètre `fipsMode` de configuration sur true, puis Nucleus définit la propriété système sur AWS\$1USE\$1FIPS\$1ENDPOINT true et la propage en tant que variable d'environnement à tous les autres composants. En outre, AWS IoT Greengrass téléchargera un certificat CA racine (CA3) et l'ajoutera au fichier RootCA.pem (ou .pem) existant. AmazonRoot CA1 Si vous activez FIPS via un nouveau déploiement, Nucleus redémarrera pour garantir que les propriétés du système prennent effet après l'activation du mode FIPS.

 Outre la configuration du `fipsMode` paramètre, vous devez également configurer les `greengrassDataEndpoint` paramètres`iotDataEndpoint`, `iotCredEndpoint` et. Pour plus d'informations, consultez le document correspondant ci-dessous.

## Activez les points de terminaison FIPS grâce au déploiement
<a name="FIPS-deployment"></a>

Obtenez les AWS IoT points de terminaison qui vous Compte AWS conviennent et enregistrez-les pour les utiliser ultérieurement. Votre appareil utilise ces points de terminaison pour se connecter à AWS IoT. Deux points de terminaison sont requis, le `iotDataEndpoint` et le`iotCredEndpoint`. Procédez comme suit :

1. Obtenez le point de terminaison de données FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de données FIPS pour vous Compte AWS devrait ressembler à ceci : *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenez le point de terminaison des informations d'identification FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de vos informations d'identification FIPS Compte AWS devrait ressembler à ceci : *data.credentials.iot-fips.us-west-2.amazonaws.com*

Ensuite, pour activer FIPS lors d'un déploiement, vous devez appliquer la configuration suivante à Nucleus. La configuration à fusionner lors du déploiement est la suivante.

------
#### [ Console ]

**Configuration à fusionner**  

```
{
  "fipsMode": "true",
  "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
  "greengrassDataPlaneEndpoint": "iotData",
  "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"
}
```

------
#### [ AWS CLI ]

La commande suivante crée un déploiement sur un périphérique principal.

```
aws greengrassv2 create-deployment --cli-input-json file://dashboard-deployment.json
```

Le `dashboard-deployment.json` fichier contient le document JSON suivant.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "aws.greengrass.Nucleus": {
      "componentVersion": "2.13.0",
      "configurationUpdate": {
        "merge":{\"fipsMode\":\"true\",\"iotDataEndpoint\":\"data.iot-fips.us-west-2.amazonaws.com\",\"greengrassDataPlaneEndpoint\":\"iotData\",\"iotCredEndpoint\":\"data.credentials.iot-fips.us-west-2.amazonaws.com\"}"
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

La commande [Greengrass CLI](greengrass-cli-component.md) suivante crée un déploiement local sur un périphérique principal.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "aws.greengrass.Nucleus=2.13.0" \
  --update-config dashboard-configuration.json
```

Le `dashboard-configuration.json` fichier contient le document JSON suivant.

```
{
  "aws.greengrass.Nucleus": {
    "MERGE": {
       "fipsMode": "true",
       "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
       "greengrassDataPlaneEndpoint": "iotData",
       "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"

    }
  }
}
```

------

## Installation de Nucleus avec des points de terminaison FIPS avec provisionnement manuel des ressources
<a name="FIPS-manual-installation"></a>

Approvisionnement manuel AWS des ressources pour les appareils AWS IoT Greengrass V2 principaux dotés de points de terminaison FIPS

**Important**  <a name="install-greengrass-core-requirements-note"></a>
Avant de télécharger le logiciel AWS IoT Greengrass Core, vérifiez que votre appareil principal répond aux [exigences](greengrass-nucleus-component.md#greengrass-v2-requirements) pour installer et exécuter le logiciel AWS IoT Greengrass Core v2.0.

**Topics**
+ [Récupérer des points de AWS IoT terminaison](#w2ab1c58c44c23b9)
+ [Créez n'importe AWS IoT quoi](#create-iot-thing)
+ [Créez le certificat d'objet](#create-thing-certificate-fips)
+ [Création d'un rôle d'échange de jetons](#create-token-exchange-role)
+ [Télécharger les certificats sur l'appareil](#download-thing-certificates)
+ [Configuration de l'environnement de l'appareil](#set-up-device-environment)
+ [Téléchargez le logiciel AWS IoT Greengrass de base](#download-greengrass-core-v2)
+ [Installation du logiciel AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-manual-fips)

### Récupérer des points de AWS IoT terminaison
<a name="w2ab1c58c44c23b9"></a>

Obtenez les AWS IoT points de terminaison qui vous Compte AWS conviennent et enregistrez-les pour les utiliser ultérieurement. Votre appareil utilise ces points de terminaison pour se connecter à AWS IoT. Deux points de terminaison sont requis, le `iotDataEndpoint` et le`iotCredEndpoint`. Procédez comme suit :

1. Obtenez le point de terminaison de données FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de données FIPS pour vous Compte AWS devrait ressembler à ceci : *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenez le point de terminaison des informations d'identification FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de vos informations d'identification FIPS Compte AWS devrait ressembler à ceci : *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Créez n'importe AWS IoT quoi
<a name="create-iot-thing"></a>

AWS IoT *les objets* représentent les appareils et les entités logiques auxquels ils se connectent AWS IoT. Les appareils Greengrass Core sont AWS IoT des objets. Lorsque vous enregistrez un appareil en tant qu' AWS IoT objet, celui-ci peut utiliser un certificat numérique pour s'authentifier. AWS

Dans cette section, vous allez créer un AWS IoT objet qui représente votre appareil.

**Pour créer AWS IoT quelque chose**

1. Créez n'importe AWS IoT quel objet pour votre appareil. Sur votre ordinateur de développement, exécutez la commande suivante.
   + Remplacez *MyGreengrassCore* par le nom de l'objet à utiliser. Ce nom est également le nom de votre appareil principal Greengrass.
**Note**  <a name="install-argument-thing-name-constraint"></a>
Le nom de l'objet ne peut pas contenir de caractères deux-points (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Facultatif) Ajoutez l' AWS IoT objet à un nouveau groupe d'objets ou à un groupe d'objets existant. Vous utilisez des groupes d'objets pour gérer des flottes d'appareils principaux de Greengrass. Lorsque vous déployez des composants logiciels sur vos appareils, vous pouvez cibler des appareils individuels ou des groupes d'appareils. Vous pouvez ajouter un appareil à un groupe d'objets avec un déploiement Greengrass actif pour déployer les composants logiciels de ce groupe d'objets sur l'appareil. Procédez comme suit :

   1. (Facultatif) Créez un AWS IoT groupe d'objets.
      + Remplacez *MyGreengrassCoreGroup* par le nom du groupe d'objets à créer.
**Note**  <a name="install-argument-thing-group-name-constraint"></a>
Le nom du groupe d'objets ne peut pas contenir de deux-points (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Ajoutez l' AWS IoT objet à un groupe d'objets.
      + Remplacez *MyGreengrassCore* par le nom de votre AWS IoT objet.
      + Remplacez *MyGreengrassCoreGroup* par le nom du groupe d'objets.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      La commande n'a aucune sortie si la demande aboutit.

### Créez le certificat d'objet
<a name="create-thing-certificate-fips"></a>

<a name="create-thing-certificate-intro-1"></a>Lorsque vous enregistrez un appareil en tant qu' AWS IoT objet, celui-ci peut utiliser un certificat numérique pour s'authentifier. AWS Ce certificat permet à l'appareil de communiquer avec AWS IoT et AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>Dans cette section, vous allez créer et télécharger des certificats que votre appareil peut utiliser pour se connecter AWS.

<a name="create-thing-certificate-intro-3"></a>Si vous souhaitez configurer le logiciel AWS IoT Greengrass Core pour utiliser un module de sécurité matériel (HSM) pour stocker en toute sécurité la clé privée et le certificat, suivez les étapes pour créer le certificat à partir d'une clé privée dans un HSM. Sinon, suivez les étapes pour créer le certificat et la clé privée dans le AWS IoT service. La fonctionnalité de sécurité matérielle n'est disponible que sur les appareils Linux. Pour plus d'informations sur la sécurité matérielle et les conditions requises pour l'utiliser, consultez[Intégration de sécurité matérielle](hardware-security.md).

#### Créez le certificat et la clé privée dans le AWS IoT service
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Pour créer le certificat d'objet**

1. Créez un dossier dans lequel vous téléchargerez les certificats de l' AWS IoT objet.

   ```
   mkdir greengrass-v2-certs
   ```

1. Créez et téléchargez les certificats AWS IoT correspondants.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Enregistrez le nom de ressource Amazon (ARN) du certificat afin de l'utiliser pour configurer le certificat ultérieurement.

#### Créez le certificat à partir d'une clé privée dans un HSM
<a name="create-thing-certificate-hardware-security"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.3 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 

**Pour créer le certificat d'objet**

1. Sur le périphérique principal, initialisez un jeton PKCS \$111 dans le HSM et générez une clé privée. La clé privée doit être une clé RSA de taille RSA-2048 (ou supérieure) ou une clé ECC.
**Note**  <a name="hardware-security-module-requirements-key-notes"></a>
Pour utiliser un module de sécurité matériel avec des clés ECC, vous devez utiliser [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 ou version ultérieure.  
Pour utiliser un module de sécurité matériel et un [gestionnaire de secrets](secret-manager-component.md), vous devez utiliser un module de sécurité matériel avec des clés RSA.

   Consultez la documentation de votre HSM pour savoir comment initialiser le jeton et générer la clé privée. Si votre HSM prend en charge l'objet IDs, spécifiez un ID d'objet lorsque vous générez la clé privée. Enregistrez l'ID d'emplacement, le code PIN utilisateur, le libellé de l'objet, l'ID d'objet (si votre HSM en utilise un) que vous spécifiez lorsque vous initialisez le jeton et générez la clé privée. Vous utiliserez ces valeurs ultérieurement lorsque vous importez le certificat d'objet dans le HSM et que vous configurez le logiciel AWS IoT Greengrass principal.

1. Créez une demande de signature de certificat (CSR) à partir de la clé privée. AWS IoT utilise ce CSR pour créer un certificat d'objet pour la clé privée que vous avez générée dans le HSM. Pour plus d'informations sur la création d'un CSR à partir de la clé privée, consultez la documentation de votre HSM. Le CSR est un fichier, tel que`iotdevicekey.csr`.

1. Copiez le CSR de l'appareil vers votre ordinateur de développement. Si SSH et SCP sont activés sur l'ordinateur de développement et le périphérique, vous pouvez utiliser la `scp` commande de votre ordinateur de développement pour transférer le CSR. Remplacez *device-ip-address* par l'adresse IP de votre appareil, puis *\$1/iotdevicekey.csr* par le chemin d'accès au fichier CSR sur l'appareil.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. Sur votre ordinateur de développement, créez un dossier dans lequel vous téléchargerez le certificat AWS IoT correspondant.

   ```
   mkdir greengrass-v2-certs
   ```

1. Utilisez le fichier CSR pour créer et télécharger le certificat correspondant à l' AWS IoT objet sur votre ordinateur de développement.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Enregistrez l'ARN du certificat afin de l'utiliser pour le configurer ultérieurement.

Configurez ensuite le certificat d'objet. Pour de plus amples informations, veuillez consulter [Configurer le certificat d'objet](manual-installation.md#configure-thing-certificate).

### Création d'un rôle d'échange de jetons
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Les appareils principaux de Greengrass utilisent un rôle de service IAM, appelé rôle d'*échange de jetons*, pour autoriser les appels aux services. AWS L'appareil utilise le fournisseur AWS IoT d'informations d'identification pour obtenir des AWS informations d'identification temporaires pour ce rôle, ce qui lui permet d'interagir avec Amazon Logs AWS IoT, d'envoyer des journaux à Amazon CloudWatch Logs et de télécharger des artefacts de composants personnalisés depuis Amazon S3. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Vous utilisez un *alias de AWS IoT rôle* pour configurer le rôle d'échange de jetons pour les appareils principaux de Greengrass. Les alias de rôle vous permettent de modifier le rôle d'échange de jetons d'un appareil tout en conservant la même configuration. Pour plus d'informations, consultez la section [Autorisation des appels directs vers AWS des services](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) dans le *Guide du AWS IoT Core développeur*.

Dans cette section, vous allez créer un rôle IAM d'échange de jetons et un alias de AWS IoT rôle pointant vers le rôle. Si vous avez déjà configuré un appareil principal Greengrass, vous pouvez utiliser son rôle d'échange de jetons et son alias de rôle au lieu d'en créer de nouveaux. Ensuite, vous configurez l'appareil pour AWS IoT qu'il utilise ce rôle et cet alias.

**Pour créer un rôle IAM d'échange de jetons**

1. <a name="create-token-exchange-role-create-iam-role"></a>Créez un rôle IAM que votre appareil peut utiliser comme rôle d'échange de jetons. Procédez comme suit :

   1. Créez un fichier contenant le document de politique de confiance requis par le rôle d'échange de jetons.

      <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

      ```
      nano device-role-trust-policy.json
      ```

      Copiez le code JSON suivant dans le fichier.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Créez le rôle d'échange de jetons avec le document de politique de confiance.
      + Remplacez *GreengrassV2TokenExchangeRole* par le nom du rôle IAM à créer.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Créez un fichier contenant le document de politique d'accès requis par le rôle d'échange de jetons.

      <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

      ```
      nano device-role-access-policy.json
      ```

      Copiez le code JSON suivant dans le fichier.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**Note**  
Cette politique d'accès n'autorise pas l'accès aux artefacts des composants dans les compartiments S3. Pour déployer des composants personnalisés qui définissent des artefacts dans Amazon S3, vous devez ajouter des autorisations au rôle afin de permettre à votre appareil principal de récupérer les artefacts des composants. Pour de plus amples informations, veuillez consulter [Autoriser l'accès aux compartiments S3 pour les artefacts des composants](device-service-role.md#device-service-role-access-s3-bucket).  
Si vous ne possédez pas encore de compartiment S3 pour les artefacts des composants, vous pouvez ajouter ces autorisations ultérieurement après avoir créé un compartiment.

   1. Créez la politique IAM à partir du document de stratégie.
      + Remplacez *GreengrassV2TokenExchangeRoleAccess* par le nom de la politique IAM à créer.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Associez la politique IAM au rôle d'échange de jetons.
      + Remplacez *GreengrassV2TokenExchangeRole* par le nom du rôle IAM.
      + Remplacez l'ARN de la stratégie par l'ARN de la stratégie IAM que vous avez créée à l'étape précédente.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      La commande n'a aucune sortie si la demande aboutit.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Créez un alias de AWS IoT rôle qui pointe vers le rôle d'échange de jetons.
   + Remplacez *GreengrassCoreTokenExchangeRoleAlias* par le nom de l'alias de rôle à créer.
   + Remplacez l'ARN du rôle par l'ARN du rôle IAM que vous avez créé à l'étape précédente.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   La réponse ressemble à l'exemple suivant, si la demande aboutit.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**Note**  
Pour créer un alias de rôle, vous devez être autorisé à transmettre le rôle IAM d'échange de jetons à AWS IoT. Si vous recevez un message d'erreur lorsque vous essayez de créer un alias de rôle, vérifiez que votre AWS utilisateur dispose de cette autorisation. Pour plus d'informations, consultez la section [Octroi à un utilisateur des autorisations lui permettant de transférer un rôle à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dans le *Guide de Gestion des identités et des accès AWS l'utilisateur*.

1. Créez et attachez une AWS IoT politique qui permet à votre appareil principal Greengrass d'utiliser l'alias de rôle pour assumer le rôle d'échange de jetons. Si vous avez déjà configuré un appareil principal Greengrass, vous pouvez associer sa AWS IoT politique d'alias de rôle au lieu d'en créer une nouvelle. Procédez comme suit :

   1. (Facultatif) Créez un fichier contenant le document AWS IoT de politique requis par l'alias de rôle.

      <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Copiez le code JSON suivant dans le fichier.
      + Remplacez l'ARN de la ressource par l'ARN de votre alias de rôle.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Créez une AWS IoT politique à partir du document de stratégie.
      + Remplacez *GreengrassCoreTokenExchangeRoleAliasPolicy* par le nom de la AWS IoT politique à créer.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Joignez la AWS IoT politique au certificat de l' AWS IoT objet.
      + Remplacez *GreengrassCoreTokenExchangeRoleAliasPolicy* par le nom de la AWS IoT politique d'alias de rôle.
      + Remplacez l'ARN cible par l'ARN du certificat associé à votre AWS IoT objet.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      La commande n'a aucune sortie si la demande aboutit.

### Télécharger les certificats sur l'appareil
<a name="download-thing-certificates"></a>

Auparavant, vous avez téléchargé le certificat de votre appareil sur votre ordinateur de développement. Dans cette section, vous allez copier le certificat sur votre appareil principal pour configurer celui-ci avec les certificats auxquels il se connecte AWS IoT. Vous téléchargez également le certificat de l'autorité de certification racine (CA) Amazon. Si vous utilisez un HSM, vous importez également le fichier de certificat dans le HSM dans cette section.
+ Si vous avez créé le certificat d'objet et la clé privée dans le AWS IoT service précédemment, suivez les étapes pour télécharger les certificats avec la clé privée et les fichiers de certificat.
+ Si vous avez créé le certificat d'objet à partir d'une clé privée dans un module de sécurité matériel (HSM) plus tôt, suivez les étapes pour télécharger les certificats avec la clé privée et le certificat dans un HSM.

#### Télécharger des certificats avec clé privée et fichiers de certificats
<a name="download-thing-certificates-without-hardware-security"></a>

**Pour télécharger des certificats sur l'appareil**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copiez le certificat d' AWS IoT objet de votre ordinateur de développement sur l'appareil. Si SSH et SCP sont activés sur l'ordinateur de développement et le périphérique, vous pouvez utiliser la `scp` commande de votre ordinateur de développement pour transférer le certificat. Remplacez *device-ip-address* par l'adresse IP de votre appareil.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Créez le dossier racine Greengrass sur l'appareil. Vous installerez ultérieurement le logiciel AWS IoT Greengrass Core dans ce dossier.
**Note**  
Pour Windows, la limitation de la longueur du chemin est de 260 caractères. Si vous utilisez Windows, utilisez un dossier racine tel que `C:\greengrass\v2` ou `D:\greengrass\v2` pour conserver les chemins des composants Greengrass en dessous de la limite de 260 caractères.

------
#### [ Linux or Unix ]
   + `/greengrass/v2`Remplacez-le par le dossier à utiliser.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Linux uniquement) Définissez les autorisations du parent du dossier racine de Greengrass.
   + Remplacez */greengrass* par le parent du dossier racine.

   ```
   sudo chmod 755 /greengrass
   ```

1. Copiez les AWS IoT certificats d'objets dans le dossier racine de Greengrass.

------
#### [ Linux or Unix ]
   + `/greengrass/v2`Remplacez-le par le dossier racine de Greengrass.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. Téléchargez le certificat de l'autorité de certification racine (CA) Amazon. AWS IoT les certificats sont associés par défaut au certificat de l'autorité de certification racine d'Amazon. Téléchargez le CA1 certificat et le [CA3certificat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Remplacez `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le dossier racine de Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

#### Téléchargez les certificats avec la clé privée et le certificat dans un HSM
<a name="download-thing-certificates-with-hardware-security"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.3 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 

**Pour télécharger des certificats sur l'appareil**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copiez le certificat d' AWS IoT objet de votre ordinateur de développement sur l'appareil. Si SSH et SCP sont activés sur l'ordinateur de développement et le périphérique, vous pouvez utiliser la `scp` commande de votre ordinateur de développement pour transférer le certificat. Remplacez *device-ip-address* par l'adresse IP de votre appareil.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Créez le dossier racine Greengrass sur l'appareil. Vous installerez ultérieurement le logiciel AWS IoT Greengrass Core dans ce dossier.
**Note**  
Pour Windows, la limitation de la longueur du chemin est de 260 caractères. Si vous utilisez Windows, utilisez un dossier racine tel que `C:\greengrass\v2` ou `D:\greengrass\v2` pour conserver les chemins des composants Greengrass en dessous de la limite de 260 caractères.

------
#### [ Linux or Unix ]
   + `/greengrass/v2`Remplacez-le par le dossier à utiliser.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Linux uniquement) Définissez les autorisations du parent du dossier racine de Greengrass.
   + Remplacez */greengrass* par le parent du dossier racine.

   ```
   sudo chmod 755 /greengrass
   ```

1. Importez le fichier de certificat d'`~/greengrass-v2-certs/device.pem.crt`objet dans le HSM. Consultez la documentation de votre HSM pour savoir comment y importer des certificats. Importez le certificat en utilisant le jeton, l'ID de slot, le code PIN utilisateur, le même libellé d'objet et le même ID d'objet (si votre HSM en utilise un) où vous avez généré la clé privée dans le HSM précédemment.
**Note**  
Si vous avez généré la clé privée plus tôt sans ID d'objet et que le certificat possède un ID d'objet, définissez l'ID d'objet de la clé privée sur la même valeur que le certificat. Consultez la documentation de votre HSM pour savoir comment définir l'ID d'objet pour l'objet clé privée.

1. (Facultatif) Supprimez le fichier de certificat d'objet afin qu'il n'existe que dans le HSM.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. Téléchargez le certificat de l'autorité de certification racine (CA) Amazon. AWS IoT les certificats sont associés par défaut au certificat de l'autorité de certification racine d'Amazon. Téléchargez à la fois le CA1 et le [CA3certificat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Remplacez `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le dossier racine de Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Configuration de l'environnement de l'appareil
<a name="set-up-device-environment"></a>

Suivez les étapes décrites dans cette section pour configurer un appareil Linux ou Windows à utiliser comme périphérique AWS IoT Greengrass principal.

#### Configuration d'un appareil Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Pour configurer un appareil Linux pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise. Les commandes suivantes vous montrent comment installer OpenJDK sur votre appareil.
   + Pour les distributions basées sur Debian ou Ubuntu :

     ```
     sudo apt install default-jdk
     ```
   + Pour les distributions basées sur Red Hat :

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Dans Amazon Linux 2 :

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Pour Amazon Linux 2023 :

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Lorsque l'installation est terminée, exécutez la commande suivante pour vérifier que Java s'exécute sur votre appareil Linux.

   ```
   java -version
   ```

   La commande affiche la version de Java exécutée sur le périphérique. Par exemple, sur une distribution basée sur Debian, le résultat peut ressembler à celui de l'exemple suivant.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Facultatif) Créez l'utilisateur système et le groupe par défaut qui exécutent les composants sur le périphérique. Vous pouvez également choisir de laisser le programme d'installation du logiciel AWS IoT Greengrass Core créer cet utilisateur et ce groupe lors de l'installation avec l'argument `--component-default-user` installer. Pour de plus amples informations, veuillez consulter [Arguments d'installation](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Vérifiez que l'utilisateur qui exécute le logiciel AWS IoT Greengrass Core (généralement`root`) est autorisé à exécuter `sudo` avec n'importe quel utilisateur et n'importe quel groupe.

   1. Exécutez la commande suivante pour ouvrir le `/etc/sudoers` fichier.

      ```
      sudo visudo
      ```

   1. Vérifiez que l'autorisation accordée à l'utilisateur ressemble à l'exemple suivant.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Facultatif) Pour [exécuter des fonctions Lambda conteneurisées](run-lambda-functions.md), vous devez activer [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, et vous devez activer et monter les cgroups de mémoire et de périphériques.** Si vous ne prévoyez pas d'exécuter des fonctions Lambda conteneurisées, vous pouvez ignorer cette étape.

   Pour activer ces options cgroups, démarrez le périphérique avec les paramètres du noyau Linux suivants.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Pour plus d'informations sur l'affichage et la définition des paramètres du noyau de votre appareil, consultez la documentation de votre système d'exploitation et de votre chargeur de démarrage. Suivez les instructions pour définir définitivement les paramètres du noyau.

1. Installez toutes les autres dépendances requises sur votre appareil, comme indiqué dans la liste des exigences figurant dans[Exigences relatives aux dispositifs](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configuration d'un appareil Windows
<a name="set-up-windows-device-environment"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.<a name="set-up-windows-device-environment-procedure"></a>

**Pour configurer un appareil Windows pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise.

1. Vérifiez si Java est disponible sur la variable système [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), et ajoutez-le dans le cas contraire. Le LocalSystem compte exécute le logiciel AWS IoT Greengrass Core. Vous devez donc ajouter Java à la variable système PATH au lieu de la variable utilisateur PATH pour votre utilisateur. Procédez comme suit :

   1. Appuyez sur la touche Windows pour ouvrir le menu de démarrage.

   1. Tapez **environment variables** pour rechercher les options du système dans le menu Démarrer.

   1. Dans les résultats de recherche du menu Démarrer, choisissez **Modifier les variables d'environnement du système** pour ouvrir la fenêtre **des propriétés du système**.

   1. Choisissez les **variables d'environnement...** pour ouvrir la fenêtre **des variables d'environnement**.

   1. Sous **Variables système**, sélectionnez **Chemin**, puis **Modifier**. Dans la fenêtre **Modifier la variable d'environnement**, vous pouvez afficher chaque chemin sur une ligne distincte.

   1. Vérifiez si le chemin d'accès au `bin` dossier d'installation de Java est présent. Le chemin peut ressembler à celui de l'exemple suivant.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Si le `bin` dossier de l'installation Java est absent de **Path**, choisissez **Nouveau** pour l'ajouter, puis **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Ouvrez l'invite de commande Windows (`cmd.exe`) en tant qu'administrateur.

1. <a name="set-up-windows-device-environment-create"></a>Créez l'utilisateur par défaut dans le LocalSystem compte sur l'appareil Windows. *password*Remplacez-le par un mot de passe sécurisé.

   ```
   net user /add ggc_user password
   ```
**Astuce**  <a name="windows-password-expiration-tip"></a>
En fonction de votre configuration Windows, le mot de passe de l'utilisateur peut être configuré pour expirer à une date ultérieure. Pour vous assurer que vos applications Greengrass continuent de fonctionner, suivez la date d'expiration du mot de passe et mettez-le à jour avant son expiration. Vous pouvez également définir le mot de passe de l'utilisateur pour qu'il n'expire jamais.  
Pour vérifier la date d'expiration d'un utilisateur et de son mot de passe, exécutez la commande suivante.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Pour définir le mot de passe d'un utilisateur de manière à ce qu'il n'expire jamais, exécutez la commande suivante.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Si vous utilisez Windows 10 ou une version ultérieure où la [`wmic`commande est obsolète](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), exécutez la commande suivante PowerShell .  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Téléchargez et installez l'[PsExecutilitaire](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) de Microsoft sur l'appareil. 

1. <a name="set-up-windows-device-credentials"></a>Utilisez l' PsExec utilitaire pour stocker le nom d'utilisateur et le mot de passe de l'utilisateur par défaut dans l'instance Credential Manager du LocalSystem compte. *password*Remplacez-le par le mot de passe utilisateur que vous avez défini précédemment.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   S'il **PsExec License Agreement**s'ouvre, choisissez **Accept**d'accepter la licence et exécutez la commande.
**Note**  
Sur les appareils Windows, le LocalSystem compte exécute le noyau Greengrass et vous devez utiliser l' PsExec utilitaire pour stocker les informations utilisateur par défaut dans le LocalSystem compte. L'application Credential Manager stocke ces informations dans le compte Windows de l'utilisateur actuellement connecté, plutôt que dans le LocalSystem compte.

### Téléchargez le logiciel AWS IoT Greengrass de base
<a name="download-greengrass-core-v2"></a>

Vous pouvez télécharger la dernière version du logiciel AWS IoT Greengrass Core à l'adresse suivante :
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Note**  
Vous pouvez télécharger une version spécifique du logiciel AWS IoT Greengrass Core à l'emplacement suivant. Remplacez *version* par la version à télécharger.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Pour télécharger le logiciel AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Sur votre appareil principal, téléchargez le logiciel AWS IoT Greengrass Core dans un fichier nommé`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Si vous téléchargez ce logiciel, vous acceptez le [contrat de licence du logiciel Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Facultatif) Pour vérifier la signature du logiciel Greengrass Nucleus
**Note**  
Cette fonctionnalité est disponible avec Greengrass nucleus version 2.9.5 et versions ultérieures.

   1. Utilisez la commande suivante pour vérifier la signature de votre artefact Greengrass nucleus :

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. L'`jarsigner`invocation produit une sortie qui indique les résultats de la vérification.

      1. Si le fichier zip Greengrass nucleus est signé, le résultat contient l'instruction suivante :

         ```
         jar verified.
         ```

      1. Si le fichier zip Greengrass nucleus n'est pas signé, le résultat contient l'instruction suivante :

         ```
         jar is unsigned.
         ```

   1. Si vous avez fourni l'`-certs`option Jarsigner en même temps que les `-verbose` options `-verify` et, le résultat inclut également des informations détaillées sur le certificat du signataire.

1. <a name="installation-unzip-ggc-software-step"></a>Décompressez le logiciel AWS IoT Greengrass Core dans un dossier de votre appareil. *GreengrassInstaller*Remplacez-le par le dossier que vous souhaitez utiliser.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Facultatif) Exécutez la commande suivante pour voir la version du logiciel AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Important**  <a name="installer-folder-2.4.0-warning"></a>
Si vous installez une version du noyau Greengrass antérieure à la version 2.4.0, ne supprimez pas ce dossier après avoir installé le logiciel Core. AWS IoT Greengrass Le logiciel AWS IoT Greengrass Core utilise les fichiers de ce dossier pour s'exécuter.  
Si vous avez téléchargé la dernière version du logiciel, vous devez installer la version 2.4.0 ou ultérieure, et vous pouvez supprimer ce dossier après avoir installé le logiciel AWS IoT Greengrass Core.

### Installation du logiciel AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-manual-fips"></a>

Exécutez le programme d'installation avec des arguments qui spécifient les actions suivantes :
+ Effectuez l'installation à partir d'un fichier de configuration partiel qui indique d'utiliser les AWS ressources et les certificats que vous avez créés précédemment. Le logiciel AWS IoT Greengrass Core utilise un fichier de configuration qui spécifie la configuration de chaque composant Greengrass de l'appareil. Le programme d'installation crée un fichier de configuration complet à partir du fichier de configuration partiel que vous fournissez.
+ <a name="install-argument-component-default-user"></a>Spécifiez d'utiliser l'utilisateur `ggc_user` du système pour exécuter les composants logiciels sur le périphérique principal. Sur les appareils Linux, cette commande indique également d'utiliser le groupe `ggc_group` système, et le programme d'installation crée l'utilisateur et le groupe système pour vous.
+ <a name="install-argument-system-service"></a>Configurez le logiciel AWS IoT Greengrass Core en tant que service système qui s'exécute au démarrage. Sur les appareils Linux, cela nécessite le [système d'initialisation Systemd](https://en.wikipedia.org/wiki/Systemd).
**Important**  <a name="windows-system-service-requirement-important-note"></a>
Sur les appareils Windows Core, vous devez configurer le logiciel AWS IoT Greengrass Core en tant que service système.

Pour plus d'informations sur les arguments que vous pouvez spécifier, consultez[Arguments d'installation](configure-installer.md).

**Note**  
<a name="jvm-tuning-note"></a>Si vous utilisez AWS IoT Greengrass un appareil dont la mémoire est limitée, vous pouvez contrôler la quantité de mémoire utilisée par le logiciel AWS IoT Greengrass Core. Pour contrôler l'allocation de mémoire, vous pouvez définir les options de taille de segment de mémoire JVM dans le paramètre de `jvmOptions` configuration de votre composant Nucleus. Pour de plus amples informations, veuillez consulter [Contrôlez l'allocation de mémoire grâce aux options JVM](configure-greengrass-core-v2.md#jvm-tuning).
+ Si vous avez créé le certificat d'objet et la clé privée dans le AWS IoT service précédemment, suivez les étapes pour installer le logiciel AWS IoT Greengrass Core avec les fichiers de clé privée et de certificat.
+ Si vous avez créé le certificat d'objet à partir d'une clé privée dans un module de sécurité matériel (HSM) plus tôt, suivez les étapes pour installer le logiciel AWS IoT Greengrass Core avec la clé privée et le certificat dans un HSM.

#### Installez le logiciel AWS IoT Greengrass Core avec les fichiers de clé privée et de certificat
<a name="FIPS-manual-installation-without-hardware-security"></a>

**Pour installer le logiciel AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Vérifiez la version du logiciel AWS IoT Greengrass Core.
   + *GreengrassInstaller*Remplacez-le par le chemin d'accès au dossier contenant le logiciel.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Utilisez un éditeur de texte pour créer un fichier de configuration nommé `config.yaml` à fournir au programme d'installation.

   <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copiez le contenu YAML suivant dans le fichier. Ce fichier de configuration partiel spécifie les paramètres du système et les paramètres du noyau de Greengrass.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Ensuite, procédez comme suit :
   + Remplacez chaque instance de `/greengrass/v2` par le dossier racine de Greengrass.
   + Remplacez *MyGreengrassCore* par le nom de l' AWS IoT objet.
   + *2.16.1*Remplacez-le par la version du logiciel AWS IoT Greengrass Core.
   + Remplacez *us-west-2* par l' Région AWS endroit où vous avez créé les ressources.
   + Remplacez *GreengrassCoreTokenExchangeRoleAlias* par le nom de l'alias du rôle d'échange de jetons.
   + Remplacez le *iotDataEndpoint* par votre point de terminaison de AWS IoT données.
   + Remplacez le point de terminaison *iotCredEndpoint* par vos AWS IoT informations d'identification.

1. Exécutez le programme d'installation et spécifiez `--init-config` de fournir le fichier de configuration.
   + Remplacez `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le dossier racine de Greengrass.
   + Remplacez chaque instance de *GreengrassInstaller* par le dossier dans lequel vous avez décompressé le programme d'installation.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Important**  <a name="windows-system-service-installer-argument-important-note"></a>
Sur les appareils Windows Core, vous `--setup-system-service true` devez spécifier de configurer le logiciel AWS IoT Greengrass Core en tant que service système.

   <a name="installer-setup-system-service-output-message"></a>Si vous le spécifiez`--setup-system-service true`, le programme d'installation affiche `Successfully set up Nucleus as a system service` s'il a configuré et exécuté le logiciel en tant que service système. Dans le cas contraire, le programme d'installation n'affiche aucun message s'il installe le logiciel avec succès.
**Note**  <a name="installer-deploy-dev-tools-without-provision"></a>
Vous ne pouvez pas utiliser l'`deploy-dev-tools`argument pour déployer des outils de développement locaux lorsque vous exécutez le programme d'installation sans l'`--provision true`argument. Pour plus d'informations sur le déploiement de la CLI Greengrass directement sur votre appareil, consultez. [Interface de ligne de commande Greengrass](gg-cli.md)

1. <a name="installer-verify-installation"></a>Vérifiez l'installation en consultant les fichiers du dossier racine.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Si l'installation a réussi, le dossier racine contient plusieurs dossiers, tels que `config``packages`, et`logs`.

#### Installez le logiciel AWS IoT Greengrass principal avec la clé privée et le certificat dans un HSM
<a name="FIPS-manual-installation-with-hardware-security"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.3 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux. 

**Pour installer le logiciel AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Vérifiez la version du logiciel AWS IoT Greengrass Core.
   + *GreengrassInstaller*Remplacez-le par le chemin d'accès au dossier contenant le logiciel.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Pour permettre au logiciel AWS IoT Greengrass Core d'utiliser la clé privée et le certificat du HSM, installez le [composant fournisseur PKCS \$111](pkcs11-provider-component.md) lors de l'installation du logiciel AWS IoT Greengrass Core. Le composant fournisseur PKCS \$111 est un plugin que vous pouvez configurer lors de l'installation. Vous pouvez télécharger la dernière version du composant fournisseur PKCS \$111 depuis l'emplacement suivant :
   + [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider-Latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)

   Téléchargez le plugin du fournisseur PKCS \$111 dans un fichier nommé`aws.greengrass.crypto.Pkcs11Provider.jar`. *GreengrassInstaller*Remplacez-le par le dossier que vous souhaitez utiliser.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar
   ```

   <a name="core-software-license"></a>Si vous téléchargez ce logiciel, vous acceptez le [contrat de licence du logiciel Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. Utilisez un éditeur de texte pour créer un fichier de configuration nommé `config.yaml` à fournir au programme d'installation.

   <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copiez le contenu YAML suivant dans le fichier. Ce fichier de configuration partiel spécifie les paramètres système, les paramètres du noyau Greengrass et les paramètres du fournisseur PKCS \$111.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Ensuite, procédez comme suit :
   + Remplacez chaque instance du PKCS \$111 par le libellé URIs de l'objet *iotdevicekey* dans lequel vous avez créé la clé privée et importé le certificat.
   + Remplacez chaque instance de `/greengrass/v2` par le dossier racine de Greengrass.
   + Remplacez *MyGreengrassCore* par le nom de l' AWS IoT objet.
   + *2.16.1*Remplacez-le par la version du logiciel AWS IoT Greengrass Core.
   + Remplacez *us-west-2* par l' Région AWS endroit où vous avez créé les ressources.
   + Remplacez *GreengrassCoreTokenExchangeRoleAlias* par le nom de l'alias du rôle d'échange de jetons.
   + Remplacez le `iotDataEndpoint` par votre point de terminaison de AWS IoT données.
   + Remplacez le point de terminaison `iotCredEndpoint` par vos AWS IoT informations d'identification.
   + Remplacez les paramètres de configuration du `aws.greengrass.crypto.Pkcs11Provider` composant par les valeurs de la configuration HSM sur le périphérique principal.

1. Exécutez le programme d'installation et spécifiez `--init-config` de fournir le fichier de configuration.
   + `/greengrass/v2`Remplacez-le par le dossier racine de Greengrass.
   + Remplacez chaque instance de *GreengrassInstaller* par le dossier dans lequel vous avez décompressé le programme d'installation.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```
**Important**  <a name="windows-system-service-installer-argument-important-note"></a>
Sur les appareils Windows Core, vous `--setup-system-service true` devez spécifier de configurer le logiciel AWS IoT Greengrass Core en tant que service système.

   <a name="installer-setup-system-service-output-message"></a>Si vous le spécifiez`--setup-system-service true`, le programme d'installation affiche `Successfully set up Nucleus as a system service` s'il a configuré et exécuté le logiciel en tant que service système. Dans le cas contraire, le programme d'installation n'affiche aucun message s'il installe le logiciel avec succès.
**Note**  <a name="installer-deploy-dev-tools-without-provision"></a>
Vous ne pouvez pas utiliser l'`deploy-dev-tools`argument pour déployer des outils de développement locaux lorsque vous exécutez le programme d'installation sans l'`--provision true`argument. Pour plus d'informations sur le déploiement de la CLI Greengrass directement sur votre appareil, consultez. [Interface de ligne de commande Greengrass](gg-cli.md)

1. <a name="installer-verify-installation"></a>Vérifiez l'installation en consultant les fichiers du dossier racine.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Si l'installation a réussi, le dossier racine contient plusieurs dossiers, tels que `config``packages`, et`logs`.

<a name="install-greengrass-core-run-software"></a>Si vous avez installé le logiciel AWS IoT Greengrass Core en tant que service système, le programme d'installation exécute le logiciel pour vous. Dans le cas contraire, vous devez exécuter le logiciel manuellement. Pour de plus amples informations, veuillez consulter [Exécutez le logiciel AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Pour plus d'informations sur la configuration et l'utilisation du logiciel AWS IoT Greengrass, consultez les rubriques suivantes :<a name="install-greengrass-core-next-steps-links"></a>
+ [Configuration du logiciel AWS IoT Greengrass de base](configure-greengrass-core-v2.md)
+ [Développer des AWS IoT Greengrass composants](develop-greengrass-components.md)
+ [Déployer AWS IoT Greengrass des composants sur des appareils](manage-deployments.md)
+ [Interface de ligne de commande Greengrass](gg-cli.md)

## Installation de points de terminaison FIPS avec provisionnement de flotte
<a name="FIPS-fleet-provisioning"></a>

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.

Installez des points de terminaison FIPS sur votre logiciel AWS IoT Greengrass principal en provisionnant un AWS IoT parc pour vos appareils principaux.

**Note**  
Le plug-in de provisionnement de flotte ne prend actuellement pas en charge le stockage de clés privées et de fichiers de certificats dans un module de sécurité matérielle (HSM). Pour utiliser un HSM, [installez le logiciel AWS IoT Greengrass Core avec un provisionnement manuel](#FIPS-fleet-provisioning).

Pour installer le logiciel AWS IoT Greengrass Core avec provisionnement de AWS IoT flotte, vous devez configurer les ressources utilisées pour approvisionner Compte AWS les AWS IoT appareils principaux de Greengrass. Ces ressources incluent un modèle de provisionnement, des certificats de réclamation et un rôle [IAM d'échange de jetons](device-service-role.md). Après avoir créé ces ressources, vous pouvez les réutiliser pour approvisionner plusieurs appareils principaux dans un parc. Pour de plus amples informations, veuillez consulter [Configurer le provisionnement du AWS IoT parc pour les appareils principaux de Greengrass](fleet-provisioning-setup.md).

**Important**  <a name="install-greengrass-core-requirements-note"></a>
Avant de télécharger le logiciel AWS IoT Greengrass Core, vérifiez que votre appareil principal répond aux [exigences](greengrass-nucleus-component.md#greengrass-v2-requirements) pour installer et exécuter le logiciel AWS IoT Greengrass Core v2.0.

**Topics**
+ [Conditions préalables](#fleet-provisioning-prerequisites)
+ [Récupérer des points de AWS IoT terminaison](#retrieve-iot-endpoints)
+ [Télécharger les certificats sur l'appareil](#download-claim-certificates)
+ [Configuration de l'environnement de l'appareil](#set-up-device-environment-fleet-provisioning)
+ [Téléchargez le logiciel AWS IoT Greengrass de base](#download-greengrass-core-v2-fleet)
+ [Téléchargez le plugin de provisionnement de AWS IoT flotte](#download-fleet-provisioning-plugin)
+ [Installation du logiciel AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-fleet-provisioning)

### Conditions préalables
<a name="fleet-provisioning-prerequisites"></a>

Pour installer le logiciel AWS IoT Greengrass Core avec le provisionnement du AWS IoT parc, vous devez d'abord [configurer le provisionnement du AWS IoT parc pour les appareils principaux de Greengrass](fleet-provisioning-setup.md). Après avoir effectué ces étapes une fois, vous pouvez utiliser le provisionnement du parc pour installer le logiciel AWS IoT Greengrass Core sur n'importe quel nombre d'appareils.

### Récupérer des points de AWS IoT terminaison
<a name="retrieve-iot-endpoints"></a>

Procurez-vous les points de terminaison FIPS qui vous Compte AWS conviennent et enregistrez-les pour les utiliser ultérieurement. Votre appareil utilise ces points de terminaison pour se connecter à AWS IoT. Procédez comme suit :

1. Obtenez le point de terminaison de données FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de données FIPS pour vous Compte AWS devrait ressembler à ceci : *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenez le point de terminaison des informations d'identification FIPS de votre région dans les points de terminaison du [plan de données AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). Le point de terminaison de vos informations d'identification FIPS Compte AWS devrait ressembler à ceci : *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Télécharger les certificats sur l'appareil
<a name="download-claim-certificates"></a>

L'appareil utilise un certificat de réclamation et une clé privée pour authentifier sa demande de fourniture de AWS ressources et acquérir un certificat de périphérique X.509. Vous pouvez intégrer le certificat de réclamation et la clé privée dans l'appareil pendant la fabrication, ou copier le certificat et la clé sur l'appareil lors de l'installation. Dans cette section, vous devez copier le certificat de réclamation et la clé privée sur l'appareil. Vous téléchargez également le certificat Amazon Root Certificate Authority (CA) sur l'appareil.

**Important**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
L'approvisionnement des clés privées des réclamations doit être sécurisé à tout moment, y compris sur les appareils principaux de Greengrass. Nous vous recommandons d'utiliser CloudWatch les statistiques et les journaux Amazon pour détecter les signes d'utilisation abusive, tels que l'utilisation non autorisée du certificat de réclamation pour approvisionner des appareils. Si vous détectez une utilisation abusive, désactivez le certificat de demande d'approvisionnement afin qu'il ne puisse pas être utilisé pour le provisionnement des appareils. Pour plus d'informations, consultez la section [Surveillance AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) dans le *guide du AWS IoT Core développeur*.  
Pour vous aider à mieux gérer le nombre d'appareils et les appareils qui s'enregistrent dans le vôtre Compte AWS, vous pouvez spécifier un crochet de préapprovisionnement lorsque vous créez un modèle de provisionnement de flotte. Un hook de pré-provisionnement est une AWS Lambda fonction qui valide les paramètres du modèle fournis par les appareils lors de l'enregistrement. Par exemple, vous pouvez créer un hook de pré-provisionnement qui compare l'identifiant d'un appareil à une base de données afin de vérifier que l'appareil est autorisé à effectuer le provisionnement. Pour plus d'informations, consultez la section [Pre-provisioning hooks](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) dans le Guide du *AWS IoT Core développeur*.

**Pour télécharger les certificats de réclamation sur l'appareil**

1. Copiez le certificat de réclamation et la clé privée sur l'appareil. Si SSH et SCP sont activés sur l'ordinateur de développement et le périphérique, vous pouvez utiliser la `scp` commande sur votre ordinateur de développement pour transférer le certificat de réclamation et la clé privée. L'exemple de commande suivant transfère ces fichiers vers le périphérique dans un dossier nommé `claim-certs` sur votre ordinateur de développement. Remplacez *device-ip-address* par l'adresse IP de votre appareil.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Créez le dossier racine Greengrass sur l'appareil. Vous installerez ultérieurement le logiciel AWS IoT Greengrass Core dans ce dossier.
**Note**  
Pour Windows, la limitation de la longueur du chemin est de 260 caractères. Si vous utilisez Windows, utilisez un dossier racine tel que `C:\greengrass\v2` ou `D:\greengrass\v2` pour conserver les chemins des composants Greengrass en dessous de la limite de 260 caractères.

------
#### [ Linux or Unix ]
   + `/greengrass/v2`Remplacez-le par le dossier à utiliser.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + *C:\$1greengrass\$1v2*Remplacez-le par le dossier à utiliser.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Linux uniquement) Définissez les autorisations du parent du dossier racine de Greengrass.
   + Remplacez */greengrass* par le parent du dossier racine.

   ```
   sudo chmod 755 /greengrass
   ```

1. Déplacez les certificats de réclamation vers le dossier racine de Greengrass.
   + Remplacez `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le dossier racine de Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. Téléchargez à la fois le CA1 certificat et le [CA3certificat](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]

   ```
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Configuration de l'environnement de l'appareil
<a name="set-up-device-environment-fleet-provisioning"></a>

Suivez les étapes décrites dans cette section pour configurer un appareil Linux ou Windows à utiliser comme périphérique AWS IoT Greengrass principal.

#### Configuration d'un appareil Linux
<a name="set-up-linux-device-environment-fleet-provisioning"></a><a name="set-up-linux-device-environment-procedure"></a>

**Pour configurer un appareil Linux pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise. Les commandes suivantes vous montrent comment installer OpenJDK sur votre appareil.
   + Pour les distributions basées sur Debian ou Ubuntu :

     ```
     sudo apt install default-jdk
     ```
   + Pour les distributions basées sur Red Hat :

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Dans Amazon Linux 2 :

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Pour Amazon Linux 2023 :

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Lorsque l'installation est terminée, exécutez la commande suivante pour vérifier que Java s'exécute sur votre appareil Linux.

   ```
   java -version
   ```

   La commande affiche la version de Java exécutée sur le périphérique. Par exemple, sur une distribution basée sur Debian, le résultat peut ressembler à celui de l'exemple suivant.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Facultatif) Créez l'utilisateur système et le groupe par défaut qui exécutent les composants sur le périphérique. Vous pouvez également choisir de laisser le programme d'installation du logiciel AWS IoT Greengrass Core créer cet utilisateur et ce groupe lors de l'installation avec l'argument `--component-default-user` installer. Pour de plus amples informations, veuillez consulter [Arguments d'installation](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Vérifiez que l'utilisateur qui exécute le logiciel AWS IoT Greengrass Core (généralement`root`) est autorisé à exécuter `sudo` avec n'importe quel utilisateur et n'importe quel groupe.

   1. Exécutez la commande suivante pour ouvrir le `/etc/sudoers` fichier.

      ```
      sudo visudo
      ```

   1. Vérifiez que l'autorisation accordée à l'utilisateur ressemble à l'exemple suivant.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Facultatif) Pour [exécuter des fonctions Lambda conteneurisées](run-lambda-functions.md), vous devez activer [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, et vous devez activer et monter les cgroups de mémoire et de périphériques.** Si vous ne prévoyez pas d'exécuter des fonctions Lambda conteneurisées, vous pouvez ignorer cette étape.

   Pour activer ces options cgroups, démarrez le périphérique avec les paramètres du noyau Linux suivants.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Pour plus d'informations sur l'affichage et la définition des paramètres du noyau de votre appareil, consultez la documentation de votre système d'exploitation et de votre chargeur de démarrage. Suivez les instructions pour définir définitivement les paramètres du noyau.

1. Installez toutes les autres dépendances requises sur votre appareil, comme indiqué dans la liste des exigences figurant dans[Exigences relatives aux dispositifs](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configuration d'un appareil Windows
<a name="set-up-windows-device-environment-fleet-provisioning"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.<a name="set-up-windows-device-environment-procedure"></a>

**Pour configurer un appareil Windows pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise.

1. Vérifiez si Java est disponible sur la variable système [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), et ajoutez-le dans le cas contraire. Le LocalSystem compte exécute le logiciel AWS IoT Greengrass Core. Vous devez donc ajouter Java à la variable système PATH au lieu de la variable utilisateur PATH pour votre utilisateur. Procédez comme suit :

   1. Appuyez sur la touche Windows pour ouvrir le menu de démarrage.

   1. Tapez **environment variables** pour rechercher les options du système dans le menu Démarrer.

   1. Dans les résultats de recherche du menu Démarrer, choisissez **Modifier les variables d'environnement du système** pour ouvrir la fenêtre **des propriétés du système**.

   1. Choisissez les **variables d'environnement...** pour ouvrir la fenêtre **des variables d'environnement**.

   1. Sous **Variables système**, sélectionnez **Chemin**, puis **Modifier**. Dans la fenêtre **Modifier la variable d'environnement**, vous pouvez afficher chaque chemin sur une ligne distincte.

   1. Vérifiez si le chemin d'accès au `bin` dossier d'installation de Java est présent. Le chemin peut ressembler à celui de l'exemple suivant.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Si le `bin` dossier de l'installation Java est absent de **Path**, choisissez **Nouveau** pour l'ajouter, puis **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Ouvrez l'invite de commande Windows (`cmd.exe`) en tant qu'administrateur.

1. <a name="set-up-windows-device-environment-create"></a>Créez l'utilisateur par défaut dans le LocalSystem compte sur l'appareil Windows. *password*Remplacez-le par un mot de passe sécurisé.

   ```
   net user /add ggc_user password
   ```
**Astuce**  <a name="windows-password-expiration-tip"></a>
En fonction de votre configuration Windows, le mot de passe de l'utilisateur peut être configuré pour expirer à une date ultérieure. Pour vous assurer que vos applications Greengrass continuent de fonctionner, suivez la date d'expiration du mot de passe et mettez-le à jour avant son expiration. Vous pouvez également définir le mot de passe de l'utilisateur pour qu'il n'expire jamais.  
Pour vérifier la date d'expiration d'un utilisateur et de son mot de passe, exécutez la commande suivante.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Pour définir le mot de passe d'un utilisateur de manière à ce qu'il n'expire jamais, exécutez la commande suivante.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Si vous utilisez Windows 10 ou une version ultérieure où la [`wmic`commande est obsolète](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), exécutez la commande suivante PowerShell .  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Téléchargez et installez l'[PsExecutilitaire](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) de Microsoft sur l'appareil. 

1. <a name="set-up-windows-device-credentials"></a>Utilisez l' PsExec utilitaire pour stocker le nom d'utilisateur et le mot de passe de l'utilisateur par défaut dans l'instance Credential Manager du LocalSystem compte. *password*Remplacez-le par le mot de passe utilisateur que vous avez défini précédemment.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   S'il **PsExec License Agreement**s'ouvre, choisissez **Accept**d'accepter la licence et exécutez la commande.
**Note**  
Sur les appareils Windows, le LocalSystem compte exécute le noyau Greengrass et vous devez utiliser l' PsExec utilitaire pour stocker les informations utilisateur par défaut dans le LocalSystem compte. L'application Credential Manager stocke ces informations dans le compte Windows de l'utilisateur actuellement connecté, plutôt que dans le LocalSystem compte.

### Téléchargez le logiciel AWS IoT Greengrass de base
<a name="download-greengrass-core-v2-fleet"></a>

Vous pouvez télécharger la dernière version du logiciel AWS IoT Greengrass Core à l'adresse suivante :
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Note**  
Vous pouvez télécharger une version spécifique du logiciel AWS IoT Greengrass Core à l'emplacement suivant. Remplacez *version* par la version à télécharger.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Pour télécharger le logiciel AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Sur votre appareil principal, téléchargez le logiciel AWS IoT Greengrass Core dans un fichier nommé`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Si vous téléchargez ce logiciel, vous acceptez le [contrat de licence du logiciel Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Facultatif) Pour vérifier la signature du logiciel Greengrass Nucleus
**Note**  
Cette fonctionnalité est disponible avec Greengrass nucleus version 2.9.5 et versions ultérieures.

   1. Utilisez la commande suivante pour vérifier la signature de votre artefact Greengrass nucleus :

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. L'`jarsigner`invocation produit une sortie qui indique les résultats de la vérification.

      1. Si le fichier zip Greengrass nucleus est signé, le résultat contient l'instruction suivante :

         ```
         jar verified.
         ```

      1. Si le fichier zip Greengrass nucleus n'est pas signé, le résultat contient l'instruction suivante :

         ```
         jar is unsigned.
         ```

   1. Si vous avez fourni l'`-certs`option Jarsigner en même temps que les `-verbose` options `-verify` et, le résultat inclut également des informations détaillées sur le certificat du signataire.

1. <a name="installation-unzip-ggc-software-step"></a>Décompressez le logiciel AWS IoT Greengrass Core dans un dossier de votre appareil. *GreengrassInstaller*Remplacez-le par le dossier que vous souhaitez utiliser.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Facultatif) Exécutez la commande suivante pour voir la version du logiciel AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Important**  <a name="installer-folder-2.4.0-warning"></a>
Si vous installez une version du noyau Greengrass antérieure à la version 2.4.0, ne supprimez pas ce dossier après avoir installé le logiciel Core. AWS IoT Greengrass Le logiciel AWS IoT Greengrass Core utilise les fichiers de ce dossier pour s'exécuter.  
Si vous avez téléchargé la dernière version du logiciel, vous devez installer la version 2.4.0 ou ultérieure, et vous pouvez supprimer ce dossier après avoir installé le logiciel AWS IoT Greengrass Core.

### Téléchargez le plugin de provisionnement de AWS IoT flotte
<a name="download-fleet-provisioning-plugin"></a>

Vous pouvez télécharger la dernière version du plugin de provisionnement de AWS IoT flotte à l'adresse suivante :
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**Note**  
Vous pouvez télécharger une version spécifique du plugin de provisionnement de AWS IoT flotte à l'emplacement suivant. Remplacez *version* par la version à télécharger. Pour plus d'informations sur chaque version du plugin de provisionnement de flotte, consultez[AWS IoT journal des modifications du plugin de provisionnement de flotte](fleet-provisioning-changelog.md).  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

Le plugin de provisionnement de flotte est open source. Pour consulter son code source, consultez le [plugin de provisionnement de AWS IoT flotte](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) sur GitHub.

**Pour télécharger le plugin de provisionnement de AWS IoT flotte**
+ Sur votre appareil, téléchargez le plug-in de provisionnement de AWS IoT flotte dans un fichier nommé`aws.greengrass.FleetProvisioningByClaim.jar`. *GreengrassInstaller*Remplacez-le par le dossier que vous souhaitez utiliser.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Si vous téléchargez ce logiciel, vous acceptez le [contrat de licence du logiciel Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

### Installation du logiciel AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-fleet-provisioning"></a>

Exécutez le programme d'installation avec des arguments qui spécifient les actions suivantes :
+ Effectuez l'installation à partir d'un fichier de configuration partiel qui indique d'utiliser le plug-in de provisionnement de flotte pour provisionner les AWS ressources. Le logiciel AWS IoT Greengrass Core utilise un fichier de configuration qui spécifie la configuration de chaque composant Greengrass de l'appareil. Le programme d'installation crée un fichier de configuration complet à partir du fichier de configuration partiel que vous fournissez et AWS des ressources créées par le plug-in de provisionnement de flotte.
+ <a name="install-argument-component-default-user"></a>Spécifiez d'utiliser l'utilisateur `ggc_user` du système pour exécuter les composants logiciels sur le périphérique principal. Sur les appareils Linux, cette commande indique également d'utiliser le groupe `ggc_group` système, et le programme d'installation crée l'utilisateur et le groupe système pour vous.
+ <a name="install-argument-system-service"></a>Configurez le logiciel AWS IoT Greengrass Core en tant que service système qui s'exécute au démarrage. Sur les appareils Linux, cela nécessite le [système d'initialisation Systemd](https://en.wikipedia.org/wiki/Systemd).
**Important**  <a name="windows-system-service-requirement-important-note"></a>
Sur les appareils Windows Core, vous devez configurer le logiciel AWS IoT Greengrass Core en tant que service système.

Pour plus d'informations sur les arguments que vous pouvez spécifier, consultez[Arguments d'installation](configure-installer.md).

**Note**  
<a name="jvm-tuning-note"></a>Si vous utilisez AWS IoT Greengrass un appareil dont la mémoire est limitée, vous pouvez contrôler la quantité de mémoire utilisée par le logiciel AWS IoT Greengrass Core. Pour contrôler l'allocation de mémoire, vous pouvez définir les options de taille de segment de mémoire JVM dans le paramètre de `jvmOptions` configuration de votre composant Nucleus. Pour de plus amples informations, veuillez consulter [Contrôlez l'allocation de mémoire grâce aux options JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Pour installer le logiciel AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Vérifiez la version du logiciel AWS IoT Greengrass Core.
   + *GreengrassInstaller*Remplacez-le par le chemin d'accès au dossier contenant le logiciel.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Utilisez un éditeur de texte pour créer un fichier de configuration nommé `config.yaml` à fournir au programme d'installation.

   <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copiez le contenu YAML suivant dans le fichier. Ce fichier de configuration partiel spécifie les paramètres du plugin de provisionnement de flotte. Pour plus d'informations sur les options que vous pouvez spécifier, consultez[Configuration du plugin de provisionnement de AWS IoT flotte](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         fipsMode: "true"
         greengrassDataPlaneEndpoint: "iotData"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Ensuite, procédez comme suit :
   + *2.16.1*Remplacez-le par la version du logiciel AWS IoT Greengrass Core.
   + Remplacez chaque instance de `/greengrass/v2` ou *C:\$1greengrass\$1v2* par le dossier racine de Greengrass.
**Note**  
Sur les appareils Windows, vous devez spécifier les séparateurs de chemin sous forme de barres obliques inverses (`\\`) doubles, tels que. `C:\\greengrass\\v2`
   + *us-west-2*Remplacez-le par la AWS région dans laquelle vous avez créé le modèle de provisionnement et les autres ressources.
   + Remplacez le `iotDataEndpoint` par votre point de terminaison de AWS IoT données.
   + Remplacez le point de terminaison `iotCredentialEndpoint` par vos AWS IoT informations d'identification.
   + Remplacez *GreengrassCoreTokenExchangeRoleAlias* par le nom de l'alias du rôle d'échange de jetons.
   + Remplacez *GreengrassFleetProvisioningTemplate* par le nom du modèle de provisionnement de flotte.
   + Remplacez le `claimCertificatePath` par le chemin d'accès au certificat de réclamation sur l'appareil.
   + Remplacez le `claimCertificatePrivateKeyPath` par le chemin d'accès à la clé privée du certificat de réclamation sur l'appareil.
   + Remplacez les paramètres du modèle (`templateParameters`) par les valeurs à utiliser pour approvisionner le périphérique. Cet exemple fait référence à l'[exemple de modèle](fleet-provisioning-setup.md#example-fleet-provisioning-template) qui définit `ThingName` et définit `ThingGroupName` les paramètres.

1. Exécutez le programme d'installation. Spécifiez `--trusted-plugin` pour fournir le plug-in de provisionnement de flotte et spécifiez `--init-config` pour fournir le fichier de configuration.
   + `/greengrass/v2`Remplacez-le par le dossier racine de Greengrass.
   + Remplacez chaque instance de *GreengrassInstaller* par le dossier dans lequel vous avez décompressé le programme d'installation.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Important**  <a name="windows-system-service-installer-argument-important-note"></a>
Sur les appareils Windows Core, vous `--setup-system-service true` devez spécifier de configurer le logiciel AWS IoT Greengrass Core en tant que service système.

   <a name="installer-setup-system-service-output-message"></a>Si vous le spécifiez`--setup-system-service true`, le programme d'installation affiche `Successfully set up Nucleus as a system service` s'il a configuré et exécuté le logiciel en tant que service système. Dans le cas contraire, le programme d'installation n'affiche aucun message s'il installe le logiciel avec succès.
**Note**  <a name="installer-deploy-dev-tools-without-provision"></a>
Vous ne pouvez pas utiliser l'`deploy-dev-tools`argument pour déployer des outils de développement locaux lorsque vous exécutez le programme d'installation sans l'`--provision true`argument. Pour plus d'informations sur le déploiement de la CLI Greengrass directement sur votre appareil, consultez. [Interface de ligne de commande Greengrass](gg-cli.md)

1. <a name="installer-verify-installation"></a>Vérifiez l'installation en consultant les fichiers du dossier racine.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Si l'installation a réussi, le dossier racine contient plusieurs dossiers, tels que `config``packages`, et`logs`.

<a name="install-greengrass-core-run-software"></a>Si vous avez installé le logiciel AWS IoT Greengrass Core en tant que service système, le programme d'installation exécute le logiciel pour vous. Dans le cas contraire, vous devez exécuter le logiciel manuellement. Pour de plus amples informations, veuillez consulter [Exécutez le logiciel AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Pour plus d'informations sur la configuration et l'utilisation du logiciel AWS IoT Greengrass, consultez les rubriques suivantes :<a name="install-greengrass-core-next-steps-links"></a>
+ [Configuration du logiciel AWS IoT Greengrass de base](configure-greengrass-core-v2.md)
+ [Développer des AWS IoT Greengrass composants](develop-greengrass-components.md)
+ [Déployer AWS IoT Greengrass des composants sur des appareils](manage-deployments.md)
+ [Interface de ligne de commande Greengrass](gg-cli.md)

## Installation de points de terminaison FIPS avec provisionnement automatique des ressources
<a name="FIPS-auto-installation"></a>

Le logiciel AWS IoT Greengrass Core inclut un programme d'installation qui configure votre appareil en tant qu'appareil principal Greengrass. Pour configurer rapidement un appareil, le programme d'installation peut configurer l' AWS IoT AWS IoT objet, le groupe d'objets, le rôle IAM et l'alias de AWS IoT rôle dont le périphérique principal a besoin pour fonctionner. Le programme d'installation peut également déployer les outils de développement locaux sur le périphérique principal, afin que vous puissiez utiliser l'appareil pour développer et tester des composants logiciels personnalisés. Le programme d'installation a besoin AWS d'informations d'identification pour provisionner ces ressources et créer le déploiement.

Si vous ne pouvez pas fournir AWS d'informations d'identification à l'appareil, vous pouvez fournir les AWS ressources dont le périphérique principal a besoin pour fonctionner. Vous pouvez également déployer les outils de développement sur un appareil principal pour l'utiliser comme périphérique de développement. Cela vous permet de fournir moins d'autorisations à l'appareil lorsque vous exécutez le programme d'installation. Pour de plus amples informations, veuillez consulter [Installation AWS IoT Greengrass du logiciel Core avec provisionnement manuel des ressources](manual-installation.md).

**Important**  <a name="install-greengrass-core-requirements-note"></a>
Avant de télécharger le logiciel AWS IoT Greengrass Core, vérifiez que votre appareil principal répond aux [exigences](greengrass-nucleus-component.md#greengrass-v2-requirements) pour installer et exécuter le logiciel AWS IoT Greengrass Core v2.0.

**Topics**
+ [Configuration de l'environnement de l'appareil](#set-up-device-environment)
+ [Fournir des AWS informations d'identification à l'appareil](#provide-installer-aws-credentials-auto)
+ [Téléchargez le logiciel AWS IoT Greengrass de base](#download-greengrass-core-v2-auto)
+ [Installation du logiciel AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-auto)

### Configuration de l'environnement de l'appareil
<a name="set-up-device-environment"></a>

Suivez les étapes décrites dans cette section pour configurer un appareil Linux ou Windows à utiliser comme périphérique AWS IoT Greengrass principal.

#### Configuration d'un appareil Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Pour configurer un appareil Linux pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise. Les commandes suivantes vous montrent comment installer OpenJDK sur votre appareil.
   + Pour les distributions basées sur Debian ou Ubuntu :

     ```
     sudo apt install default-jdk
     ```
   + Pour les distributions basées sur Red Hat :

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Dans Amazon Linux 2 :

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Pour Amazon Linux 2023 :

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Lorsque l'installation est terminée, exécutez la commande suivante pour vérifier que Java s'exécute sur votre appareil Linux.

   ```
   java -version
   ```

   La commande affiche la version de Java exécutée sur le périphérique. Par exemple, sur une distribution basée sur Debian, le résultat peut ressembler à celui de l'exemple suivant.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Facultatif) Créez l'utilisateur système et le groupe par défaut qui exécutent les composants sur le périphérique. Vous pouvez également choisir de laisser le programme d'installation du logiciel AWS IoT Greengrass Core créer cet utilisateur et ce groupe lors de l'installation avec l'argument `--component-default-user` installer. Pour de plus amples informations, veuillez consulter [Arguments d'installation](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Vérifiez que l'utilisateur qui exécute le logiciel AWS IoT Greengrass Core (généralement`root`) est autorisé à exécuter `sudo` avec n'importe quel utilisateur et n'importe quel groupe.

   1. Exécutez la commande suivante pour ouvrir le `/etc/sudoers` fichier.

      ```
      sudo visudo
      ```

   1. Vérifiez que l'autorisation accordée à l'utilisateur ressemble à l'exemple suivant.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Facultatif) Pour [exécuter des fonctions Lambda conteneurisées](run-lambda-functions.md), vous devez activer [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, et vous devez activer et monter les cgroups de mémoire et de périphériques.** Si vous ne prévoyez pas d'exécuter des fonctions Lambda conteneurisées, vous pouvez ignorer cette étape.

   Pour activer ces options cgroups, démarrez le périphérique avec les paramètres du noyau Linux suivants.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Pour plus d'informations sur l'affichage et la définition des paramètres du noyau de votre appareil, consultez la documentation de votre système d'exploitation et de votre chargeur de démarrage. Suivez les instructions pour définir définitivement les paramètres du noyau.

1. Installez toutes les autres dépendances requises sur votre appareil, comme indiqué dans la liste des exigences figurant dans[Exigences relatives aux dispositifs](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configuration d'un appareil Windows
<a name="set-up-windows-device-environment"></a>

**Note**  
Cette fonctionnalité est disponible pour les versions 2.5.0 et ultérieures du composant [Greengrass](greengrass-nucleus-component.md) nucleus.<a name="set-up-windows-device-environment-procedure"></a>

**Pour configurer un appareil Windows pour AWS IoT Greengrass V2**

1. Installez le moteur d'exécution Java, dont le logiciel AWS IoT Greengrass Core a besoin pour fonctionner. Nous vous recommandons d'utiliser les versions de support à long terme d'[Amazon Corretto](https://aws.amazon.com/corretto/) [ou](https://openjdk.java.net/) d'OpenJDK. La version 8 ou supérieure est requise.

1. Vérifiez si Java est disponible sur la variable système [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), et ajoutez-le dans le cas contraire. Le LocalSystem compte exécute le logiciel AWS IoT Greengrass Core. Vous devez donc ajouter Java à la variable système PATH au lieu de la variable utilisateur PATH pour votre utilisateur. Procédez comme suit :

   1. Appuyez sur la touche Windows pour ouvrir le menu de démarrage.

   1. Tapez **environment variables** pour rechercher les options du système dans le menu Démarrer.

   1. Dans les résultats de recherche du menu Démarrer, choisissez **Modifier les variables d'environnement du système** pour ouvrir la fenêtre **des propriétés du système**.

   1. Choisissez les **variables d'environnement...** pour ouvrir la fenêtre **des variables d'environnement**.

   1. Sous **Variables système**, sélectionnez **Chemin**, puis **Modifier**. Dans la fenêtre **Modifier la variable d'environnement**, vous pouvez afficher chaque chemin sur une ligne distincte.

   1. Vérifiez si le chemin d'accès au `bin` dossier d'installation de Java est présent. Le chemin peut ressembler à celui de l'exemple suivant.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Si le `bin` dossier de l'installation Java est absent de **Path**, choisissez **Nouveau** pour l'ajouter, puis **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Ouvrez l'invite de commande Windows (`cmd.exe`) en tant qu'administrateur.

1. <a name="set-up-windows-device-environment-create"></a>Créez l'utilisateur par défaut dans le LocalSystem compte sur l'appareil Windows. *password*Remplacez-le par un mot de passe sécurisé.

   ```
   net user /add ggc_user password
   ```
**Astuce**  <a name="windows-password-expiration-tip"></a>
En fonction de votre configuration Windows, le mot de passe de l'utilisateur peut être configuré pour expirer à une date ultérieure. Pour vous assurer que vos applications Greengrass continuent de fonctionner, suivez la date d'expiration du mot de passe et mettez-le à jour avant son expiration. Vous pouvez également définir le mot de passe de l'utilisateur pour qu'il n'expire jamais.  
Pour vérifier la date d'expiration d'un utilisateur et de son mot de passe, exécutez la commande suivante.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Pour définir le mot de passe d'un utilisateur de manière à ce qu'il n'expire jamais, exécutez la commande suivante.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Si vous utilisez Windows 10 ou une version ultérieure où la [`wmic`commande est obsolète](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), exécutez la commande suivante PowerShell .  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Téléchargez et installez l'[PsExecutilitaire](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) de Microsoft sur l'appareil. 

1. <a name="set-up-windows-device-credentials"></a>Utilisez l' PsExec utilitaire pour stocker le nom d'utilisateur et le mot de passe de l'utilisateur par défaut dans l'instance Credential Manager du LocalSystem compte. *password*Remplacez-le par le mot de passe utilisateur que vous avez défini précédemment.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   S'il **PsExec License Agreement**s'ouvre, choisissez **Accept**d'accepter la licence et exécutez la commande.
**Note**  
Sur les appareils Windows, le LocalSystem compte exécute le noyau Greengrass et vous devez utiliser l' PsExec utilitaire pour stocker les informations utilisateur par défaut dans le LocalSystem compte. L'application Credential Manager stocke ces informations dans le compte Windows de l'utilisateur actuellement connecté, plutôt que dans le LocalSystem compte.

### Fournir des AWS informations d'identification à l'appareil
<a name="provide-installer-aws-credentials-auto"></a>

Fournissez vos AWS informations d'identification à votre appareil afin que le programme d'installation puisse fournir les AWS ressources nécessaires. Pour plus d’informations sur les autorisations requises, consultez [Politique IAM minimale permettant au programme d'installation de provisionner les ressources](provision-minimal-iam-policy.md).

**Pour fournir des AWS informations d'identification à l'appareil**
+ <a name="installer-export-aws-credentials"></a>Fournissez vos AWS informations d'identification à l'appareil afin que le programme d'installation puisse fournir les ressources AWS IoT et IAM pour votre appareil principal. Pour renforcer la sécurité, nous vous recommandons d'obtenir des informations d'identification temporaires pour un rôle IAM qui n'accorde que les autorisations minimales nécessaires au provisionnement. Pour de plus amples informations, veuillez consulter [Politique IAM minimale permettant au programme d'installation de provisionner les ressources](provision-minimal-iam-policy.md).
**Note**  
Le programme d'installation n'enregistre ni ne stocke vos informations d'identification.

  Sur votre appareil, effectuez l'une des opérations suivantes pour récupérer les informations d'identification et les mettre à la disposition du programme d'installation du logiciel AWS IoT Greengrass Core :
  + (Recommandé) Utilisez des informations d'identification temporaires provenant de AWS IAM Identity Center

    1. Fournissez l'ID de clé d'accès, la clé d'accès secrète et le jeton de session provenant du centre d'identité IAM. Pour plus d'informations, voir Actualisation **manuelle des informations d'identification dans la section Obtenir et actualiser** [des informations d'identification temporaires](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) dans le guide de l'*utilisateur d'IAM Identity Center*.

    1. Exécutez les commandes suivantes pour fournir les informations d'identification au logiciel AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Utilisez les informations d'identification de sécurité temporaires issues d'un rôle IAM :

    1. Fournissez l'ID de clé d'accès, la clé d'accès secrète et le jeton de session correspondant au rôle IAM que vous assumez. Pour plus d'informations sur la façon de récupérer ces informations d'identification, consultez la section [Demande d'informations d'identification de sécurité temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) dans le *guide de l'utilisateur IAM*.

    1. Exécutez les commandes suivantes pour fournir les informations d'identification au logiciel AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Utilisez les informations d'identification à long terme d'un utilisateur IAM :

    1. Fournissez l'ID de clé d'accès et la clé d'accès secrète pour votre utilisateur IAM. Vous pouvez créer un utilisateur IAM pour le provisionnement, que vous supprimerez ultérieurement. Pour connaître la politique IAM à communiquer à l'utilisateur, consultez[Politique IAM minimale permettant au programme d'installation de provisionner les ressources](provision-minimal-iam-policy.md). Pour plus d'informations sur la façon de récupérer des informations d'identification à long terme, consultez [la section Gestion des clés d'accès pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) dans le guide de l'*utilisateur IAM*.

    1. Exécutez les commandes suivantes pour fournir les informations d'identification au logiciel AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Facultatif) Si vous avez créé un utilisateur IAM pour approvisionner votre appareil Greengrass, supprimez-le.

    1. (Facultatif) Si vous avez utilisé l'ID de clé d'accès et la clé d'accès secrète d'un utilisateur IAM existant, mettez à jour les clés de cet utilisateur afin qu'elles ne soient plus valides. Pour plus d'informations, consultez la section [Mise à jour des clés d'accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) dans le *guide de Gestion des identités et des accès AWS l'utilisateur*.

### Téléchargez le logiciel AWS IoT Greengrass de base
<a name="download-greengrass-core-v2-auto"></a>

Vous pouvez télécharger la dernière version du logiciel AWS IoT Greengrass Core à l'adresse suivante :
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Note**  
Vous pouvez télécharger une version spécifique du logiciel AWS IoT Greengrass Core à l'emplacement suivant. Remplacez *version* par la version à télécharger.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Pour télécharger le logiciel AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Sur votre appareil principal, téléchargez le logiciel AWS IoT Greengrass Core dans un fichier nommé`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Si vous téléchargez ce logiciel, vous acceptez le [contrat de licence du logiciel Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Facultatif) Pour vérifier la signature du logiciel Greengrass Nucleus
**Note**  
Cette fonctionnalité est disponible avec Greengrass nucleus version 2.9.5 et versions ultérieures.

   1. Utilisez la commande suivante pour vérifier la signature de votre artefact Greengrass nucleus :

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Le nom du fichier peut être différent selon la version du JDK que vous installez. *`jdk17.0.6_10`*Remplacez-le par la version du JDK que vous avez installée.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. L'`jarsigner`invocation produit une sortie qui indique les résultats de la vérification.

      1. Si le fichier zip Greengrass nucleus est signé, le résultat contient l'instruction suivante :

         ```
         jar verified.
         ```

      1. Si le fichier zip Greengrass nucleus n'est pas signé, le résultat contient l'instruction suivante :

         ```
         jar is unsigned.
         ```

   1. Si vous avez fourni l'`-certs`option Jarsigner en même temps que les `-verbose` options `-verify` et, le résultat inclut également des informations détaillées sur le certificat du signataire.

1. <a name="installation-unzip-ggc-software-step"></a>Décompressez le logiciel AWS IoT Greengrass Core dans un dossier de votre appareil. *GreengrassInstaller*Remplacez-le par le dossier que vous souhaitez utiliser.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Facultatif) Exécutez la commande suivante pour voir la version du logiciel AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Important**  <a name="installer-folder-2.4.0-warning"></a>
Si vous installez une version du noyau Greengrass antérieure à la version 2.4.0, ne supprimez pas ce dossier après avoir installé le logiciel Core. AWS IoT Greengrass Le logiciel AWS IoT Greengrass Core utilise les fichiers de ce dossier pour s'exécuter.  
Si vous avez téléchargé la dernière version du logiciel, vous devez installer la version 2.4.0 ou ultérieure, et vous pouvez supprimer ce dossier après avoir installé le logiciel AWS IoT Greengrass Core.

### Installation du logiciel AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-auto"></a>

Exécutez le programme d'installation avec des arguments spécifiant les actions suivantes :
+ <a name="install-argument-aws-resources"></a>Créez les AWS ressources dont le périphérique principal a besoin pour fonctionner.
+ <a name="install-argument-component-default-user"></a>Spécifiez d'utiliser l'utilisateur `ggc_user` du système pour exécuter les composants logiciels sur le périphérique principal. Sur les appareils Linux, cette commande indique également d'utiliser le groupe `ggc_group` système, et le programme d'installation crée l'utilisateur et le groupe système pour vous.
+ <a name="install-argument-system-service"></a>Configurez le logiciel AWS IoT Greengrass Core en tant que service système qui s'exécute au démarrage. Sur les appareils Linux, cela nécessite le [système d'initialisation Systemd](https://en.wikipedia.org/wiki/Systemd).
**Important**  <a name="windows-system-service-requirement-important-note"></a>
Sur les appareils Windows Core, vous devez configurer le logiciel AWS IoT Greengrass Core en tant que service système.

Pour configurer un dispositif de développement avec des outils de développement locaux, spécifiez l'`--deploy-dev-tools true`argument. Le déploiement des outils de développement local peut prendre jusqu'à une minute une fois l'installation terminée. 

Pour plus d'informations sur les arguments que vous pouvez spécifier, consultez[Arguments d'installation](configure-installer.md).

**Note**  
<a name="jvm-tuning-note"></a>Si vous utilisez AWS IoT Greengrass un appareil dont la mémoire est limitée, vous pouvez contrôler la quantité de mémoire utilisée par le logiciel AWS IoT Greengrass Core. Pour contrôler l'allocation de mémoire, vous pouvez définir les options de taille de segment de mémoire JVM dans le paramètre de `jvmOptions` configuration de votre composant Nucleus. Pour de plus amples informations, veuillez consulter [Contrôlez l'allocation de mémoire grâce aux options JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Pour installer le logiciel AWS IoT Greengrass Core**

1. Utilisez un éditeur de texte pour créer un fichier de configuration nommé `config.yaml` à fournir au programme d'installation.

   <a name="nano-command-intro"></a>Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le fichier.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copiez le contenu YAML suivant dans le fichier. Ce fichier de configuration partiel spécifie les paramètres du système et les paramètres du noyau de Greengrass.

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       configuration:
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
   ```
   + Remplacez *us-west-2* par l' Région AWS endroit où vous avez créé les ressources.
   + Remplacez le *iotDataEndpoint* par votre point de terminaison de AWS IoT données.
   + Remplacez le point de terminaison *iotCredEndpoint* par vos AWS IoT informations d'identification.

1. Exécutez le programme d'installation AWS IoT Greengrass Core. Remplacez les valeurs des arguments dans votre commande comme suit.
**Note**  
Pour Windows, la limitation de la longueur du chemin est de 260 caractères. Si vous utilisez Windows, utilisez un dossier racine tel que `C:\greengrass\v2` ou `D:\greengrass\v2` pour conserver les chemins des composants Greengrass en dessous de la limite de 260 caractères.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`ou *C:\$1greengrass\$1v2* : chemin d'accès au dossier racine à utiliser pour installer le logiciel AWS IoT Greengrass Core.

   1. *GreengrassInstaller*. Le chemin d'accès au dossier dans lequel vous avez décompressé le programme d'installation du logiciel AWS IoT Greengrass Core.

   1. *region*. L' Région AWS endroit dans lequel trouver ou créer des ressources.

   1. *MyGreengrassCore*. Le nom de l' AWS IoT appareil principal de votre Greengrass. Si l'objet n'existe pas, le programme d'installation le crée. Le programme d'installation télécharge les certificats pour s'authentifier en tant qu' AWS IoT objet. Pour de plus amples informations, veuillez consulter [Authentification et autorisation de l'appareil pour AWS IoT Greengrass](device-auth.md).
**Note**  <a name="install-argument-thing-name-constraint"></a>
Le nom de l'objet ne peut pas contenir de caractères deux-points (`:`).

   1. *MyGreengrassCoreGroup*. Le nom du AWS IoT groupe d'objets de votre appareil Greengrass principal. Si le groupe d'objets n'existe pas, le programme d'installation le crée et y ajoute l'objet. Si le groupe d'objets existe et fait l'objet d'un déploiement actif, le périphérique principal télécharge et exécute le logiciel spécifié par le déploiement.
**Note**  <a name="install-argument-thing-group-name-constraint"></a>
Le nom du groupe d'objets ne peut pas contenir de deux-points (`:`).

   1. *GreengrassV2IoTThingPolicy*. Le nom de la AWS IoT politique qui permet aux appareils principaux de Greengrass de communiquer avec AWS IoT et. AWS IoT Greengrass Si la AWS IoT politique n'existe pas, le programme d'installation crée une AWS IoT politique permissive portant ce nom. Vous pouvez restreindre les autorisations de cette politique pour votre cas d'utilisation. Pour de plus amples informations, veuillez consulter [AWS IoT Politique minimale pour les appareils AWS IoT Greengrass V2 principaux](device-auth.md#greengrass-core-minimal-iot-policy).

   1. *GreengrassV2TokenExchangeRole*. Nom du rôle IAM qui permet au périphérique principal de Greengrass d'obtenir AWS des informations d'identification temporaires. Si le rôle n'existe pas, le programme d'installation le crée, puis crée et attache une politique nommée`GreengrassV2TokenExchangeRoleAccess`. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. Alias du rôle IAM qui permet au périphérique principal de Greengrass d'obtenir des informations d'identification temporaires ultérieurement. Si l'alias de rôle n'existe pas, le programme d'installation le crée et le pointe vers le rôle IAM que vous spécifiez. Pour de plus amples informations, veuillez consulter [Autoriser les appareils principaux à interagir avec les AWS services](device-service-role.md).

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --init-config ./GreengrassInstaller/config.yaml \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true
   ```

------
**Important**  <a name="windows-system-service-installer-argument-important-note"></a>
Sur les appareils Windows Core, vous `--setup-system-service true` devez spécifier de configurer le logiciel AWS IoT Greengrass Core en tant que service système.

   Le programme d'installation affiche les messages suivants en cas de succès :
   + Si vous le spécifiez`--provision`, le programme d'installation imprime `Successfully configured Nucleus with provisioned resource details` s'il a correctement configuré les ressources.
   + Si vous le spécifiez`--deploy-dev-tools`, le programme d'installation affiche `Configured Nucleus to deploy aws.greengrass.Cli component` s'il a créé le déploiement avec succès.
   + Si vous le spécifiez`--setup-system-service true`, le programme d'installation affiche `Successfully set up Nucleus as a system service` s'il a configuré et exécuté le logiciel en tant que service.
   + Si vous ne le spécifiez pas`--setup-system-service true`, le programme d'installation affiche `Launched Nucleus successfully` s'il a réussi et a exécuté le logiciel.

1. Ignorez cette étape si vous avez installé la [Noyau de Greengrass](greengrass-nucleus-component.md) version 2.0.4 ou une version ultérieure. Si vous avez téléchargé la dernière version du logiciel, vous avez installé la version 2.0.4 ou ultérieure.

   Exécutez la commande suivante pour définir les autorisations de fichier requises pour le dossier racine de votre logiciel AWS IoT Greengrass Core. Remplacez-le `/greengrass/v2` par le dossier racine que vous avez spécifié dans votre commande d'installation et remplacez-le */greengrass* par le dossier parent de votre dossier racine.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<a name="install-greengrass-core-run-software"></a>Si vous avez installé le logiciel AWS IoT Greengrass Core en tant que service système, le programme d'installation exécute le logiciel pour vous. Dans le cas contraire, vous devez exécuter le logiciel manuellement. Pour de plus amples informations, veuillez consulter [Exécutez le logiciel AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**Note**  
Par défaut, le rôle IAM créé par le programme d'installation n'autorise pas l'accès aux artefacts des composants dans les compartiments S3. Pour déployer des composants personnalisés qui définissent des artefacts dans Amazon S3, vous devez ajouter des autorisations au rôle afin de permettre à votre appareil principal de récupérer les artefacts des composants. Pour de plus amples informations, veuillez consulter [Autoriser l'accès aux compartiments S3 pour les artefacts des composants](device-service-role.md#device-service-role-access-s3-bucket).  
Si vous ne possédez pas encore de compartiment S3 pour les artefacts des composants, vous pouvez ajouter ces autorisations ultérieurement après avoir créé un compartiment.

<a name="install-greengrass-core-next-steps-intro"></a>Pour plus d'informations sur la configuration et l'utilisation du logiciel AWS IoT Greengrass, consultez les rubriques suivantes :<a name="install-greengrass-core-next-steps-links"></a>
+ [Configuration du logiciel AWS IoT Greengrass de base](configure-greengrass-core-v2.md)
+ [Développer des AWS IoT Greengrass composants](develop-greengrass-components.md)
+ [Déployer AWS IoT Greengrass des composants sur des appareils](manage-deployments.md)
+ [Interface de ligne de commande Greengrass](gg-cli.md)

## Composants de première partie conformes à la norme FIPS
<a name="FIPS-compliance"></a>


|  |  | 
| --- | --- | 
| aws.greengrass.Nucleus | data.iot-fips.us-east-1.amazonaws.com | 
|  | greengrass-fips.us-east-1.amazonaws.com | 
|  | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.TokenExchangeService | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.Cli |  | 
| aws.greengrass.StreamManager | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/greengrass/v2/developerguide/FIPS.html) Le gestionnaire de flux ne prend pas en charge le point de AWS IoT Analytics terminaison FIPS  | 
| aws.greengrass.LogManager | logs-fips. us-east-1.amazonaws.com | 
| aws.greengrass.crypto.Pkcs11Provider |  | 
| aws.greengrass.ShadowManager |  | 
| aws.greengrass.DockerApplicationManager | ecr-fips. us-east-1.amazonaws.com | 
| aws.greengrass.SecretManager | secretsmanager-fips. us-east-1.amazonaws.com | 
| aws.greengrass.telemetry.NucleusEmitter |  | 
| aws.greengrass.clientdevices.IPDetector |  | 
| aws.greengrass.DiskSpooler |  | 

# Résilience dans AWS IoT Greengrass
<a name="disaster-recovery-resiliency"></a>

L'infrastructure AWS mondiale est construite autour des régions et des zones de disponibilité d'Amazon Web Services. Chacune Région AWS fournit plusieurs zones de disponibilité physiquement séparées et isolées, connectées par un réseau à faible latence, à haut débit et hautement redondant. Avec les zones de disponibilité, vous pouvez concevoir et exploiter des applications et des bases de données qui basculent automatiquement d’une zone à l’autre sans interruption. Les zones de disponibilité sont davantage disponibles, tolérantes aux pannes et ont une plus grande capacité de mise à l’échelle que les infrastructures traditionnelles à un ou plusieurs centres de données. 

Pour plus d’informations, consultez [Infrastructure mondiale AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Outre l'infrastructure AWS mondiale, AWS IoT Greengrass propose plusieurs fonctionnalités pour répondre à vos besoins en matière de résilience et de sauvegarde des données.
+ Vous pouvez configurer un périphérique principal Greengrass pour écrire des journaux dans le système de fichiers local et dans Logs. CloudWatch Si le périphérique principal perd sa connectivité, il peut continuer à enregistrer les messages sur le système de fichiers. Lorsqu'il se reconnecte, il écrit les messages du journal dans CloudWatch Logs. Pour de plus amples informations, veuillez consulter [AWS IoT Greengrass Journaux de surveillance](monitor-logs.md).
+ Si un périphérique principal perd de l'alimentation pendant un déploiement, il reprend le déploiement après le redémarrage du logiciel AWS IoT Greengrass principal.
+ Si un appareil principal perd sa connectivité Internet, les appareils clients Greengrass peuvent continuer à communiquer sur le réseau local.
+ Vous pouvez créer des composants Greengrass qui lisent les [flux du gestionnaire](manage-data-streams.md) de flux et envoient les données vers des destinations de stockage locales.

# Sécurité de l'infrastructure dans AWS IoT Greengrass
<a name="infrastructure-security"></a>

En tant que service géré, AWS IoT Greengrass il est protégé par les procédures de sécurité du réseau AWS mondial décrites dans le livre blanc [Amazon Web Services : présentation des processus de sécurité](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Vous utilisez des appels d'API AWS publiés pour accéder AWS IoT Greengrass via le réseau. Les clients doivent prendre en charge le protocole TLS (Transport Layer Security) 1.2 ou version ultérieure. Nous recommandons TLS 1.3 ou version ultérieure. Les clients doivent également prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes.

Les demandes doivent être signées à l'aide d'un identifiant de clé d'accès et d'une clé d'accès secrète associée à un mandataire IAM. Vous pouvez également utiliser [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) pour générer des informations d'identification de sécurité temporaires et signer les demandes.

Dans un AWS IoT Greengrass environnement, les appareils utilisent des certificats X.509 et des clés cryptographiques pour se connecter et s'authentifier auprès du. AWS Cloud Pour de plus amples informations, veuillez consulter [Authentification et autorisation de l'appareil pour AWS IoT Greengrass](device-auth.md).

# Analyse de configuration et de vulnérabilité dans AWS IoT Greengrass
<a name="vulnerability-analysis-and-management"></a>

Les environnements IoT sont composés d’un grand nombre d'appareils disposant de capacités diverses, d’une durée de vie longue et qui sont répartis géographiquement. Ces caractéristiques peuvent rendre la configuration des appareils complexe et source d'erreurs. Les appareils étant souvent limités en puissance de calcul, de mémoire et de capacités de stockage, l'utilisation du chiffrement et d'autres formes de sécurité sur les appareils eux-mêmes s'en trouve limitée. En outre, les appareils utilisent souvent des logiciels aux vulnérabilités connues. Ces facteurs font des appareils IoT une cible attractive pour les pirates informatiques et rend difficile leur sécurisation sur une base permanente.

AWS IoT Device Defender répond à ces défis en fournissant des outils permettant d'identifier les problèmes de sécurité et les écarts par rapport aux meilleures pratiques. Vous pouvez l'utiliser AWS IoT Device Defender pour analyser, auditer et surveiller les appareils connectés afin de détecter les comportements anormaux et d'atténuer les risques de sécurité. AWS IoT Device Defender peut auditer les appareils pour s'assurer qu'ils respectent les meilleures pratiques de sécurité et détecter les comportements anormaux sur les appareils. Cela permet d'appliquer des politiques de sécurité cohérentes sur tous vos appareils et de réagir rapidement lorsque des appareils sont compromis. IForpour plus d'informations, consultez les rubriques suivantes :
+ Le [composant Device Defender](device-defender-component.md)
+ [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) dans le *Manuel du développeur AWS IoT Core *.

Dans AWS IoT Greengrass les environnements, vous devez prendre en compte les points suivants :
+ Il est de votre responsabilité de sécuriser vos appareils physiques, le système de fichiers de vos appareils et le réseau local.
+ AWS IoT Greengrass n'impose pas l'isolation du réseau pour les composants Greengrass définis par l'utilisateur, qu'ils soient exécutés ou non dans un conteneur Greengrass. Il est donc possible pour les composants de Greengrass de communiquer avec tout autre processus exécuté dans le système ou à l'extérieur via le réseau.

# Intégrité du code dans AWS IoT Greengrass V2
<a name="code-integrity"></a>

AWS IoT Greengrass déploie les composants logiciels depuis les AWS Cloud appareils qui exécutent le logiciel AWS IoT Greengrass principal. Ces composants logiciels incluent les [composants AWS fournis](public-components.md) et les [composants personnalisés](create-components.md) que vous téléchargez sur votre Compte AWS. Chaque composant est composé d'une recette. La recette définit les métadonnées du composant et un certain nombre d'artefacts, qui sont des binaires de composants, tels que le code compilé et les ressources statiques. Les artefacts des composants sont stockés dans Amazon S3.

Lorsque vous développez et déployez des composants Greengrass, vous devez suivre ces étapes de base qui fonctionnent avec les artefacts des composants présents sur votre appareil Compte AWS et sur celui-ci :

1. Créez et téléchargez des artefacts dans des compartiments S3.

1. Créez un composant à partir d'une recette et d'artefacts du AWS IoT Greengrass service, qui calcule le [hachage cryptographique](https://en.wikipedia.org/wiki/Cryptographic_hash_function) de chaque artefact.

1. Déployez un composant sur les appareils principaux de Greengrass, qui téléchargent et vérifient l'intégrité de chaque artefact.

AWS est responsable du maintien de l'intégrité des artefacts une fois que vous les avez chargés dans des compartiments S3, y compris lorsque vous déployez des composants sur les appareils principaux de Greengrass. Vous êtes responsable de la sécurisation des artefacts logiciels avant de les télécharger dans des compartiments S3. Vous êtes également responsable de la sécurisation de l'accès aux ressources qu' Compte AWS il contient, y compris aux compartiments S3 dans lesquels vous téléchargez les artefacts des composants.

**Note**  
Amazon S3 fournit une fonctionnalité appelée S3 Object Lock que vous pouvez utiliser pour vous protéger contre les modifications apportées aux artefacts des composants dans vos Compte AWS compartiments S3. Vous pouvez utiliser S3 Object Lock pour empêcher la suppression ou le remplacement d'artefacts de composants. Pour plus d'informations, consultez la section [Utilisation du verrouillage d'objets S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

Lorsque vous AWS publiez un composant public et que vous téléchargez un composant personnalisé, AWS IoT Greengrass calcule un condensé cryptographique pour chaque artefact de composant. AWS IoT Greengrass met à jour la recette du composant pour inclure le condensé de chaque artefact et l'algorithme de hachage utilisé pour calculer ce condensé. Ce condensé garantit l'intégrité de l'artefact, car si l'artefact change pendant AWS Cloud ou pendant le téléchargement, son condensé de fichier ne correspondra pas au condensé AWS IoT Greengrass stocké dans la recette du composant. Pour plus d'informations, consultez la section [Artefacts dans la référence de la recette du composant](component-recipe-reference.md#manifest-artifacts-definition).

Lorsque vous déployez un composant sur un périphérique principal, le logiciel AWS IoT Greengrass Core télécharge la recette du composant et chaque artefact de composant défini par la recette. Le logiciel AWS IoT Greengrass Core calcule le résumé de chaque fichier d'artefact téléchargé et le compare au résumé de cet artefact dans la recette. Si les résumés ne correspondent pas, le déploiement échoue et le logiciel AWS IoT Greengrass Core supprime les artefacts téléchargés du système de fichiers de l'appareil. Pour plus d'informations sur la manière dont les connexions entre les appareils principaux AWS IoT Greengrass sont sécurisées, consultez[Chiffrement en transit](encryption-in-transit.md).

Vous êtes responsable de la sécurisation des fichiers d'artefacts des composants sur les systèmes de fichiers de vos appareils principaux. Le logiciel AWS IoT Greengrass Core enregistre les artefacts dans le `packages` dossier du dossier racine de Greengrass. Vous pouvez l'utiliser AWS IoT Device Defender pour analyser, auditer et surveiller les appareils principaux. Pour de plus amples informations, veuillez consulter [Analyse de configuration et de vulnérabilité dans AWS IoT Greengrass](vulnerability-analysis-and-management.md).

# AWS IoT Greengrass et points de terminaison VPC d'interface ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Vous pouvez établir une connexion privée entre votre VPC et le plan de AWS IoT Greengrass contrôle en créant un point de terminaison *VPC d'interface*. Vous pouvez utiliser ce point de terminaison pour gérer les composants, les déploiements et les principaux appareils du AWS IoT Greengrass service. Les points de terminaison de l'interface sont alimentés par [AWS PrivateLink](https://aws.amazon.com/privatelink)une technologie qui vous permet d'accéder AWS IoT Greengrass APIs en privé sans passerelle Internet, appareil NAT, connexion VPN ou connexion AWS Direct Connect. Les instances de votre VPC n'ont pas besoin d'adresses IP publiques pour communiquer avec elles. AWS IoT Greengrass APIs Le trafic entre votre VPC et celui qui AWS IoT Greengrass ne quitte pas le réseau Amazon.

Chaque point de terminaison d’interface est représenté par une ou plusieurs [interfaces réseau Elastic](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) dans vos sous-réseaux. 

Pour de plus amples informations, consultez [Points de terminaison VPC (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) dans le *Guide de l’utilisateur Amazon VPC*.

**Topics**
+ [Considérations relatives aux points de AWS IoT Greengrass terminaison VPC](#vpc-endpoint-considerations)
+ [Création d'un point de terminaison VPC d'interface pour les opérations du plan AWS IoT Greengrass de contrôle](#create-vpc-endpoint-control-plane)
+ [Création d'une politique de point de terminaison VPC pour AWS IoT Greengrass](#vpc-endpoint-policy)
+ [Faire fonctionner un appareil AWS IoT Greengrass principal dans un VPC](#vpc-operate-device-vpce)

## Considérations relatives aux points de AWS IoT Greengrass terminaison VPC
<a name="vpc-endpoint-considerations"></a>

Avant de configurer un point de terminaison VPC d'interface pour AWS IoT Greengrass, consultez les [propriétés et les limites du point de terminaison d'interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) dans le guide de l'utilisateur Amazon *VPC*. Tenez également compte des considérations suivantes :
+ AWS IoT Greengrass prend en charge les appels à toutes ses actions d'API du plan de contrôle depuis votre VPC. Le plan de commande inclut des opérations telles que [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)et [ListEffectiveDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListEffectiveDeployments.html). Le plan de contrôle *n'inclut pas* les opérations telles que [ResolveComponentCandidates](device-auth.md#iot-policies)[Discover](greengrass-discover-api.md), qui sont des opérations de plan de données.
+ Les points de terminaison VPC pour ne AWS IoT Greengrass sont actuellement pas pris en charge dans les régions de Chine AWS .

## Création d'un point de terminaison VPC d'interface pour les opérations du plan AWS IoT Greengrass de contrôle
<a name="create-vpc-endpoint-control-plane"></a>

Vous pouvez créer un point de terminaison VPC pour le plan de AWS IoT Greengrass contrôle à l'aide de la console Amazon VPC ou du (). AWS Command Line Interface AWS CLI Pour plus d’informations, consultez [Création d’un point de terminaison d’interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) dans le *Guide de l’utilisateur Amazon VPC*.

Créez un point de terminaison VPC à l' AWS IoT Greengrass aide du nom de service suivant : 
+ com.amazonaws. *region*. herbe verte

Si vous activez le DNS privé pour le point de terminaison, vous pouvez envoyer des demandes d'API AWS IoT Greengrass en utilisant son nom DNS par défaut pour la région, par exemple,`greengrass.us-east-1.amazonaws.com`. Le DNS privé est activé par défaut.

Pour plus d’informations, consultez [Accès à un service via un point de terminaison d’interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) dans le *Guide de l’utilisateur Amazon VPC*.

## Création d'une politique de point de terminaison VPC pour AWS IoT Greengrass
<a name="vpc-endpoint-policy"></a>

Vous pouvez associer une politique de point de terminaison à votre point de terminaison VPC qui contrôle l'accès aux opérations du plan AWS IoT Greengrass de contrôle. La politique spécifie les informations suivantes :
+ Le principal qui peut exécuter des actions.
+ Les actions que le principal peut effectuer.
+ Les ressources sur lesquelles le principal peut effectuer des actions.

Pour plus d’informations, consultez [Contrôle de l’accès aux services avec points de terminaison d’un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dans le *Guide de l’utilisateur Amazon VPC*.

**Example Exemple : politique de point de terminaison VPC pour les actions AWS IoT Greengrass**  
Voici un exemple de politique de point de terminaison pour AWS IoT Greengrass. Lorsqu'elle est attachée à un point de terminaison, cette politique accorde l'accès aux AWS IoT Greengrass actions répertoriées à tous les principaux sur toutes les ressources.  

```
{
    "Statement": [
        {
            "Principal": "*",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "greengrass:ListEffectiveDeployments"
            ],
            "Resource": "*"
        }
    ]
}
```

## Faire fonctionner un appareil AWS IoT Greengrass principal dans un VPC
<a name="vpc-operate-device-vpce"></a>

Vous pouvez utiliser un appareil principal Greengrass et effectuer des déploiements en VPC sans accès public à Internet. Vous devez au minimum configurer les points de terminaison VPC suivants avec les alias DNS correspondants. *Pour plus d'informations sur la création et l'utilisation de points de terminaison VPC, consultez la section Créer [un point de terminaison VPC dans le guide de l'utilisateur Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).*

**Note**  
La fonctionnalité VPC permettant de créer automatiquement un enregistrement DNS est désactivée pour AWS IoT data et AWS IoT Credentials. Pour connecter ces points de terminaison, vous devez créer manuellement un enregistrement DNS privé. Pour plus d'informations, consultez la section [DNS privé pour les points de terminaison de l'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-private-dns). Pour plus d'informations sur les limites des AWS IoT Core VPC, consultez la section Limitations des points de [terminaison VPC.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations) 

### Conditions préalables
<a name="vpc-endpoint-prerequisites"></a>
+ Vous devez installer le logiciel AWS IoT Greengrass Core en suivant les étapes de provisionnement manuel. Pour de plus amples informations, veuillez consulter [Installation AWS IoT Greengrass du logiciel Core avec provisionnement manuel des ressources](manual-installation.md).

### Limitations
<a name="vpc-endpoint-limitaions"></a>
+ L'utilisation d'un appareil principal Greengrass en VPC n'est pas prise en charge dans les régions de Chine et. AWS GovCloud (US) Regions
+ [Pour plus d'informations sur les limites des points de terminaison VPC du fournisseur AWS IoT d'informations d'identification AWS IoT data et les limites, consultez la section Limitations.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations)

### Configurez votre appareil principal Greengrass pour qu'il fonctionne en VPC
<a name="vpc-endpoint-operate-gg-core"></a>

****

1. Obtenez les AWS IoT points de terminaison qui vous Compte AWS conviennent et enregistrez-les pour les utiliser ultérieurement. Votre appareil utilise ces points de terminaison pour se connecter à AWS IoT. Procédez comme suit :

   1. Obtenez le point de terminaison de AWS IoT données pour votre Compte AWS.

      ```
      aws iot describe-endpoint --endpoint-type iot:Data-ATS
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
      }
      ```

   1. Obtenez le point de terminaison des informations d' AWS IoT identification pour votre Compte AWS.

      ```
      aws iot describe-endpoint --endpoint-type iot:CredentialProvider
      ```

      La réponse ressemble à l'exemple suivant, si la demande aboutit.

      ```
      {
        "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
      }
      ```

1. Créez une interface Amazon VPC pour les points de terminaison AWS IoT data et identifiez les points de AWS IoT terminaison :

   1. Accédez au **point de terminaison d'un [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) de la console **, sous **Virtual private cloud** dans le menu de gauche, choisissez **point de terminaison ** puis **Créer un point de terminaison **.

   1. Dans la page ** Create Endpoint (Créer un point de terminaison**, spécifiez les informations suivantes.
      + Choisissez **Service AWS s** pour ** la catégorie de service **.
      + Pour **Nom du service**, effectuez une recherche en saisissant le mot-clé `iot`. Dans la liste des services `iot` affichés, choisissez le point de terminaison. 

        Si vous créez un point de terminaison VPC pour le plan de AWS IoT Core données, choisissez le point de terminaison de l'API du plan de AWS IoT Core données pour votre région. Le format du nom du point de terminaison est `com.amazonaws.region.iot.data`. 

        Si vous créez un point de terminaison VPC pour le fournisseur AWS IoT Core d'informations d'identification, choisissez le point de terminaison du fournisseur AWS IoT Core d'informations d'identification pour votre région. Le format du nom du point de terminaison est `com.amazonaws.region.iot.credentials`.
**Note**  
Le nom du service pour le plan de AWS IoT Core données dans la région de Chine sera au format suivant`cn.com.amazonaws.region.iot.data`. La création de points de terminaison VPC pour le fournisseur AWS IoT Core d'informations d'identification n'est pas prise en charge dans la région de la Chine.
      + Pour le **VPC** et les **sous-réseaux, choisissez** le VPC dans lequel vous souhaitez créer le point de terminaison et les zones de disponibilité (AZs) dans lesquelles vous souhaitez créer le réseau de points de terminaison.
      + Pour **Activer le nom DNS**, assurez-vous que **Activer pour ce point de terminaison** n’est pas sélectionné. Ni le plan de AWS IoT Core données ni le fournisseur AWS IoT Core d'identifiants ne prennent encore en charge les noms DNS privés.
      + Pour **(Groupe de sécurité)**, sélectionnez les groupes de sécurité que vous souhaitez associer aux interfaces réseau des points de terminaison.
      + En option, vous pouvez ajouter ou supprimer des balises. Les balises sont des paires nom-valeur que vous utilisez pour associer à votre point de terminaison. 

   1. Pour créer votre point de terminaison VPC, choisissez **Créer un point de terminaison**.

1. Après avoir créé le AWS PrivateLink point de terminaison, dans l'onglet **Détails** de votre point de terminaison, vous verrez une liste de noms DNS. Vous pouvez utiliser l'un de ces noms DNS que vous avez créés dans cette section pour [configurer votre zone hébergée privée](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#connect-iot-core-create-phz-lns).

1. Créez un point de terminaison Amazon S3. Pour plus d'informations, consultez [Créer un point de terminaison VPC pour Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc).

1. Si vous utilisez des composants [Greengrass AWS fournis](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html), des points de terminaison et des configurations supplémentaires peuvent être nécessaires. Pour consulter les exigences relatives aux terminaux, sélectionnez le composant dans la liste des composants AWS fournis et consultez la section Exigences. Par exemple, les [exigences du composant du gestionnaire de journaux](log-manager-component.md#log-manager-component-requirements) indiquent que ce composant doit être capable d'effectuer des demandes sortantes vers le point de terminaison`logs.region.amazonaws.com`.

   Si vous utilisez votre propre composant, vous devrez peut-être examiner les dépendances et effectuer des tests supplémentaires pour déterminer si des points de terminaison supplémentaires sont nécessaires.

1. Dans la configuration du noyau de Greengrass, `greengrassDataPlaneEndpoint` il doit être défini sur. **iotdata** Pour plus d'informations, consultez la section Configuration du [noyau de Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).

1. Si vous vous trouvez dans la `us-east-1` région, définissez le paramètre de configuration `s3EndpointType` sur **REGIONAL** dans la configuration du noyau Greengrass. Cette fonctionnalité est disponible pour les versions 2.11.3 ou ultérieures de Greengrass nucleus.

**Example Exemple : configuration des composants**  

```
{
"aws.greengrass.Nucleus": {
   "configuration": {
      "awsRegion": "us-east-1",
      "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com",
      "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com",
      "greengrassDataPlaneEndpoint": "iotdata",
      "s3EndpointType": "REGIONAL"
      ...
     }
   }
}
```

Le tableau suivant fournit des informations sur les alias DNS privés personnalisés correspondants.


| Service | Nom du service de point de terminaison d'un VPC | Type de point de terminaison VPC | Alias DNS privé personnalisé | Remarques | 
| --- | --- | --- | --- | --- | 
|  AWS IoT data  | `com.amazonaws.region.iot.data` | Interface |  `prefix-ats.iot.region.amazonaws.com`  |  L'enregistrement DNS privé doit correspondre au AWS IoT data point de terminaison de votre compte :`aws iot describe–endpoint ––endpoint–type iot:Data-ATS`.  | 
| AWS IoT Informations d'identification | `com.amazonaws.region.iot.credentials` | Interface | `prefix.credentials.iot.region.amazonaws.com` | L'enregistrement DNS privé doit correspondre au point de terminaison des AWS IoT informations d'identification de votre compte :`aws iot describe–endpoint ––endpoint–type iot:CredentialProvider`. | 
| Amazon S3 | `com.amazonaws.region.s3` | Interface |  | L'enregistrement DNS est automatiquement créé. | 

# Bonnes pratiques en matière de sécurité pour AWS IoT Greengrass
<a name="security-best-practices"></a>

Cette rubrique présente les meilleures pratiques de sécurité pour AWS IoT Greengrass.

## Accorder le moins d’autorisations possibles
<a name="least-privilege"></a>

Respectez le principe du moindre privilège pour vos composants en les exécutant en tant qu'utilisateurs non privilégiés. Les composants ne doivent pas être exécutés en tant que root, sauf si cela est absolument nécessaire.

Utilisez l'ensemble minimal d'autorisations dans les rôles IAM. Limitez l'utilisation du `*` caractère générique pour les `Resource` propriétés `Action` et dans vos politiques IAM. Au lieu de cela, déclarez un ensemble fini d'actions et de ressources lorsque cela est possible. Pour plus d'informations sur le moindre privilège et les autres bonnes pratiques en matière de stratégie, veuillez consulter [Bonnes pratiques en matière de politiques](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

La meilleure pratique du moindre privilège s'applique également aux AWS IoT politiques que vous attachez à votre noyau Greengrass.

## Ne codez pas en dur les informations d'identification dans les composants Greengrass
<a name="no-hardcoded-credentials"></a>

Ne codez pas en dur les informations d'identification dans vos composants Greengrass définis par l'utilisateur. Pour mieux protéger vos informations d'identification :
+ Pour interagir avec les AWS services, définissez des autorisations pour des actions et des ressources spécifiques dans le rôle de [service principal de Greengrass sur les appareils](device-service-role.md).
+ Utilisez le [composant secret manager](secret-manager-component.md) pour stocker vos informations d'identification. Ou, si la fonction utilise le AWS SDK, utilisez les informations d'identification de la chaîne de fournisseurs d'informations d'identification par défaut.

## Ne journalisez pas les informations sensibles
<a name="protect-pii"></a>

Vous devez empêcher la journalisation des informations d'identification et d'autres informations personnelles identifiables (PII). Nous vous recommandons de mettre en œuvre les mesures de protection suivantes, même si l'accès aux journaux locaux sur un appareil principal nécessite des privilèges root et que l'accès aux CloudWatch journaux nécessite des autorisations IAM.
+ N'utilisez pas d'informations sensibles dans les chemins de rubrique MQTT.
+ N'utilisez pas d'informations sensibles dans les noms, les types et les attributs d’appareil (objet) dans le registre AWS IoT Core .
+ N'enregistrez pas d'informations sensibles dans vos composants Greengrass ou vos fonctions Lambda définis par l'utilisateur.
+ N'utilisez pas d'informations sensibles dans les noms et les ressources IDs de Greengrass :
  + Appareils principaux
  + Éléments
  + Déploiements
  + Loggers

## Veiller à la synchronisation de l'horloge de votre appareil
<a name="device-clock"></a>

Il est important que l'heure soit exacte sur votre appareil. Les certificats X.509 ont une date et une heure d'expiration. L'horloge de votre appareil est utilisée pour vérifier qu'un certificat de serveur est toujours valide. Les horloges de l'appareil peuvent se décaler au fil du temps ou les batteries peuvent se décharger.

Pour de plus amples informations, veuillez consulter les bonnes pratiques décrites dans la section [Veiller à la synchronisation de l'horloge de votre appareil](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-clock) dans le *Manuel du développeur AWS IoT Core *.

## Recommandations de Cipher Suite
<a name="cipher-suites"></a>

Greengrass sélectionne par défaut les dernières suites de chiffrement TLS disponibles sur l'appareil. Envisagez de désactiver l'utilisation des anciennes suites de chiffrement sur l'appareil. Par exemple, les suites de chiffrement CBC. 

Pour plus d'informations, consultez la section [Configuration de la cryptographie Java](https://www.java.com/configure_crypto.html).

## Consultez aussi
<a name="security-best-practices-see-also"></a>
+ [Les meilleures pratiques en matière de sécurité](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html) sont AWS IoT Core décrites dans le *guide du AWS IoT développeur*
+ [Dix règles d'or en matière de sécurité pour les solutions IoT industrielles](https://aws.amazon.com/blogs/iot/ten-security-golden-rules-for-industrial-iot-solutions/) sur l'*Internet des objets sur le blog AWS officiel*