Aller au contenu principal

Intégrer Amazon ECR

Sécurisez vos applications conteneurisées en surveillant Amazon Elastic Container Registry à la recherche de secrets exposés dans les images de conteneurs et les configurations Docker.

Pourquoi surveiller Amazon ECR ?​

Amazon ECR sert de passerelle entre votre pipeline de développement et vos environnements de production AWS. Les images de conteneurs dans ECR contiennent souvent des identifiants AWS, des chaînes de connexion RDS et des clés de compte de service qui, lorsqu'ils sont exposés, peuvent accorder aux attaquants un accès complet à votre infrastructure cloud, vos bases de données et les données sensibles de vos clients sur plusieurs services AWS.

Fonctionnalités​

FonctionnalitéPrise en chargeDétails
Scan historique✅ (Pris en charge)Analyser les images existantes et leurs couches
Scan incrémental✅ (Pris en charge)Scan planifié régulier pour les nouveaux contenus
Périmètre surveillé✅ (Pris en charge)Surveillance granulaire de vos dépôts
Périmètre d'équipe✅ (Pris en charge)Contrôle d'accès basé sur les équipes
Vérification de présence❌ (Non pris en charge)Toutes les occurrences considérées comme présentes
Visibilité des sources❌ (Non pris en charge)Toutes les sources sont considérées comme privées
Pièces jointesN/ANon applicable pour les registres de conteneurs

Ce que nous scannons :

  • Toutes les couches d'images de conteneurs
  • Les Dockerfiles et les configurations de build
  • Les variables d'environnement dans les métadonnées des images
info

Cette intégration scanne automatiquement vos dépôts surveillés, en téléchargeant les images Docker, ce qui peut engendrer des coûts de bande passante. Pour optimiser les coûts et réduire les faux positifs, sélectionnez soigneusement les sources à surveiller et utilisez notre fonctionnalité d'exclusion de chemins de fichiers.

info

Prérequis de plan : Disponible pour le plan GitGuardian Enterprise. Essayez-le gratuitement avec une période d'essai de 30 jours - tous les incidents détectés restent accessibles après la fin de l'essai.
Couverture des détecteurs : Pour minimiser les faux positifs, Generic High Entropy Secret et Generic Password sont désactivés. Tous les autres détecteurs sont activés.

Configurer votre intégration Amazon ECR​

Prérequis :

  • Compte Owner ou Manager sur votre Dashboard GitGuardian
  • Permissions AWS IAM pour créer des rôles et des politiques dans votre compte AWS

GitGuardian s'intègre à Amazon ECR en utilisant des rôles IAM avec un accès en lecture seule à vos dépôts.

Vous pouvez installer GitGuardian sur plusieurs instances Amazon ECR pour surveiller vos dépôts. Pour configurer l'intégration Amazon ECR, vous devez créer un rôle IAM dans votre compte AWS, et le configurer avec un AWS External ID généré par GitGuardian pour votre workspace.

Connecter GitGuardian avec votre compte Amazon ECR​

  1. Dans la plateforme GitGuardian, naviguez vers la page d'intégration des Sources
  2. Cliquez sur Install à côté d'Amazon ECR dans la section Container registries Amazon ECR install
  3. Cliquez sur Install sur la page d'intégration Amazon ECR
  4. Récupérez le Role name. Par défaut, il s'agit de GitGuardianECRScanning, mais vous pouvez le personnaliser. Ce rôle permet à GitGuardian de scanner vos dépôts ECR.
  5. Pour les utilisateurs SaaS uniquement : récupérez l'AWS External ID, unique à votre workspace. Vous en aurez besoin lors de la définition de la politique de confiance pour le rôle IAM. Gardez cet ID confidentiel !
  6. Cliquez sur Connect with Amazon ECR pour lier GitGuardian à votre compte Amazon ECR. Amazon ECR install
  7. Créez un nouveau rôle IAM dans la Console IAM d'AWS pour GitGuardian.

Pour les utilisateurs SaaS :

  1. Sélectionnez AWS account pour le type d'entité de confiance, et choisissez Another AWS account.
  2. Saisissez l'Account ID de GitGuardian : 762233768605
  3. Sélectionnez Require external ID, saisissez votre AWS External ID (5) et veillez à laisser Require MFA désactivé. Pour plus de détails, consultez comment utiliser un external ID lors de l'octroi d'accès à vos ressources AWS à un tiers dans la documentation AWS.
  4. Cliquez sur Next.
  5. Attachez le rôle AmazonEC2ContainerRegistryReadOnly pour activer la collecte des ressources.
  6. Cliquez sur Next.
  7. Nommez le rôle en utilisant le Role name (4) défini précédemment (GitGuardianECRScanning par défaut), et fournissez une description.
  8. Cliquez sur Create Role.

