

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.

# Étape 4 : configurer le AWS CLI et AWS SDKs
<a name="su-awscli-sdk"></a>

Vous pouvez utiliser les étiquettes AWS Command Line Interface personnalisées Amazon Rekognition avec les () et.AWS CLI AWS SDKs Si vous devez exécuter des opérations Étiquettes personnalisées Amazon Rekognition depuis le terminal, installez AWS CLI. Si vous créez une application, téléchargez le AWS SDK correspondant au langage de programmation que vous utilisez. 

**Topics**
+ [Installez les AWS SDK](#sdk-install-sdk)
+ [Octroi d’un accès par programmation](su-sdk-programmatic-access.md)
+ [Configuration des autorisations du kit SDK](su-sdk-permissions.md)
+ [Appel d’une opération Étiquettes personnalisées Amazon Rekognition](su-sdk-list-projects.md)

## Installez les AWS SDK
<a name="sdk-install-sdk"></a>

Suivez les étapes pour télécharger et configurer l' AWS SDKs.

**Pour configurer le AWS CLI et le AWS SDKs**
+ Téléchargez et installez le [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)et le AWS SDKs que vous souhaitez utiliser. Ce guide fournit des AWS CLI exemples pour [Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) et [Python](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation). Pour plus d'informations sur l'installation AWS SDKs, consultez la section [Outils pour Amazon Web Services](https://aws.amazon.com/tools/).

# Octroi d’un accès par programmation
<a name="su-sdk-programmatic-access"></a>

Vous pouvez exécuter les exemples de code AWS CLI et de code présentés dans ce guide sur votre ordinateur local ou dans d'autres AWS environnements, tels qu'une instance Amazon Elastic Compute Cloud. Pour exécuter les exemples, vous devez autoriser l'accès aux opérations du AWS SDK qu'ils utilisent. 

**Topics**
+ [Exécuter du code sur votre ordinateur local](#su-sdk-programmatic-access-general)
+ [Exécution de code dans AWS des environnements](#su-sdk-aws-environments)

## Exécuter du code sur votre ordinateur local
<a name="su-sdk-programmatic-access-general"></a>

Pour exécuter du code sur un ordinateur local, nous vous recommandons d'utiliser des informations d'identification à court terme pour autoriser un utilisateur à accéder aux opérations du AWS SDK. Pour des informations spécifiques sur l'exécution des exemples de code AWS CLI et sur un ordinateur local, consultez[Utiliser un profil sur votre ordinateur local](#su-sdk-programmatic-access-customlabels-examples).

Les utilisateurs ont besoin d'un accès programmatique s'ils souhaitent interagir avec AWS l'extérieur du AWS Management Console. La manière d'accorder un accès programmatique dépend du type d'utilisateur qui y accède AWS.

Pour accorder aux utilisateurs un accès programmatique, choisissez l’une des options suivantes.


****  

| Quel utilisateur a besoin d’un accès programmatique ? | À | Méthode | 
| --- | --- | --- | 
| IAM | (Recommandé) Utilisez les informations d'identification de la console comme informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
|  Identité de la main-d’œuvre (Utilisateurs gérés dans IAM Identity Center)  | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
| IAM | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. | Suivez les instructions de la section [Utilisation d'informations d'identification temporaires avec AWS les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) du Guide de l'utilisateur IAM. | 
| IAM | (Non recommandé)Utilisez des informations d'identification à long terme pour signer des demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 

### Utiliser un profil sur votre ordinateur local
<a name="su-sdk-programmatic-access-customlabels-examples"></a>

Vous pouvez exécuter les exemples de code AWS CLI et de code présentés dans ce guide à l'aide des informations d'identification à court terme que vous avez créées dans ce guide[Exécuter du code sur votre ordinateur local](#su-sdk-programmatic-access-general). Pour obtenir les informations d’identification et autres informations relatives aux paramètres, les exemples utilisent un profil nommé `custom-labels-access`. Par exemple : 

```
session = boto3.Session(profile_name='custom-labels-access')
rekognition_client = session.client("rekognition")
```

L'utilisateur représenté par le profil doit être autorisé à appeler les opérations du SDK Amazon Rekognition Custom Labels AWS et les autres opérations du SDK requises par les exemples. Pour de plus amples informations, veuillez consulter [Configuration des autorisations du kit SDK](su-sdk-permissions.md). Pour attribuer des autorisations, consultez [Configuration des autorisations du kit SDK](su-sdk-permissions.md).

Pour créer un profil qui fonctionne avec les exemples de code AWS CLI et, choisissez l'une des options suivantes. Assurez-vous que le nom du profil que vous créez est `custom-labels-access`.
+ Utilisateurs gérés par IAM : suivez les instructions de la section [Basculer vers un rôle IAM (AWS CLI)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html). 
+ Identité du personnel (utilisateurs gérés par AWS IAM Identity Center) : suivez les instructions de la [section Configuration de l'interface de ligne de commande AWS à utiliser AWS IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html). Pour les exemples de code, nous recommandons d’utiliser un environnement de développement intégré (IDE), qui prend en charge le kit d’outils AWS permettant l’authentification via IAM Identity Center. Pour les exemples Java, voir [Commencer à créer avec Java](https://aws.amazon.com/developer/language/java/). Pour les exemples Java, voir [Commencer à créer avec Python](https://aws.amazon.com/developer/tools/#IDE_and_IDE_Toolkits). Pour plus d’informations, consultez [informations d’identification du IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html).

**Note**  
Vous pouvez utiliser du code pour obtenir des informations d’identification à court terme. Pour plus d’informations, consultez [Basculement vers un rôle IAM (AWS API)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_use_switch-role-api.html). Pour IAM Identity Center, obtenez les informations d’identification à court terme pour un rôle en suivant les instructions de la section [Obtenir les informations d’identification du rôle IAM pour l’accès à la CLI](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html). 

## Exécution de code dans AWS des environnements
<a name="su-sdk-aws-environments"></a>

Vous ne devez pas utiliser les informations d'identification utilisateur pour signer les appels du AWS SDK dans AWS des environnements tels que le code de production exécuté dans une AWS Lambda fonction. Au lieu de cela, configurez un rôle qui définit les autorisations dont votre code a besoin. Vous attachez ensuite le rôle à l’environnement dans lequel votre code s’exécute. La manière dont vous attachez le rôle et mettez à disposition les informations d’identification temporaires varie en fonction de l’environnement dans lequel votre code s’exécute :
+ AWS Lambda function — Utilisez les informations d'identification temporaires que Lambda fournit automatiquement à votre fonction lorsqu'elle assume le rôle d'exécution de la fonction Lambda. Les informations d’identification sont disponibles dans les variables d’environnement Lambda. Vous n’avez pas besoin d’indiquer de profil. Pour plus d’informations, consultez [Rôle d’exécution Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Amazon EC2  : utilisez le fournisseur d’informations d’identification du point de terminaison des métadonnées de l’instance Amazon EC2. Le fournisseur génère et actualise automatiquement les informations d’identification pour les rattacher à l’instance Amazon EC2 à l’aide du *profil d’instance* Amazon EC2. Pour plus d’informations, consultez [Utilisation d’un rôle IAM pour accorder des autorisations à des applications s’exécutant sur des instances Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html).
+ Amazon Elastic Container Service : utilisez le fournisseur d’informations d’identification du conteneur. Amazon ECS envoie et actualise les informations d’identification à un point de terminaison de métadonnées. Un *rôle IAM de tâche* que vous spécifiez fournit une stratégie pour gérer les informations d’identification utilisées par votre application. Pour plus d’informations consultez [Interaction avec les services AWS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).

Pour plus d’informations sur les fournisseurs d’informations d’identification, consultez la section [Fournisseurs d’informations d’identification standardisés](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).

# Configuration des autorisations du kit SDK
<a name="su-sdk-permissions"></a>

Pour utiliser les opérations du kit SDK Étiquettes personnalisées Amazon Rekognition, vous devez disposer d’autorisations pour accéder à l’API Étiquettes personnalisées Amazon Rekognition et au compartiment Amazon S3 utilisé pour l’entraînement des modèles.

**Topics**
+ [Octroi de droits d’utilisation du kit SDK](#su-grant-sdk-permissions)
+ [Mises à jour des politiques relatives à l'utilisation du AWS SDK](#su-sdk-policy-update)
+ [Attribution d’autorisations](#su-sdk-assign-permissions)

## Octroi de droits d’utilisation du kit SDK
<a name="su-grant-sdk-permissions"></a>

Nous vous recommandons d’accorder uniquement les autorisations nécessaires à l’exécution d’une tâche (autorisations de moindre privilège). Par exemple, pour appeler [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels.html), vous avez besoin d'une autorisation pour effectuer un appel`rekognition:DetectCustomLabels`. Pour connaître les autorisations relatives à une opération, consultez le [Guide de référence des API](https://docs.aws.amazon.com/rekognition/latest/APIReference/Welcome.html). 

Lorsque vous commencez à utiliser une application, il se peut que vous ne connaissiez pas les autorisations spécifiques dont vous avez besoin. C’est pourquoi vous pouvez commencer par des autorisations générales. Les stratégies gérées AWS fournissent les autorisations nécessaires pour vous aider à démarrer. Vous pouvez utiliser la politique `AmazonRekognitionCustomLabelsFullAccess` AWS gérée pour obtenir un accès complet à l'API Amazon Rekognition Custom Labels. Pour plus d'informations, consultez la [politique gérée par AWS : AmazonRekognitionCustomLabelsFullAccess](https://docs.aws.amazon.com/rekognition/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-custom-labels-full-access). Lorsque vous connaissez les autorisations dont votre application a besoin, réduisez les autorisations en définissant des politiques gérées par le client qui sont spécifiques à vos cas d’utilisation. Pour plus d’informations, consultez [Politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies). 

Pour attribuer des autorisations, consultez [Attribution d’autorisations](#su-sdk-assign-permissions).

## Mises à jour des politiques relatives à l'utilisation du AWS SDK
<a name="su-sdk-policy-update"></a>

Pour utiliser le AWS SDK avec la dernière version d'Amazon Rekognition Custom Labels, vous n'avez plus besoin d'autoriser Amazon Rekognition Custom Labels à accéder au compartiment Amazon S3 qui contient vos images de formation et de test. Si vous avez déjà ajouté des autorisations, vous n’avez pas besoin de les supprimer. Si vous le souhaitez, supprimez du compartiment toute stratégie dont le service pour le principal est `rekognition.amazonaws.com`. Par exemple :

```
"Principal": {
    "Service": "rekognition.amazonaws.com"
}
```

Pour plus d’informations, consultez [Utilisation des stratégies de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html).

## Attribution d’autorisations
<a name="su-sdk-assign-permissions"></a>

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

# Appel d’une opération Étiquettes personnalisées Amazon Rekognition
<a name="su-sdk-list-projects"></a>

Exécutez le code suivant pour vérifier que vous pouvez appeler l’API Étiquettes personnalisées Amazon Rekognition. Le code répertorie les projets de votre AWS compte, dans la AWS région actuelle. Si vous n’avez pas encore créé de projet, la réponse est vide, mais confirme que vous pouvez appeler l’opération `DescribeProjects`. 

En général, l’appel d’un exemple de fonction nécessite un client de kit AWS SDK Rekognition et tous les autres paramètres requis. Le client de kit AWS SDK est déclaré dans la fonction principale. 

Si le code échoue, vérifiez que l’utilisateur que vous utilisez dispose des autorisations adéquates. Vérifiez également que la AWS région que vous utilisez car les étiquettes personnalisées Amazon Rekognition n'est pas disponible dans toutes les régions. AWS 

**Pour appeler une opération Étiquettes personnalisées Amazon Rekognition**

1. Si ce n'est pas déjà fait, installez et configurez le AWS CLI et le AWS SDKs. Pour de plus amples informations, veuillez consulter [Étape 4 : configurer le AWS CLI et AWS SDKs](su-awscli-sdk.md).

1. Utilisez l’exemple de code suivant pour afficher vos projets.

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

   Utilisez la commande `describe-projects` pour répertorier les projets de votre compte.

   ```
   aws rekognition describe-projects \
   --profile custom-labels-access
   ```

------
#### [ Python ]

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   This example shows how to describe your Amazon Rekognition Custom Labels projects.
   If you haven't previously created a project in the current AWS Region,
   the response is an empty list, but does confirm that you can call an
   Amazon Rekognition Custom Labels operation.
   """
   from botocore.exceptions import ClientError
   import boto3
   
   def describe_projects(rekognition_client):
       """
       Lists information about the projects that are in in your AWS account
       and in the current AWS Region.
   
       : param rekognition_client: A Boto3 Rekognition client.
       """
       try:
           response = rekognition_client.describe_projects()
           for project in response["ProjectDescriptions"]:
               print("Status: " + project["Status"])
               print("ARN: " + project["ProjectArn"])
               print()
           print("Done!")
       except ClientError as err:
           print(f"Couldn't describe projects. \n{err}")
           raise
   
   
   def main():
       """
       Entrypoint for script.
       """
   
       session = boto3.Session(profile_name='custom-labels-access')
       rekognition_client = session.client("rekognition")
   
       describe_projects(rekognition_client)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.ArrayList;
   import java.util.List;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DatasetMetadata;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class Hello {
   
       public static final Logger logger = Logger.getLogger(Hello.class.getName());
   
       public static void describeMyProjects(RekognitionClient rekClient) {
   
           DescribeProjectsRequest descProjects = null;
   
           // If a single project name is supplied, build projectNames argument
   
           List<String> projectNames = new ArrayList<String>();
   
   
           descProjects = DescribeProjectsRequest.builder().build();
   
           // Display useful information for each project.
   
           DescribeProjectsResponse resp = rekClient.describeProjects(descProjects);
   
           for (ProjectDescription projectDescription : resp.projectDescriptions()) {
   
               System.out.println("ARN: " + projectDescription.projectArn());
               System.out.println("Status: " + projectDescription.statusAsString());
               if (projectDescription.hasDatasets()) {
                   for (DatasetMetadata datasetDescription : projectDescription.datasets()) {
                       System.out.println("\tdataset Type: " + datasetDescription.datasetTypeAsString());
                       System.out.println("\tdataset ARN: " + datasetDescription.datasetArn());
                       System.out.println("\tdataset Status: " + datasetDescription.statusAsString());
                   }
               }
               System.out.println();
           }
   
       }
   
       public static void main(String[] args) {
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
               
               // Describe projects
   
               describeMyProjects(rekClient);
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------