

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.

# Préparation de la sécurité
<a name="preparing-security"></a>

Cette section décrit les principales exigences de sécurité pour le catalogue de packages AWS IoT Device Management logiciels.

## Authentification basée sur les ressources
<a name="resource-based-authorization"></a>

Le Catalogue de Logiciels utilise une autorisation basée sur les ressources pour renforcer la sécurité lors de la mise à jour des logiciels de votre flotte. Cela signifie que vous devez créer une politique Gestion des identités et des accès AWS (IAM) qui accorde les droits d'exécution`create`,, `read` `update``delete`, et d'`list`actions pour les packages logiciels et les versions de packages, et référencer les packages logiciels et les versions de package spécifiques que vous souhaitez déployer dans la `Resources` section. Vous avez également besoin de ces droits pour pouvoir mettre à jour l'[ombre nommée réservée](https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#reserved-named-shadow). Vous référencez les packages logiciels et les versions des packages en incluant un Amazon Resource Name (ARN) pour chaque entité.

**Note**  
Si vous souhaitez que la politique accorde des droits pour les appels d'API de version de package (tels que [CreatePackageVersion[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePackageVersion.html),, [DeletePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_DeletePackageVersion.html)), vous devez inclure à la *fois* le package logiciel et la version du package ARNs dans la politique. Si vous souhaitez que la politique accorde des droits pour les appels d'API des packages logiciels (tels que [CreatePackage[UpdatePackage](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackage.html)](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePackage.html), et [DeletePackage](https://docs.aws.amazon.com/iot/latest/apireference/API_DeletePackage.html)), vous devez inclure uniquement l'ARN du package logiciel dans la politique.

Structurez le package logiciel et la version du package ARNs comme suit :
+ Package logiciel : `arn:aws:iot:<region>:<accountID>:package/<packageName>/package` 
+ Version du package : `arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>` 

**Note**  
Il existe d'autres droits connexes que vous pouvez inclure dans cette politique. Par exemple, vous pouvez inclure un ARN pour le `job`, `thinggroup`, et`jobtemplate`. Pour plus d'informations et une liste complète des options de politique, consultez la section [Sécurisation des utilisateurs et des appareils avec AWS IoT Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-security.html).

Par exemple, si vous disposez d'un package logiciel et d'une version de package nommés comme suit :
+ AWS IoT chose : `myThing`
+ Nom du package : `samplePackage`
+ Version `1.0.0`

La politique doit ressembler à l'exemple suivant :

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:createPackage",
                "iot:createPackageVersion",
                "iot:updatePackage",
                "iot:updatePackageVersion"
            ],
            "Resource": [
               "arn:aws:iot:us-east-1:111122223333:package/samplePackage",
               "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package"
        }
    ]
}
```

## AWS IoT Droits de travail pour déployer des versions de packages
<a name="job-rights-deploy-versions"></a>

Pour des raisons de sécurité, il est important que vous accordiez les droits de déploiement de packages et de versions de packages, et que vous nommiez les packages et versions de packages spécifiques qu'ils sont autorisés à déployer. Pour ce faire, vous créez un rôle et une politique IAM qui autorisent le déploiement de tâches avec des versions de package. La politique doit spécifier les versions du package de destination en tant que ressource.

**Politique IAM**

La politique IAM accorde le droit de créer une tâche qui inclut le package et la version nommés dans la `Resource` section.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:CreateJob",
                "iot:CreateJobTemplate"
            ],
            "Resource":[
                "arn:aws:iot:*:111122223333:job/<jobId>",
                "arn:aws:iot:*:111122223333:thing/<thingName>/$package",
                "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>",
                "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>",
                "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>"
            ]
        }
    ]
}
```

**Note**  
Si vous souhaitez déployer une tâche qui désinstalle un package logiciel et une version de package, vous devez autoriser un ARN contenant la version du package`$null`, comme dans le cas suivant :

```
arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null
```

## AWS IoT Droits de travail pour mettre à jour l'ombre nommée réservée
<a name="job-rights-update-reserved-named-shadow"></a>

Pour permettre aux tâches de mettre à jour le nom réservé de l'objet lorsque la tâche est terminée avec succès, vous devez créer un rôle et une politique IAM. Il existe deux manières de procéder dans la AWS IoT console. La première consiste à créer un package logiciel dans la console. Si la boîte de dialogue **Activer les dépendances pour la gestion des packages** s'affiche, vous pouvez choisir d'utiliser un rôle existant ou d'en créer un nouveau. Dans la AWS IoT console, vous pouvez également choisir **Gérer l'indexation** dans **Paramètres**, puis **Gérer l'indexation pour les packages et les versions des appareils**. 

