AWS CodeCommit n’est plus disponible pour les nouveaux clients. Les clients existants d’AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus

FAQ sur AWS CodeCommit

Questions d’ordre général

AWS CodeCommit est un service géré sécurisé et hautement évolutif de contrôle des sources qui permet aux équipes de collaborer facilement sur du code. Grâce à AWS CodeCommit, vous n'avez plus besoin d'exploiter votre propre système de contrôle de source ou de vous soucier du dimensionnement de son infrastructure. Vous pouvez également utiliser AWS CodeCommit pour stocker tous les éléments que vous souhaitez en toute sécurité, du code source aux fichiers binaires. En outre, cet outil fonctionne parfaitement avec les outils Git existants.

Git est un système de contrôle de version distribué open source. Pour utiliser les référentiels hébergés dans AWS CodeCommit, vous devez avoir recours à l'interface de ligne de commande Git (CLI) ou à n'importe quel client Git disponible. Pour en savoir plus sur Git, consultez la documentation Git. Pour en savoir plus sur l'utilisation d’AWS CodeCommit, consultez l'article Prise en main d’AWS CodeCommit.

AWS CodeCommit est conçu pour les développeurs de logiciels qui ont besoin d'un système de contrôle de source sécurisé, fiable et évolutif pour stocker et versionner leur code. De plus, AWS CodeCommit peut être utilisé par tous ceux qui cherchent un stockage de données entièrement géré, facile à utiliser et intégrant un contrôle des versions. Par exemple, les administrateurs informatiques peuvent utiliser AWS CodeCommit pour stocker leurs scripts et leurs configurations. Les concepteurs de sites Web peuvent se servir d'AWS CodeCommit pour stocker des pages HTML et des images.

AWS CodeCommit met à disposition un certain nombre de fonctionnalités qui ne sont pas disponibles dans d'autres systèmes de contrôle de source Git :

  • Entièrement géré : grâce à AWS CodeCommit, il n'est plus nécessaire d'héberger, d'entretenir, de sauvegarder et de dimensionner vos propres serveurs de contrôle de source.
  • Sécurisé : AWS CodeCommit chiffre automatiquement vos fichiers, aussi bien en transit qu'au repos. AWS CodeCommit est intégré à AWS Identity and Access Management (IAM), ce qui vous permet d'accorder des autorisations spécifiques aux utilisateurs pour vos référentiels.
  • Hautement disponible : AWS CodeCommit repose sur des systèmes AWS hautement évolutifs, redondants et durables tels qu'Amazon S3 et Amazon DynamoDB.
  • Évolutif : AWS CodeCommit vous permet de stocker n'importe quel nombre de fichiers et la taille des référentiels n'est pas limitée.
  • Cycle de vie de développement plus rapide : AWS CodeCommit conserve vos référentiels à proximité de vos environnements de création, de test et de production, au sein du cloud AWS. Cela vous permet d'augmenter la vitesse ainsi que la fréquence du cycle de vie de votre développement.

AWS CodeCommit est conçu pour le développement collaboratif de logiciels. Il gère des lots de modifications dans plusieurs fichiers, propose des ramifications parallèles et inclut la différenciation des versions. En revanche, le contrôle de version d'Amazon S3 prend en charge la restauration d'anciennes versions de fichiers individuels, mais pas le suivi des modifications par lot qui concernent plusieurs fichiers ou d'autres fonctionnalités requises pour le développement collaboratif de logiciels.

Utilisation d'AWS CodeCommit

Vous pouvez vous connecter à AWS Management Console, créer un référentiel et commencer à travailler avec celui-ci en utilisant Git. Si vous souhaitez obtenir une présentation de ce service, consultez l'article Démarrage, qui comprend un tutoriel détaillé.

Vous pouvez créer un référentiel depuis AWS Management Console ou via l'interface de ligne de commande AWS (AWS CLI), les kits SDK AWS, ou les API d’AWS CodeCommit.

Vous pouvez modifier vos fichiers directement depuis la console CodeCommit ou utiliser Git pour travailler avec le référentiel. Vous pouvez, par exemple, utiliser la commande git clone pour créer une copie locale du référentiel hébergé dans AWS CodeCommit. Effectuez les modifications souhaitées dans les fichiers locaux et utilisez la commande git commit lorsque vous êtes prêt à enregistrer ces modifications. Pour terminer, utilisez la commande git push pour charger les modifications apportées au référentiel hébergé dans AWS CodeCommit. Pour obtenir des instructions détaillées, consultez l'article Getting started with AWS CodeCommit.

