Integra Assured OSS per la sicurezza del codice

Il software open source Assured (Assured OSS) ti consente di migliorare la sicurezza del codice mediante i pacchetti OSS che Google utilizza per i suoi flussi di lavoro degli sviluppatori. Quando utilizzi Assured OSS, i tuoi sviluppatori possono sfruttare l'esperienza e le 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 oltre 3700 pacchetti Java e Python selezionati e più popolari, tra cui 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.
  • Per saperne di più sui tuoi ingredienti, utilizza SBOM e VEX in Assured OSS forniti in formati standard di settore come SPDX e CycloneDX.
  • Aumenta la fiducia nell'integrità dei pacchetti che stai utilizzando grazie alla provenienza firmata da Google.
  • Riduci i rischi per la sicurezza perché Google sta analizzando, trovando e correggendo attivamente nuove vulnerabilità in pacchetti selezionati.

Prima di iniziare

Completa queste attività prima di completare quelle rimanenti 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 di aver completato i primi sei passaggi della guida alla configurazione.

Configurare le autorizzazioni a livello di organizzazione

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

  1. Assicurati di disporre dei seguenti ruoli nell'organizzazione: Security Center Admin, Organization Admin

    Verifica i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Nella colonna Entità, individua la riga contenente il tuo indirizzo email.

      Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.

    4. Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.

    Concedi i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo indirizzo email.
    5. Nell'elenco Seleziona un ruolo, scegli un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
    7. Fai clic su Salva.

Configurare le autorizzazioni a livello di progetto

  1. Assicurati di disporre dei seguenti ruoli nel progetto: Service Usage Admin, Service Account Admin, Project IAM Admin

    Verifica i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella colonna Entità, individua la riga contenente il tuo indirizzo email.

      Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.

    4. Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.

    Concedi i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo indirizzo email.
    5. Nell'elenco Seleziona un ruolo, scegli un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
    7. Fai clic su Salva.

Configura Google Cloud CLI

Nella console Google Cloud, attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

Configura Assured OSS

Console

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

    Vai a Panoramica rischi

  2. Verifica di visualizzare l'organizzazione per 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 di Assured Open Source Software.

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

  7. Fai clic su Configura Assured OSS.

    La procedura di configurazione completa automaticamente quanto segue:

    • Se questa opzione è selezionata, viene creato il nuovo account di servizio assuredoss@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 l'account possa configurare il servizio.
    • Abilita l'API Assured Open Source Software e, se non sono già abilitate, l'API Artifact Registry.
    • Configura il servizio proxy Assured OSS in un'istanza Artifact Registry nel progetto che hai selezionato. Viene eseguito il provisioning di un repository per ogni linguaggio (Java, Python e JavaScript). Questi repository possono estrarre automaticamente pacchetti dal portfolio selezionato. Se un pacchetto non è disponibile nel portafoglio selezionato, i repository reindirizzano la richiesta ai repository canonici. Il servizio di proxy supporta solo la regione degli Stati Uniti.
    • Concede a te e all'account di servizio le autorizzazioni per accedere ai metadati dei pacchetti e alle notifiche dai progetti di proprietà di Google.
  8. Crea una chiave dell'account di servizio per ogni account di servizio Assured OSS designato e scarica la chiave in formato JSON.

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

    base64 KEY_FILENAME.json
    

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

    È necessaria la stringa con codifica base64 quando configuri un repository remoto per Assured OSS.

  10. Per scaricare i pacchetti, usa gli endpoint forniti da Assured OSS per ciascun linguaggio. Prendi nota di questi endpoint per utilizzarli in seguito.

    • 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 che hai selezionato al momento della configurazione di Assured OSS.

  11. Fai clic su Avanti. Configura Assured OSS con il gestore di repository di artefatti della tua organizzazione, come JFrog Artifactory o Sonatype Nexus.

gcloud

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

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

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

    Sostituisci PROJECT_NAME con il nome del progetto.

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

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'identificatore del progetto.

  4. Concedi 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 abilita anche l'API Artifact Registry.

    gcloud services enable assuredoss.googleapis.com
    
  6. Per creare un nuovo account di servizio per Assured OSS invece di utilizzare gli account di servizio esistenti, completa quanto segue:

    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 dell'account di servizio (ad esempio, assuredoss).
    • PROJECT_ID: l'identificatore del progetto.
  8. Configura il servizio proxy Assured OSS in un'istanza Artifact Registry creando repository Assured OSS. Devi creare repository per tutte le lingue. Il servizio proxy Assured OSS 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 che hai selezionato al momento della configurazione di Assured OSS.

    Questi repository possono estrarre automaticamente pacchetti dal portafoglio selezionato. Se un pacchetto non è disponibile all'interno del portafoglio selezionato, i repository reindirizzano la richiesta ai repository canonici.

  9. Crea una chiave dell'account di servizio per ciascun account di servizio Assured OSS e scarica la chiave in formato JSON.

  10. Nella riga di comando, esegui questo 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 dell'account di servizio che hai scaricato.

    È necessaria la stringa con codifica base64 quando configuri un repository remoto per Assured OSS.

  11. Per scaricare i pacchetti, usa gli endpoint di cui è stato eseguito il provisioning da Assured OSS per ciascun linguaggio. 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 che hai selezionato al momento della configurazione di Assured OSS.

  12. Configura Assured OSS per scaricare i pacchetti con il gestore di repository di artefatti della tua organizzazione come JFrog Artifactory o Sonatype Nexus.

  13. Facoltativamente, 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 dell'account di servizio che hai scaricato.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    Sostituisci KEY_FILENAME.json con il nome della chiave dell'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 che hai selezionato al momento della configurazione di Assured OSS.

Passaggi successivi