**Note**  
Si vous choisissez de demander au service AWS IoT Job de mettre à jour l'ombre nommée réservée lorsqu'une tâche est terminée avec succès, l'appel d'API est pris en compte dans vos **opérations de Device Shadow et de registre** et peut entraîner un coût. Pour en savoir plus, consultez [Pricing AWS IoT Core](https://aws.amazon.com/iot-core/pricing/) (Tarification).

Lorsque vous utilisez l'option **Créer un rôle**, le nom du rôle généré commence par `aws-iot-role-update-shadows` et contient les politiques suivantes :

 **Configuration de rôles**

**Permissions**  
La politique d'autorisation accorde le droit d'interroger et de mettre à jour l’ombre d’objet. Le `$package` paramètre de l'ARN de la ressource cible l'ombre nommée réservée.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iot:DescribeEndpoint",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Resource": [
            "arn:aws:iot:us-east-1:111122223333:thing/<thingName>/$package"
            ]
        }
    ]
}
```

**Relation d’approbation**  
Outre la politique d'autorisations, le rôle nécessite une relation de confiance avec AWS IoT Core enfin que entité peut assumer le rôle et mettre à jour le nom d'ombre réservé.    
****  

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

**Configuration d'une politique utilisateur**

**iam : autorisation PassRole **  
Enfin, vous devez être autorisé à transmettre le rôle AWS IoT Core lorsque vous appelez l'opération [ UpdatePackageConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageConfiguration.html)d'API.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iot:UpdatePackageConfiguration"
            ],
            "Resource": "arn:aws:iam::111122223333:role/<roleName>"
        }
    ]
}
```

## AWS IoT Autorisations de téléchargement des jobs depuis Amazon S3
<a name="job-rights-download-job-document"></a>

Le document de travail est enregistré dans Amazon S3. Vous vous référez à ce fichier lorsque vous expédiez via AWS IoT Jobs. Vous devez fournir à AWS IoT Jobs le droit de télécharger le fichier (`s3:GetObject`). Vous devez également établir une relation de confiance entre Amazon S3 et AWS IoT Jobs. Pour obtenir des instructions sur la création de ces politiques, voir [Presigned URLs](https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html#create-manage-jobs-presigned-URLs) dans [Gestion des tâches](https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html).

## Autorisations de mise à jour de la nomenclature du logiciel pour une version de package
<a name="job-rights-update-sbom"></a>

Pour mettre à jour la nomenclature logicielle d'une version de package dans l'état `Draft``Published`, ou dans l'état `Deprecated` du cycle de vie, vous avez besoin d'un Gestion des identités et des accès AWS rôle et de politiques permettant de localiser la nouvelle nomenclature logicielle dans Amazon S3 et de mettre à jour la version du package dans AWS IoT Core.

Tout d'abord, vous allez placer la nomenclature logicielle mise à jour dans votre compartiment Amazon S3 versionné et appeler l'opération d'`[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)`API avec le `sboms` paramètre inclus. Ensuite, votre principal autorisé assumera le rôle IAM que vous avez créé, localisera la nomenclature logicielle mise à jour dans Amazon S3 et mettra à jour la version du package dans le catalogue AWS IoT Core de packages logiciels.

Les règles suivantes sont requises pour effectuer cette mise à jour :

**Stratégies**
+ Politique de **confiance Politique** établissant une relation de confiance avec le principal autorisé assumant le rôle IAM afin qu'il puisse localiser la nomenclature logicielle mise à jour depuis votre compartiment versionné dans Amazon S3 et mettre à jour la version du package dans. AWS IoT Core
  +   
****  

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

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "iot.amazonaws.com"
            },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    ```
+ **Politique d'autorisations** : politique d'accès au compartiment versionné Amazon S3 dans lequel la nomenclature logicielle est stockée pour une version de package et de mise à jour de la version du package dans AWS IoT Core.
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::awsexamplebucket1"
                ]
            }
        ]
    }
    ```
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "iot:UpdatePackageVersion"
                ],
                "Resource": [
                    "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>"
                ]
            }
        ]
    }
    ```
+ **Transmettre les autorisations de rôle** : politique octroyant l'autorisation de transmettre le rôle IAM à Amazon S3 et AWS IoT Core lorsque vous appelez l'opération `[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)` d'API.
  +   
****  

    ```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:PassRole",
            "s3:GetObject"
          ],
          "Resource": [
            "arn:aws:s3:::awsexamplebucket1"
          ]
        }
      ]
    }
    ```
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "iam:PassRole",
                    "iot:UpdatePackageVersion"
                ],
                "Resource": "arn:aws:iam::111122223333:role/<roleName>"
            }
        ]
    }
    ```

**Note**  
Vous ne pouvez pas mettre à jour la nomenclature du logiciel sur une version du package qui est passée à l'état de `Deleted` cycle de vie.

Pour plus d'informations sur la création d'un rôle IAM pour un AWS service, consultez la section [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).

Pour plus d'informations sur la création d'un compartiment Amazon S3 et le téléchargement d'objets dans celui-ci, consultez les sections [Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) et [Chargement](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) d'objets.