AWS CodeArtifact authentification et jetons - CodeArtifact

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

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'GetAuthorizationTokenentrée dans leAWS CodeArtifact référence aux autorisations. Pour des informations plus générales sur CodeArtifact les autorisations, voirComment AWS CodeArtifact fonctionne avec IAM.

Pour récupérer un jeton d'autorisation CodeArtifact, vous devez appeler le GetAuthorizationToken API. À l'aide de AWS CLI, vous pouvez appeler GetAuthorizationToken avec la get-authorization-token commande login ou.

Note

Les utilisateurs root ne peuvent pas appelerGetAuthorizationToken.

  • 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 parlogin, 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 à la durée de session restante du rôle en définissant la valeur de --duration-seconds to0. 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 IAM des rôles dans le guide de IAM l'utilisateur.

Jetons créés avec la login commande

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.

Paramètre Obligatoire Description

--tool

Oui

Le gestionnaire de packages auprès duquel s'authentifier. Les valeurs possibles sont dotnetnpm,nuget,pip, swift ettwine.

--domain

Oui

Le nom de domaine auquel appartient le référentiel.

--domain-owner

Non

L'ID du propriétaire du domaine. Ce paramètre est obligatoire si vous accédez à un domaine appartenant à un AWS compte auprès duquel vous n'êtes pas authentifié. Pour de plus amples informations, veuillez consulter Domaines multi-comptes.

--repository

Oui

Nom du référentiel auprès duquel s'authentifier.

--duration-seconds

Non

Durée, en secondes, pendant laquelle les informations de connexion sont valides. La valeur minimale est 900* et la valeur maximale est 43200.

--namespace

Non

Associe un espace de noms à votre outil de référentiel.

--dry-run

Non

Imprimez uniquement les commandes qui seront exécutées pour connecter votre outil à votre référentiel sans apporter de modifications à votre configuration.

*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é.

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, consultezConfigurer et utiliser npm avec CodeArtifact. Pour Python, voirEn utilisantCodeArtifactavec Python.

Autorisations requises pour appeler le GetAuthorizationToken API

Les autorisations sts:GetServiceBearerToken et les codeartifact:GetAuthorizationToken autorisations sont requises pour appeler le CodeArtifact GetAuthorizationTokenAPI.

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

Jetons créés avec le GetAuthorizationToken API

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-secondsargument. 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 :

Transmettre un jeton d'authentification à l'aide d'une variable d'environnement

AWS CodeArtifact utilise des jetons d'autorisation fournis par le GetAuthorizationToken API pour authentifier et autoriser les demandes provenant d'outils de construction tels que Maven et Gradle. Pour plus d'informations sur ces jetons d'authentification, consultezJetons créés avec le GetAuthorizationToken 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 dansInstallez ou mettez à niveau, puis configurez AWS CLI.

  2. Définissez la variable d'environnement :CODEARTIFACT_AUTH_TOKEN

    Note

    Dans certains scénarios, il n'est pas nécessaire d'inclure l'--domain-ownerargument. Pour de plus amples informations, veuillez consulter Domaines multi-comptes.

    • 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

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 IAM politique de refus d'accès. Pour plus d'informations, consultez la section Désactivation des autorisations pour les informations d'identification de sécurité temporaires dans le guide de IAM l'utilisateur.

Si vous avez utilisé des informations IAM d'identification utilisateur à 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'IAMutilisateur. Pour plus d'informations, voir Modification des autorisations d'un IAM utilisateur ou Suppression d'un IAM utilisateur.