Git vous permet d'importer n'importe quel référentiel Git existant dans AWS CodeCommit. Pour les autres référentiels, comme Subversion et Perforce, vous pouvez utiliser un outil d'importation Git pour les migrer d'abord vers un référentiel Git. Pour obtenir des instructions détaillées sur l'importation de référentiels Git, voir Migrer un référentiel existant vers AWS CodeCommit. Pour obtenir des instructions détaillées sur l’importation de contenu local ou non versionné, consultez la documentation sur la migration de Git.

Actuellement, AWS CodeCommit prend en charge les commandes clone, pull, push et fetch.

Oui. AWS CodeCommit peut être utilisé avec des référentiels Git incluant des sous-modules.

Pour en savoir plus sur les limites du service, consultez l'article Limites.

La taille d'un fichier unique dans un référentiel ne peut dépasser 2 Go.

Si vous avez réalisé une copie locale du référentiel grâce à la commande git clone, vous pouvez l'utiliser pour restaurer vos données. Si vous souhaitez effectuer des sauvegardes supplémentaires, vous avez plusieurs options. L'une d'entre elles consiste à installer Git sur votre serveur de sauvegarde et à exécuter une tâche planifiée qui utilise la commande git clone pour réaliser des instantanés réguliers de votre référentiel. Vous pouvez utiliser la commande git pull à la place de git clone si vous souhaitez seulement copier les modifications progressives. Veuillez noter que ces opérations peuvent engendrer des frais de requête et/ou d'utilisateur supplémentaires en fonction de la configuration de votre serveur de sauvegarde et de la fréquence d'interrogation.

La suppression d'un référentiel AWS CodeCommit est une opération définitive qui ne peut être annulée. Pour restaurer un référentiel supprimé, vous devrez le recréer et utiliser soit une sauvegarde, soit une copie locale générée à partir d'un clonage complet pour charger les données. Nous vous recommandons de suivre les politiques IAM et d'utiliser la protection MFA pour limiter le nombre d'utilisateurs capables d'effacer des référentiels. Pour plus d’informations, consultez la question Puis-je utiliser AWS Identity and Access Management (IAM) pour gérer l'accès à AWS CodeCommit ? dans la section Sécurité de cette FAQ.

CodeCommit prend en charge les examens du code et vous permet de définir des autorisations sur les branches de votre code. Consultez notre documentation pour obtenir de l’aide sur les examens du code ou les autorisations au niveau des branches.

Les systèmes d'intégration continue peuvent être configurés pour utiliser Git afin d'extraire le code d'AWS CodeCommit. Pour des exemples d'utilisations de systèmes d'intégration continue avec AWS CodeCommit, consultez notre article de blog sur l'intégration d’AWS CodeCommit avec Jenkins.

Dans la console Amazon SNS, vous pouvez créer une rubrique SNS avec un point de terminaison HTTP et l'URL désirée pour le webhook. Dans la console d'AWS CodeCommit, vous pouvez alors associer cette rubrique SNS à un événement de référentiel à l'aide de déclencheurs. De plus, les clients qui utilisent AWS Chatbot peuvent configurer des notifications à envoyer à leurs canaux Slack ou à leurs salons de discussion Amazon Chime. Pour plus d'informations, visitez cette page.

Oui. Vous pouvez examiner les événements CodeCommit récents, y compris les opérations Git et les appels d’API, dans la console AWS CloudTrail. Vous pouvez créer une piste et consigner les événements dans un compartiment Amazon S3 pour en conserver une trace. Pour plus d'informations, consultez Journalisation des appels d'API AWS CodeCommit avec AWS CloudTrail.

Sécurité