Pour les utilisateurs Self-Hosted :

  1. Sélectionnez Web Identity pour le type d'entité de confiance. Et cliquez sur Create New
  2. Sélectionnez OpenID Connect,
  3. Utilisez https://the-url-of-your-gitguardian.com/exposed comme Provider URL, et sts.amazonaws.com comme Audience
  4. Cliquez sur Add provider et utilisez-le pour le rôle.
  5. Toujours dans la section Web identity, cliquez sur Add condition, et utilisez :
  • Key : the-url-of-your-gitguardian.com/exposed:sub (c'est-à-dire le claim sub du token JWT)
  • Condition : StringEquals
  • Value : gitguardian-account-id:YOUR_GITGUARDIAN_ACCOUNT_ID
  1. Attachez le rôle AmazonEC2ContainerRegistryReadOnly pour activer la collecte des ressources.
  2. Cliquez sur Next.
  3. Nommez le rôle en utilisant le Role name (4) défini précédemment (GitGuardianECRScanning par défaut), et fournissez une description.
  4. Cliquez sur Create Role.

Voici la structure résultante de la politique de confiance pour les utilisateurs On-Prem :

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRoleWithWebIdentity",
"Principal": {
"Federated": "arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/the-url-of-your-gitguardian.com/exposed"
},
"Condition": {
"StringEquals": {
"the-url-of-your-gitguardian.com/exposed:sub": "gitguardian-account-id:YOUR_GITGUARDIAN_ACCOUNT_ID",
"the-url-of-your-gitguardian.com/exposed:aud": "sts.amazonaws.com"
}
}
}
]
}

Enregistrer les informations de votre compte Amazon ECR​

  1. Récupérez votre Region
    Amazon ECR Region

  2. Copiez votre Account ID
    Amazon ECR Account ID

  3. Retournez sur la plateforme GitGuardian pour enregistrer les informations de votre compte Amazon ECR

  4. Saisissez votre Region name (par ex. : us-west-2)

  5. Collez votre Account ID

  6. Cliquez sur Install Amazon ECR integration

  7. Personnalisez votre périmètre surveillé :

    • Monitor specific Amazon ECR repositories (Recommandé)
      • Aucun dépôt n'est surveillé par défaut, vous devrez les sélectionner manuellement.
      • Les dépôts nouvellement créés ne seront pas surveillés par défaut. Vous pouvez ajuster ce paramètre à tout moment.
      • Recommandé pour optimiser vos coûts de bande passante.
    • Monitor the entire Amazon ECR instance
      • Tous les dépôts sont surveillés par défaut avec un scan historique complet déclenché automatiquement.
      • Les dépôts nouvellement créés seront surveillés par défaut. Vous pouvez ajuster ce paramètre à tout moment.

    Amazon ECR Default Monitored Perimeter

C'est terminé ! Votre instance Amazon ECR est maintenant installée, et GitGuardian surveille toutes les images Docker de vos dépôts sélectionnés à la recherche de secrets.

Personnaliser votre périmètre surveillé​

Pour personnaliser les dépôts surveillés, naviguez vers vos paramètres Amazon ECR.

  1. Sélectionnez/désélectionnez les dépôts pour les inclure ou les exclure de la surveillance
  2. Confirmez en cliquant sur Update monitored perimeter Amazon ECR Custom Monitored Perimeter

Surveillance automatique des dépôts​

Vous pouvez activer ou désactiver l'ajout automatique des dépôts nouvellement créés à votre périmètre surveillé en basculant l'option dans vos paramètres Amazon ECR. Amazon ECR Automatic Repository Monitoring

Désinstaller votre instance Amazon ECR​

Pour désinstaller une instance Amazon ECR :

  1. Dans la plateforme GitGuardian, naviguez vers la page d'intégration des Sources
  2. Cliquez sur Edit à côté d'Amazon ECR dans la section Container registries
  3. Cliquez sur l'icône de corbeille à côté de l'instance Amazon ECR à désinstaller
  4. Confirmez en cliquant sur Yes, uninstall dans la fenêtre de confirmation Amazon ECR uninstall

