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 configurations Docker.

Pourquoi surveiller Amazon ECR ?

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

Capacités

FonctionnalitéSupportDétails
Analyse historique✅ (Pris en charge)Analyser les images existantes et leurs couches
Analyse incrémentale✅ (Pris en charge)Analyse planifiée régulière pour le nouveau contenu
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 l'équipe
Vérification de présence❌ (Non pris en charge)Toutes les occurrences sont considérées comme présentes
Visibilité de la source❌ (Non pris en charge)Toutes les sources sont considérées comme privées
Pièces jointesN/ANon applicable pour les container registries

Ce que nous analysons :

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

Cette intégration analyse automatiquement vos dépôts surveillés, téléchargeant des images Docker qui peuvent entraîner 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 par chemin de fichier.

info

Exigences de plan : disponible pour les plans GitGuardian Business et Enterprise. Essayez-le gratuitement avec un 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 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 Sources
  2. Cliquez sur Install à côté de 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, c'est GitGuardianECRScanning, mais vous pouvez le personnaliser. Ce rôle permet à GitGuardian d'analyser 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 trust policy 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 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. Entrez l'Account ID de GitGuardian : 762233768605
  3. Sélectionnez Require external ID, entrez votre AWS External ID (5) et assurez-vous de laisser Require MFA désactivé. Pour plus de détails, voyez 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 de 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 (signifiant la 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 de 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 trust policy 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 à la plateforme GitGuardian pour enregistrer les informations de votre compte Amazon ECR

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

  5. Collez votre Account ID

  6. Cliquez sur Install Amazon ECR integration

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

    • Surveiller des dépôts Amazon ECR spécifiques (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.
    • Surveiller toute l'instance Amazon ECR
      • Tous les dépôts sont surveillés par défaut avec une analyse historique complète déclenchée 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 tout ! 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 Sources
  2. Cliquez sur Edit à côté de Amazon ECR dans la section Container registries
  3. Cliquez sur l'icône de poubelle à côté de l'instance Amazon ECR à désinstaller
  4. Confirmez en cliquant sur Yes, uninstall dans la modale de confirmation Amazon ECR uninstall

C'est tout ! 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 Self-Hosted

Pour les instances GitGuardian Self-Hosted, la fréquence d'analyse 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 spécifiques à chaque pays peuvent vous obliger à informer vos utilisateurs que vos dépôts sont analysés à la recherche de secrets. Voici une suggestion de message que vous voudrez peut-être utiliser :

Dans le cadre de notre processus interne de sécurité de l'information, l'entreprise analyse ses dépôts à la recherche de fuites potentielles de secrets en utilisant GitGuardian. Toutes les données collectées seront traitées dans le but de détecter les fuites potentielles. Pour en savoir plus sur la manière dont nous gérons vos données personnelles et sur l'exercice de vos droits, veuillez vous référer à notre notice de confidentialité employé/partenaire. Veuillez noter que seuls les dépôts relatifs à l'activité et au business de l'entreprise peuvent être surveillés et que les utilisateurs doivent s'abstenir de partager des données personnelles ou sensibles non pertinentes au but du dépôt.