Intégration à Assured OSS pour la sécurité du code

Assured Open Source Software (Assured OSS) vous permet de renforcer la sécurité de votre code en utilisant les packages OSS que Google utilise pour ses propres workflows de développement. Lorsque vous utilisez Assured OSS, vos développeurs peuvent bénéficier de l'expertise et de l'expérience en sécurité dont Google s'appuie pour sécuriser ses propres dépendances Open Source.

Lorsque vous intégrez Assured OSS à Security Command Center, vous pouvez effectuer les opérations suivantes:

  • Faites votre choix parmi plus de 3 700 packages Java et Python les plus populaires et sélectionnés, y compris des projets de machine learning et d'intelligence artificielle courants tels que TensorFlow, Pandas et Scikit-learn.
  • Configurez un proxy sécurisé pour télécharger tous les packages Java, Python et JavaScript avec des attestations d'Assured OSS. Google devient ainsi un fournisseur connu et fiable.
  • Pour en savoir plus sur vos ingrédients, utilisez les SBOM et VEX dans Assured OSS, qui sont fournis dans des formats standards tels que SPDX et CycloneDX.
  • Renforcez la confiance dans l'intégrité des packages que vous utilisez grâce à une provenance signée Google permettant de détecter les accès non autorisés.
  • Réduisez les risques de sécurité, car Google analyse, détecte et corrige activement les nouvelles failles dans les packages sélectionnés.

Avant de commencer

Effectuez ces tâches avant de terminer celles restantes sur cette page.

Activer le niveau Enterprise de Security Command Center

Vérifiez que le niveau Enterprise de Security Command Center est activé au niveau de l'organisation et que vous avez effectué les six premières étapes du guide de configuration.

Configurer des autorisations au niveau de l'organisation

Vous devez configurer des autorisations au niveau de l'organisation et au niveau du projet.

  1. Assurez-vous que vous disposez du ou des rôles suivants au niveau de l'organisation : Security Center Admin, Organization Admin

    Vérifier les rôles

    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM
    2. Sélectionnez l'organisation.
    3. Dans la colonne Compte principal, recherchez la ligne qui contient votre adresse e-mail.

      Si votre adresse e-mail ne figure pas dans cette colonne, cela signifie que vous n'avez aucun rôle.

    4. Dans la colonne Rôle de la ligne contenant votre adresse e-mail, vérifiez si la liste des rôles inclut les rôles requis.

    Attribuer les rôles

    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM
    2. Sélectionnez l'organisation.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre adresse e-mail.
    5. Dans la liste Sélectinoner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.

Configurer des autorisations au niveau du projet

  1. Assurez-vous que vous disposez du ou des rôles suivants au niveau du projet : Service Usage Admin, Service Account Admin, Project IAM Admin

    Vérifier les rôles

    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Dans la colonne Compte principal, recherchez la ligne qui contient votre adresse e-mail.

      Si votre adresse e-mail ne figure pas dans cette colonne, cela signifie que vous n'avez aucun rôle.

    4. Dans la colonne Rôle de la ligne contenant votre adresse e-mail, vérifiez si la liste des rôles inclut les rôles requis.

    Attribuer les rôles

    1. Dans la console Google Cloud, accédez à la page IAM.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre adresse e-mail.
    5. Dans la liste Sélectinoner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.

Configurer la Google Cloud CLI

Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :

  • Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.

    En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.

  • Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.

Configurer Assured OSS

