

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.

# AWS CodeArtifact authentification et jetons
<a name="tokens-authentication"></a>

CodeArtifact oblige les utilisateurs à s'authentifier auprès du service afin de publier ou de consommer des versions de package. Vous devez vous authentifier auprès du CodeArtifact service en créant un jeton d'autorisation à l'aide de vos AWS informations d'identification. Pour créer un jeton d'autorisation, vous devez disposer des autorisations appropriées. Pour connaître les autorisations nécessaires à la création d'un jeton d'autorisation, consultez l'`GetAuthorizationToken`entrée dans le[AWS CodeArtifact référence aux autorisations](auth-and-access-control-permissions-reference.md). Pour des informations plus générales sur CodeArtifact les autorisations, voir[Comment AWS CodeArtifact fonctionne avec IAM](security_iam_service-with-iam.md).

Pour récupérer un jeton d'autorisation CodeArtifact, vous devez appeler l'[GetAuthorizationToken API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html). À l'aide de AWS CLI, vous pouvez appeler `GetAuthorizationToken` avec la `get-authorization-token` commande `login` ou.

**Note**  
Les utilisateurs root ne peuvent pas appeler`GetAuthorizationToken`.
+ `aws codeartifact login`: Cette commande facilite la configuration des gestionnaires de packages courants à utiliser CodeArtifact en une seule étape. L'appel permet de `login` récupérer un jeton `GetAuthorizationToken` et de configurer votre gestionnaire de packages avec le jeton et le point de terminaison de CodeArtifact dépôt correct. Les gestionnaires de packages de support sont les suivants :
  + dotnet
  + npm
  + pépite
  + pip
  + rapide
  + ficelle
+ `aws codeartifact get-authorization-token`: Pour les gestionnaires de packages non pris en charge par`login`, vous pouvez appeler `get-authorization-token` directement votre gestionnaire de packages puis le configurer avec le jeton selon vos besoins, par exemple en l'ajoutant à un fichier de configuration ou en le stockant dans une variable d'environnement.

CodeArtifact les jetons d'autorisation sont valides pendant une période par défaut de 12 heures. Les jetons peuvent être configurés avec une durée de vie comprise entre 15 minutes et 12 heures. Lorsque la durée de vie expire, vous devez récupérer un autre jeton. La durée de vie du jeton commence `login` ou `get-authorization-token` est appelée.

Si `login` ou `get-authorization-token` est appelé alors que vous assumez un rôle, vous pouvez configurer la durée de vie du jeton pour qu'elle soit égale au temps restant de la durée de session du rôle en définissant la valeur de `--duration-seconds` to`0`. Sinon, la durée de vie du jeton est indépendante de la durée de session maximale du rôle. Supposons, par exemple, que vous appeliez `sts assume-role` et spécifiez une durée de session de 15 minutes, puis que vous appelez `login` pour récupérer un jeton CodeArtifact d'autorisation. Dans ce cas, le jeton est valide pendant toute la période de 12 heures, même si celle-ci est supérieure à la durée de session de 15 minutes. Pour plus d'informations sur le contrôle de la durée des sessions, consultez la section [Utilisation des rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) dans le guide de l'*utilisateur IAM*.

## Jetons créés avec la `login` commande
<a name="auth-token-login"></a>

La `aws codeartifact login` commande récupérera un jeton `GetAuthorizationToken` et configurera votre gestionnaire de packages avec le jeton et le point de terminaison du CodeArtifact référentiel correct.

Le tableau suivant décrit les paramètres de la `login` commande.


****  

<table>
<thead>
  <tr><th>Paramètre</th><th>Obligatoire</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td>`--tool`</td><td>Oui</td><td>Le gestionnaire de packages auprès duquel s'authentifier. Les valeurs possibles sont `dotnet` `npm``nuget`,`pip`, `swift` et`twine`.</td></tr>
  <tr><td>`--domain`</td><td>Oui</td><td>Le nom de domaine auquel appartient le référentiel.</td></tr>
  <tr><td>`--domain-owner`</td><td>Non</td><td>L'ID du propriétaire du domaine. Ce paramètre est obligatoire si vous accédez à un domaine appartenant à un AWS compte auquel vous n'êtes pas authentifié. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).</td></tr>
  <tr><td>`--repository`</td><td>Oui</td><td>Nom du référentiel auprès duquel s'authentifier.</td></tr>
  <tr><td>`--duration-seconds`</td><td>Non</td><td>Durée, en secondes, pendant laquelle les informations de connexion sont valides. La valeur minimale est 900\* et la valeur maximale est 43200.</td></tr>
  <tr><td>`--namespace`</td><td>Non</td><td>Associe un espace de noms à votre outil de référentiel.</td></tr>
  <tr><td>`--dry-run`</td><td>Non</td><td>Imprimez uniquement les commandes qui seront exécutées pour connecter votre outil à votre référentiel sans apporter de modifications à votre configuration.</td></tr>
  <tr><td colspan="3">\*Une valeur de 0 est également valide lors d'un appel `login` en assumant un rôle. L'appel `login` avec `--duration-seconds 0` crée un jeton dont la durée de vie est égale au temps restant dans la durée de session d'un rôle assumé.</td></tr>
</tbody>
</table>


L'exemple suivant montre comment récupérer un jeton d'autorisation à l'aide de la `login` commande.

```
aws codeartifact login \
    --tool {{dotnet | npm | nuget | pip | swift | twine}} \
    --domain {{my_domain}} \
    --domain-owner {{111122223333}} \
    --repository {{my_repo}}
```

Pour obtenir des instructions spécifiques sur l'utilisation de la `login` commande avec npm, consultez[Configurer et utiliser npm avec CodeArtifact](npm-auth.md). Pour Python, voir[Utilisation CodeArtifact avec Python](using-python.md).

