Esegui l'integrazione con Assured OSS per la sicurezza del codice

Il livello premium di Assured Open Source Software (Assured OSS) ti consente di migliorare la sicurezza del codice utilizzando i pacchetti OSS che Google utilizza per i propri flussi di lavoro per sviluppatori. Quando utilizzi Assured OSS, i tuoi sviluppatori possono beneficiare dell'esperienza e delle competenze in materia di sicurezza che Google applica alla protezione delle proprie dipendenze open source.

Quando integri Assured OSS con Security Command Center, puoi:

  • Scegli tra migliaia di pacchetti Java e Python selezionati e più popolari, inclusi progetti comuni di machine learning e intelligenza artificiale come TensorFlow, Pandas e Scikit-learn.
  • Configura un proxy sicuro per scaricare tutti i pacchetti Java, Python e JavaScript con attestazioni di Assured OSS, rendendo Google un fornitore noto e affidabile.
  • Utilizza le SBOM e le VEX in Assured OSS fornite in formati standard di settore come SPDX e CycloneDX per scoprire di più sui tuoi componenti.
  • Aumenta la sicurezza dell'integrità dei pacchetti che utilizzi tramite una provenienza firmata e a prova di manomissione di Google.
  • Riduci il rischio per la sicurezza perché Google esegue attivamente la scansione, individua e corregge nuove vulnerabilità nei pacchetti selezionati.

Prima di iniziare

Completa queste attività prima di completare le restanti attività in questa pagina.

Attiva il livello Security Command Center Enterprise

Verifica che il livello Security Command Center Enterprise sia attivato a livello di organizzazione e che tu abbia completato i primi sei passaggi della guida alla configurazione.

Configurare le autorizzazioni a livello di organizzazione

