Intégrer Assured OSS pour la sécurité du code

Le niveau premium Assured Open Source Software (Assured OSS) vous permet d'améliorer 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 profiter de l'expertise et de l'expérience en matière de sécurité que Google applique 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:

  • Choisissez parmi des milliers de packages Java et Python sélectionnés et les plus populaires, y compris des projets courants de machine learning et d'intelligence artificielle 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, ce qui fait de Google un fournisseur connu et fiable.
  • Utilisez les SBOM et les VEX dans Assured OSS qui sont fournis dans des formats standards du secteur, tels que SPDX et CycloneDX, pour en savoir plus sur vos ingrédients.
  • Renforcez la confiance dans l'intégrité des packages que vous utilisez grâce à une provenance signée et inviolable de Google.
  • 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 d'effectuer les autres tâches de cette page.

Activer le niveau Security Command Center Enterprise

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

Configurer les autorisations au niveau de l'organisation

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

  1. Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez l'organisation.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner 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. Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Accéder à IAM
      2. Sélectionnez le projet.
      3. Cliquez sur Accorder l'accès.
      4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

      5. Dans la liste Sélectionner 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 Google Cloud CLI

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      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 "Vue d'ensemble des risques"

      2. Vérifiez que vous consultez l'organisation pour 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 de logiciel Open Source assuré.

      6. Sélectionnez le projet Google Cloud dans lequel vous souhaitez localiser les ressources Open Source Assurées.

      7. Cliquez sur Configurer Assured OSS.

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

        • Si elle est sélectionnée, crée le compte de service assuredoss@PROJECT_ID.gservicesaccount.com.
        • Attribue le rôle d'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 qu'il 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 portefeuille sélectionné. Si un paquet n'est pas disponible dans le portfolio sélectionné, les dépôts redirigeront la requête vers les dépôts canoniques. Le service proxy n'est disponible que pour la région des États-Unis.
        • Accorde à vous et au compte de service les autorisations nécessaires pour accéder aux métadonnées de 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é et téléchargez la clé 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é du 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 que Assured OSS provisionne pour chaque langue. Notez ces points de terminaison pour les utiliser ultérieurement.

        • 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é lorsque vous avez configuré 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. S'authentifier sur 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 Open Source Assurées:

        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'OSS assuré 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 toutes les langues. Le service de proxy OSS Assured qui provisionne les dépôts n'est compatible qu'avec la région des É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é lorsque vous avez configuré Assured OSS.

        Ces dépôts peuvent extraire automatiquement des packages du portefeuille sélectionné. Si un paquet n'est pas disponible dans le portfolio sélectionné, les dépôts redirigeront 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 et 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é du 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 langue. 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é lorsque vous avez configuré Assured OSS.

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

      13. Vous pouvez également afficher 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é du 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é du 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é lorsque vous avez configuré Assured OSS.

      Étape suivante