## Autorisations requises pour appeler l'`GetAuthorizationToken`API
<a name="get-auth-token-permissions"></a>

Les autorisations `sts:GetServiceBearerToken` et les `codeartifact:GetAuthorizationToken` autorisations sont requises pour appeler l' CodeArtifact `GetAuthorizationToken`API.

Pour utiliser un gestionnaire de packages avec un CodeArtifact référentiel, votre utilisateur ou rôle IAM doit l'autoriser`sts:GetServiceBearerToken`. Bien qu'`sts:GetServiceBearerToken`elle puisse être ajoutée à une politique de ressources de CodeArtifact domaine, l'autorisation n'aura aucun effet sur cette politique.

## Tokens créés avec l'`GetAuthorizationToken`API
<a name="get-auth-token-api"></a>

Vous pouvez appeler `get-authorization-token` pour récupérer un jeton d' CodeArtifactautorisation.

```
aws codeartifact get-authorization-token \
    --domain {{my_domain}} \
    --domain-owner {{111122223333}} \
    --query authorizationToken \
    --output text
```

Vous pouvez modifier la durée de validité d'un jeton à l'aide de l'`--duration-seconds`argument. La valeur minimale est 900 et la valeur maximale est 43200. L'exemple suivant crée un jeton qui durera 1 heure (3 600 secondes). 

```
aws codeartifact get-authorization-token \
    --domain {{my_domain}} \
    --domain-owner {{111122223333}} \
    --query authorizationToken \
    --output text \
    --duration-seconds {{3600}}
```

Si vous appelez `get-authorization-token` en assumant un rôle, la durée de vie du jeton est indépendante de la durée de session maximale du rôle. Vous pouvez configurer le jeton pour qu'il expire lorsque la durée de session du rôle supposé expire en le définissant `--duration-seconds` sur 0.

```
aws codeartifact get-authorization-token \
    --domain {{my_domain}} \
    --domain-owner {{111122223333}} \
    --query authorizationToken \
    --output text \
    --duration-seconds {{0}}
```

Consultez la documentation suivante pour plus d'informations :
+ Pour obtenir des conseils sur les jetons et les variables d'environnement, consultez[Transmettre un jeton d'authentification à l'aide d'une variable d'environnement](#env-var).
+ Pour les utilisateurs de Python, voir [Configurer pip sans la commande de connexion](python-configure-pip.md#python-configure-without-pip) ou[Configurez et utilisez Twine avec CodeArtifact](python-configure-twine.md).
+ Pour les utilisateurs de Maven, voir [Utiliser CodeArtifact avec Gradle](maven-gradle.md) ou[Utiliser CodeArtifact avec MVN](maven-mvn.md).
+ Pour les utilisateurs de npm, voir[Configuration de npm sans utiliser la commande de connexion](npm-auth.md#configuring-npm-without-using-the-login-command).

## Transmettre un jeton d'authentification à l'aide d'une variable d'environnement
<a name="env-var"></a>

AWS CodeArtifact utilise des jetons d'autorisation fournis par l'`GetAuthorizationToken`API pour authentifier et autoriser les demandes provenant d'outils de compilation tels que Maven et Gradle. Pour plus d'informations sur ces jetons d'authentification, consultez[Tokens créés avec l'`GetAuthorizationToken`API](#get-auth-token-api).

Vous pouvez stocker ces jetons d'authentification dans une variable d'environnement qui peut être lue par un outil de génération pour obtenir le jeton dont il a besoin pour récupérer des packages depuis un CodeArtifact référentiel ou y publier des packages. 

Pour des raisons de sécurité, cette approche est préférable au stockage du jeton dans un fichier où il pourrait être lu par d'autres utilisateurs ou processus, ou enregistré accidentellement dans le contrôle de source.

1. Configurez vos AWS informations d'identification comme décrit dans[Installez ou mettez à niveau, puis configurez le AWS CLI](get-set-up-install-cli.md). 

1. Définissez la variable d'environnement :`CODEARTIFACT_AUTH_TOKEN`
**Note**  
Dans certains scénarios, il n'est pas nécessaire d'inclure l'`--domain-owner`argument. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + macOS ou Linux :

     ```
     export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text`
     ```
   + Windows (en utilisant l'interface de commande par défaut) :

     ```
     for /f %i in ('aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
     ```
   + Fenêtres PowerShell :

     ```
     $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text
     ```

## Révocation des jetons CodeArtifact d'autorisation
<a name="revoke-access"></a>

 Lorsqu'un utilisateur authentifié crée un jeton pour accéder aux CodeArtifact ressources, ce jeton dure jusqu'à la fin de sa période d'accès personnalisable. La période d'accès par défaut est de 12 heures. Dans certains cas, vous souhaiterez peut-être révoquer l'accès à un jeton avant l'expiration de la période d'accès. Vous pouvez révoquer l'accès aux CodeArtifact ressources en suivant ces instructions.

 Si vous avez créé le jeton d'accès à l'aide d'informations d'identification de sécurité temporaires, telles que *des rôles assumés* ou un *accès utilisateur fédéré*, vous pouvez révoquer l'accès en mettant à jour une politique IAM afin de refuser l'accès. Pour plus d'informations, consultez la section [Désactivation des autorisations pour les informations d'identification de sécurité temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_disable-perms.html) dans le guide de l'*utilisateur IAM*. 

 Si vous avez utilisé des informations d'identification utilisateur IAM à long terme pour créer le jeton d'accès, vous devez modifier la politique de l'utilisateur pour refuser l'accès ou supprimer l'utilisateur IAM. Pour plus d'informations, voir [Modification des autorisations d'un utilisateur IAM ou Suppression d'un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting). 