C'est terminé ! Votre instance Amazon ECR est maintenant désinstallée.

Chemins exclus​

GitGuardian exclut automatiquement les fichiers de l'analyse si leurs chemins contiennent l'une de ces expressions régulières :

/__pypackages__/
/\.venv/
/\.tox/
/site-packages/
/venv/
distutils/command/register\.py
python.*/awscli/examples/
python.*/dulwich/(tests|contrib/test_)
python.*/hgext/bugzilla\.py
python.*/mercurial/util\.py
python.*/test/certdata/
python.*/urllib/request\.py
python.*/pygments/lexers/
/cryptography.+/tests/.+(fixtures|test)_.+\.py
/python.+pygpgme.+/tests/
botocore/data/.+/(examples|service)-.+\.json
usr(/local)?/lib/python.+/dist-packages
/libevent.+/info/test/test/
/conda-.+-py.+/info/test/tests.+/test_.+\.py
/python[^/]+/test/
/man/man5/kdc\.conf\.5
erlang.*(inets|ssl).*/examples/
/gems/.*httpclient.*/(test|sample)/
/gems/.*faraday.*/
/vendor/bundle/
/\.gem/
ruby-[^/]+/test/openssl/
/(g|G)o/src/cmd/go/internal/.*_test\.go
/(g|G)o/src/cmd/go/internal/.*/testdata/
/(g|G)o/src/cmd/go/testdata/
/(g|G)o/src/crypto/x509/platform_root_key\.pem
/(G|g)o/src/crypto/(tls|x509)/.*_test\.go
/(g|G)o/src/net/(url|http)/.*_test\.go
src/github.com/DataDog/datadog-agent/.*test.*\.go
google/internal/.*_test\.go
golang.org.*oauth2@.*/.*\.go
/flutter/.*/packages/flutter_tools/test/data/
/flutter/.*/examples/image_list/lib
/\.pub-cache
etc/ssl/private/ssl-cert-snakeoil\.key
perl.*Cwd\.pm
ansible/.*/tests/(integration|unit)/
ansible/.*/test/awx
ansible/collections/ansible_collections/.*/plugins/
/curl/.*/(tests|docs|lib/url\.c)
/doc/wget.+/NEWS
dist/awscli/examples/
usr(/local)?/lib/aws-cli/examples/
/google-cloud-sdk/(lib|platform)/
\.git/modules/third[-_]?party/
\.git/modules/external/
/\.npm/_cacache
/node_modules/
/\.parcel-cache/
/\.yarn/cache/
/\.m2/
/\.ivy2/cache/
/\.mix/
/\.hex/
/composer/cache/
/\.nuget/packages/
/libgpg-error/errorref\.txt
/Homebrew/Library/Taps/
/tcl[^/]+/http-.+\.tm
/tcl[^/]+/[^/]+/http-.+\.tm
usr/share/lua/[^/]+/posix/init\.lua
openssl/openssl-[^/]+/test/recipes/
usr/share/doc/libssl-doc/demos/
boringssl/src/third_party/[^/]+test[^/]+/[^/]+_test\.json

Considérations supplémentaires pour Self-Hosted​

Pour les instances GitGuardian Self-Hosted, la fréquence de scan peut être configurée dans l'Admin Area :

  • Unité d'intervalle de temps : secondes
  • Valeur par défaut : 86400 (1 jour)
  • Valeur minimale : 1800 (30 minutes)

Confidentialité​

Les lois et réglementations propres à chaque pays peuvent vous obliger à informer vos utilisateurs que vos dépôts sont scannés à la recherche de secrets. Voici une suggestion de message que vous pourriez utiliser :

Dans le cadre de notre processus interne de sécurité de l'information, l'entreprise scanne ses dépôts à la recherche de fuites potentielles de secrets à l'aide de GitGuardian. Toutes les données collectées seront traitées dans le but de détecter d'éventuelles fuites. Pour en savoir plus sur la façon dont nous gérons vos données personnelles et pour exercer vos droits, veuillez consulter notre avis de confidentialité employé/partenaire. Veuillez noter que seuls les dépôts relatifs à l'activité et aux affaires de l'entreprise peuvent être surveillés et que les utilisateurs doivent s'abstenir de partager des données personnelles ou sensibles non pertinentes pour l'objet du dépôt.