Console

  1. Dans la console Google Cloud, accédez à la page Présentation des risques de Security Command Center.

    Accéder à la page de présentation des risques

  2. Vérifiez que vous voyez bien l'organisation dans laquelle vous avez activé le niveau Security Command Center Enterprise.

  3. Cliquez sur Afficher le guide de configuration.

  4. Cliquez sur Configurer la sécurité du code.

  5. Sélectionnez un nouveau compte de service ou les comptes de service existants auxquels vous souhaitez ajouter les autorisations Assured Open Source Software.

  6. Sélectionnez le projet Google Cloud dans lequel vous souhaitez localiser les ressources OSS Assured.

  7. Cliquez sur Configurer Assured OSS.

    Le processus de configuration effectue automatiquement les opérations suivantes:

    • Si cette option est sélectionnée, le compte de service assuredoss@PROJECT_ID.gservicesaccount.com est créé.
    • Attribue le rôle Utilisateur Assured OSS au compte de service désigné à utiliser avec Assured OSS.
    • Attribue le rôle d'administrateur Assured OSS au compte utilisateur connecté afin que celui-ci puisse configurer le service.
    • Active l'API Assured Open Source Software et, si ce n'est pas déjà fait, l'API Artifact Registry.
    • Configure le service proxy Assured OSS dans une instance Artifact Registry du projet que vous avez sélectionné. Un dépôt est provisionné pour chaque langage (Java, Python et JavaScript). Ces dépôts peuvent extraire automatiquement des packages du portfolio sélectionné. Si un package n'est pas disponible dans le portefeuille sélectionné, les dépôts redirigent la requête vers les dépôts canoniques. Le service proxy n'est compatible qu'avec la région États-Unis.
    • Permet à vous et au compte de service d'accéder aux métadonnées du package et aux notifications des projets appartenant à Google.
  8. Créez une clé de compte de service pour chaque compte de service Assured OSS désigné, puis téléchargez-la au format JSON.

  9. Dans la ligne de commande de votre ordinateur local, exécutez la commande suivante sur le fichier de clé téléchargé pour obtenir la chaîne encodée en base64:

    base64 KEY_FILENAME.json
    

    Remplacez KEY_FILENAME.json par le nom de la clé de compte de service que vous avez téléchargée.

    Vous avez besoin de la chaîne encodée en base64 lorsque vous configurez un dépôt distant pour Assured OSS.

  10. Pour télécharger les packages, utilisez les points de terminaison qu'Assured OSS fournit pour chaque langage. Notez ces points de terminaison pour une utilisation ultérieure.

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

  11. Cliquez sur Suivant. Configurez Assured OSS avec le gestionnaire de dépôts d'artefacts de votre organisation, tel que JFrog Artifactory ou Sonatype Nexus.

gcloud

  1. Authentifiez-vous auprès de Google Cloud avec un compte utilisateur que vous souhaitez utiliser pour activer Assured OSS:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login
    
  2. Recherchez le projet dans lequel vous souhaitez localiser les ressources OSS Assured:

    gcloud alpha projects search --query="displayName=PROJECT_NAME"
    

    Remplacez PROJECT_NAME par le nom du projet.

  3. Définissez le projet dans lequel vous souhaitez localiser les ressources Assured OSS:

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par l'identifiant du projet.

  4. Attribuez des rôles au compte utilisateur pour configurer Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/assuredoss.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/serviceusage.serviceUsageAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/iam.serviceAccountAdmin
    

    email@domain.com est l'adresse e-mail de votre compte utilisateur.

  5. Activez Assured OSS dans le projet. L'activation d'Assured OSS active également l'API Artifact Registry.

    gcloud services enable assuredoss.googleapis.com
    
  6. Pour créer un compte de service pour Assured OSS au lieu d'utiliser des comptes de service existants, procédez comme suit:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --description="Service account for using Assured OSS"
      --display-name="Assured OSS service account"
    

    Remplacez SERVICE_ACCOUNT_NAME par le nom du compte de service (par exemple, assuredoss).

  7. Configurez les comptes de service pour Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/assuredoss.user
    

    Remplacez les éléments suivants :

    • SERVICE_ACCOUNT_NAME: nom du compte de service (par exemple, assuredoss).
    • PROJECT_ID: identifiant du projet.
  8. Configurez le service proxy Assured OSS dans une instance Artifact Registry en créant des dépôts Assured OSS. Vous devez créer des dépôts pour tous les langages. Le service proxy Assured OSS qui provisionne les dépôts n'est compatible qu'avec la région États-Unis.

    alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java   -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript   -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python   -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}'
    

    Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

    Ces dépôts peuvent extraire automatiquement des packages du portefeuille sélectionné. Si un package n'est pas disponible dans le portefeuille organisé, les dépôts redirigent la requête vers les dépôts canoniques.

  9. Créez une clé de compte de service pour chaque compte de service Assured OSS, puis téléchargez-la au format JSON.

  10. Dans la ligne de commande, exécutez la commande suivante sur le fichier de clé téléchargé pour obtenir la chaîne encodée en base64:

    base64 KEY_FILENAME.json
    

    Remplacez KEY_FILENAME.json par le nom de la clé de compte de service que vous avez téléchargée.

    Vous avez besoin de la chaîne encodée en base64 lorsque vous configurez un dépôt distant pour Assured OSS.

  11. Pour télécharger les packages, utilisez les points de terminaison provisionnés par Assured OSS pour chaque langage. Notez ces points de terminaison:

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

  12. Configurez Assured OSS pour télécharger des packages à l'aide du gestionnaire de dépôts d'artefacts de votre organisation, tel que JFrog Artifactory ou Sonatype Nexus.

  13. Si vous le souhaitez, affichez les packages Java, Python et JavaScript disponibles:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login --cred-file=KEY_FILENAME.json
    

    Remplacez KEY_FILENAME.json par le nom de la clé de compte de service que vous avez téléchargée.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    Remplacez KEY_FILENAME.json par le nom de la clé de compte de service que vous avez téléchargée.

    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages"
    

    Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

Étapes suivantes