Devi configurare le autorizzazioni a livello di organizzazione e di progetto.

  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.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Fai clic su Concedi accesso.
    4. Nel campo Nuove entità, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.

    5. Nell'elenco Seleziona un ruolo, seleziona un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
    7. Fai clic su Salva.

    Configurare le autorizzazioni a livello di progetto

    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.

        Vai a IAM
      2. Seleziona il progetto.
      3. Fai clic su Concedi accesso.
      4. Nel campo Nuove entità, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.

      5. Nell'elenco Seleziona un ruolo, seleziona un ruolo.
      6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
      7. Fai clic su Salva.

      Configurare 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.

      Configura Assured OSS

      Console

      1. Nella console Google Cloud, vai alla pagina Panoramica dei rischi di Security Command Center.

        Vai a Panoramica dei rischi

      2. Verifica di visualizzare l'organizzazione in cui hai attivato il livello Security Command Center Enterprise.

      3. Fai clic su Visualizza la guida alla configurazione.

      4. Fai clic su Configura la sicurezza del codice.

      5. Seleziona un nuovo account di servizio o gli account di servizio esistenti a cui vuoi aggiungere le autorizzazioni per il software open source garantito.

      6. Seleziona il progetto Google Cloud in cui vuoi individuare le risorse OSS certificate.

      7. Fai clic su Configura Assured OSS.

        La procedura di configurazione completa automaticamente quanto segue:

        • Se selezionata, crea il nuovo account di servizioassuredoss@PROJECT_ID.gservicesaccount.com.
        • Assegna il ruolo Utente Assured OSS all'account di servizio designato da utilizzare con Assured OSS.
        • Assegna il ruolo Amministratore Assured OSS all'account utente che ha eseguito l'accesso in modo che possa configurare il servizio.
        • Abilita l'API Assured Open Source Software e, se non è già abilitata, l'API Artifact Registry.
        • Configura il servizio proxy Assured OSS in un'istanza Artifact Registry nel progetto selezionato. Viene eseguito il provisioning di un repository per ogni linguaggio (Java, Python e JavaScript). Questi repository possono estrarre automaticamente i pacchetti dal portafoglio selezionato. Se un pacchetto non è disponibile nel portfolio selezionato, i repository reindirizzano la richiesta ai repository canonici. Il servizio proxy supporta solo la regione degli Stati Uniti.
        • Ti concede a te e all'account di servizio le autorizzazioni per accedere ai metadati dei pacchetti e alle notifiche dei progetti di proprietà di Google.
      8. Crea una chiave dell'account di servizio per ogni account di servizio Assured OSS designato e scaricala in formato JSON.

      9. Nella riga di comando della tua macchina locale, esegui il seguente comando sul file della chiave scaricato per ottenere la stringa codificata in base64:

        base64 KEY_FILENAME.json
        

        Sostituisci KEY_FILENAME.json con il nome della chiave del account di servizio che hai scaricato.

        La stringa con codifica Base64 è necessaria quando configuri un repository remoto per OSS Assured.

      10. Per scaricare i pacchetti, utilizza gli endpoint di cui è stato eseguito il provisioning da Assured OSS per ogni lingua. Prendi nota di questi endpoint per utilizzarli in un secondo momento.

        • 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

        Sostituisci PROJECT_ID con l'ID del progetto selezionato quando hai configurato Assured OSS.

      11. Fai clic su Avanti. Configura Assured OSS con il gestore del repository di elementi della tua organizzazione, ad esempio JFrog Artimanufacture o Sonatype Nexus.

      gcloud

      1. Esegui l'autenticazione in Google Cloud con un account utente che vuoi utilizzare per attivare Assured OSS:

        gcloud auth revoke
        gcloud auth application-default revoke
        gcloud auth login
        
      2. Cerca il progetto in cui vuoi individuare le risorse OSS certificate:

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

        Sostituisci PROJECT_NAME con il nome del progetto.

      3. Imposta il progetto in cui vuoi trovare le risorse di Assured OSS:

        gcloud config set project PROJECT_ID
        

        Sostituisci PROJECT_ID con l'identificatore del progetto.

      4. Concedi i ruoli all'account utente per configurare 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
        

        dove email@domain.com è l'indirizzo email del tuo account utente.

      5. Abilita Assured OSS nel progetto. L'abilitazione di Assured OSS attiva anche l'API Artifact Registry.

        gcloud services enable assuredoss.googleapis.com
        
      6. Per creare un nuovo account di servizio per Assured OSS anziché utilizzare gli account di servizio esistenti, svolgi i seguenti passaggi:

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

        Sostituisci SERVICE_ACCOUNT_NAME con il nome dell'account di servizio (ad esempio assuredoss).

      7. Configura gli account di servizio per Assured OSS:

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

        Sostituisci quanto segue:

        • SERVICE_ACCOUNT_NAME: il nome dellaccount di servizio (ad esempio assuredoss).
        • PROJECT_ID: l'identificatore del progetto.
      8. Configura il servizio di proxy Assured OSS in un'istanza Artifact Registry creando repository Assured OSS. Devi creare repository per tutte le lingue. Il servizio proxy OSS di Assured che esegue il provisioning dei repository supporta solo la regione degli Stati Uniti.

        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"}'
        

        Sostituisci PROJECT_ID con l'ID del progetto selezionato quando hai configurato Assured OSS.

        Questi repository possono estrarre automaticamente i pacchetti dal portfolio selezionato. Se un pacchetto non è disponibile nel portafoglio selezionato, i repository reindirizzano la richiesta ai repository canonici.

      9. Crea una chiave dell'account di servizio per ogni account di servizio Assured OSS e scaricala in formato JSON.

      10. Nella riga di comando, esegui il seguente comando sul file della chiave scaricato per ottenere la stringa codificata in base64:

        base64 KEY_FILENAME.json
        

        Sostituisci KEY_FILENAME.json con il nome della chiave del account di servizio che hai scaricato.

        La stringa con codifica Base64 è necessaria quando configuri un repository remoto per OSS Assured.

      11. Per scaricare i pacchetti, utilizza gli endpoint di cui è stato eseguito il provisioning da Assured OSS per ogni lingua. Prendi nota di questi endpoint:

        • 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

        Sostituisci PROJECT_ID con l'ID del progetto selezionato quando hai configurato Assured OSS.

      12. Configura Assured OSS per scaricare i pacchetti con il gestore del repository di elementi della tua organizzazione, ad esempio JFrog Artifactory o Sonatype Nexus.

      13. (Facoltativo) Visualizza i pacchetti Java, Python e JavaScript disponibili:

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

        Sostituisci KEY_FILENAME.json con il nome della chiave del account di servizio che hai scaricato.

        export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
        

        Sostituisci KEY_FILENAME.json con il nome della chiave del account di servizio che hai scaricato.

        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"
        

        Sostituisci PROJECT_ID con l'ID del progetto selezionato quando hai configurato Assured OSS.

      Passaggi successivi