Oui. AWS CodeCommit prend en charge les autorisations au niveau des ressources. Vous pouvez spécifier les droits de chaque utilisateur pour chaque référentiel AWS CodeCommit. Vous pouvez également définir AWS Multi-Factor Authentication (MFA) pour une action sur CodeCommit. Cela vous permet de protéger davantage vos référentiels contre les actions de destruction, comme la suppression. En plus des API AWS CodeCommit, vous pouvez également définir git pull et git push en tant qu'actions pour contrôler l'accès à partir des clients Git. Par exemple, vous pouvez créer un utilisateur en lecture seule pour un référentiel en permettant à l'utilisateur d'utiliser la commande git pull, mais pas la commande git push. Pour en savoir plus sur l’utilisation d’IAM avec AWS CodeCommit, consultez l’article Authentification et contrôle des accès avec AWS CodeCommit. Pour de plus amples informations sur l'authentification de l'accès aux API grâce à MFA, consultez l'article Configuration de l’accès aux API protégé par MFA.

Vous pouvez utiliser le protocole HTTPS ou le protocole SSH, ou bien les deux pour communiquer avec AWS CodeCommit. Pour utiliser le protocole HTTPS, installez d'abord l'interface de ligne de commande AWS. L'interface de ligne de commande AWS installe un assistant d'identifiants Git, qui peut être configuré avec les informations d'identification AWS. Elle signe automatiquement toutes les requêtes HTTPS envoyées à AWS CodeCommit en utilisant la spécification de signature Signature Version 4. Pour utiliser le protocole SSH, les utilisateurs doivent créer leurs paires de clés publiques-privées et ajouter leurs clés publiques à leurs utilisateurs IAM. La clé privée chiffre la communication avec AWS CodeCommit. Pour obtenir des instructions détaillées sur la configuration des accès HTTPS et SSH, consultez la page Configuration d’AWS CodeCommit.

Vous devrez ouvrir l'accès sortant vers un point de terminaison de service AWS CodeCommit sur le port 22 (SSH) ou sur le port 443 (HTTPS).

Les référentiels sont chiffrés de manière automatique au repos. Aucune action n'est nécessaire de la part du client. AWS CodeCommit utilise AWS Key Management Service (KMS) pour chiffrer les référentiels. Lors de la création de votre premier référentiel, une clé CodeCommit gérée par AWS est créée dans votre compte AWS. Pour plus d'informations, consultez l'article Chiffrement pour les référentiels AWS CodeCommit Repositories.

Oui. Vous pouvez créer un rôle IAM dans votre compte AWS pour déléguer l'accès à un référentiel aux utilisateurs IAM dans d'autres comptes AWS. Les utilisateurs IAM peuvent alors configurer leur interface de ligne de commande AWS pour utiliser AWS Security Token Service (STS) et endosser le rôle lorsqu'ils exécutent les commandes. Pour plus d'informations, consultez la section Attribution d’un rôle dans la documentation de l'interface de ligne de commande AWS.

Régions

Pour plus d'informations sur la disponibilité de CodeCommit par région, reportez-vous à la section relative aux produits et services régionaux.

Facturation

AWS CodeCommit coûte 1 USD par utilisateur actif et par mois. Pour chaque utilisateur actif, votre compte recevra 10 Go de stockage supplémentaires et 2 000 requêtes Git pour le mois en cours. L'espace de stockage et les requêtes Git non utilisés ne sont pas transférables d'un mois à l'autre. Si vous avez besoin de davantage de stockage ou de requêtes Git pour vos utilisateurs, un stockage supplémentaire sera facturé 0,06 USD par Go et par mois. Les requêtes Git seront, quant à elles, facturées 0,001 USD l'unité. Les utilisateurs peuvent stocker autant de référentiels Git qu'ils le souhaitent. Votre utilisation est calculée chaque mois pour l'ensemble des régions. Elle est ensuite automatiquement reportée sur votre facture. Pour plus d'informations, consultez la page Tarification.

Un utilisateur actif correspond à un compte AWS Identity (utilisateur/rôle IAM, utilisateur fédéré ou compte racine) qui accède aux serveurs AWS CodeCommit pendant le mois, soit par des requêtes Git ou en utilisant l'AWS Management Console. Un serveur qui accède à CodeCommit par le biais d'une identité AWS sera comptabilisé comme un utilisateur actif.

Le terme requête Git désigne toutes les requêtes push ou pull qui transfèrent des objets vers ou depuis le référentiel. La requête n'est pas comptabilisée dans le nombre de requêtes Git qui vous est alloué si aucun objet n'est transféré, car les branches locales et distantes sont à jour.