Eseguire 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 sfruttare le competenze e l'esperienza 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, Python, Go e JavaScript (NPM) 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, Go e JavaScript con attestazioni da Assured OSS, rendendo Google un fornitore noto e affidabile.
  • Utilizza gli SBOM e i VEX in Assured OSS forniti nei formati standard di settore come SPDX e CycloneDX per saperne di più sui tuoi componenti.
  • Aumenta la sicurezza dell'integrità dei pacchetti che utilizzi tramite una provenienza firmata a prova di manomissione di Google.
  • Riduci i rischi per la sicurezza, poiché Google scansiona, trova e corregge attivamente le nuove vulnerabilità nei pacchetti selezionati.

Aree geografiche supportate

Il livello Premium di Assured OSS supporta le seguenti regioni e multiregioniGoogle Cloud per i repository Artifact Registry remoti (o proxy):

  • asia-southeast2
  • australia-southeast1
  • australia-southeast2
  • europe-north1
  • europe-north2
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • northamerica-northeast1
  • northamerica-northeast2
  • europe
  • us

Il supporto dei metadati di sicurezza è limitato alla località multiregionale us.

Prima di iniziare

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

Attiva il livello Security Command Center Enterprise o Premium

Verifica che il livello Security Command Center Premium o il livello Security Command Center Enterprise sia attivato a livello di organizzazione.

Configura le autorizzazioni a livello di organizzazione

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

    Assicurati di disporre dei seguenti ruoli nell'organizzazione: Amministratore del Centro sicurezza, Amministratore organizzazione

    Controlla i ruoli

    1. Nella console Google Cloud vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Nella colonna Entità, individua tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire in quali gruppi sei incluso, contatta l'amministratore.

    4. Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include i ruoli 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 identificatore dell'utente. In genere si tratta dell'identificatore di un utente in un pool di identità della forza lavoro. Per maggiori dettagli, consulta Rappresenta gli utenti del pool di forza lavoro nelle policy IAM o contatta l'amministratore.

    5. Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
    7. Fai clic su Salva.

Configura le autorizzazioni a livello di progetto

    Assicurati di disporre dei seguenti ruoli nel progetto: Amministratore utilizzo servizi, Amministratore account di servizio, Amministratore IAM progetto

    Controlla i ruoli

    1. Nella console Google Cloud vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella colonna Entità, individua tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire in quali gruppi sei incluso, contatta l'amministratore.

    4. Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include i ruoli 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 identificatore dell'utente. In genere si tratta dell'identificatore di un utente in un pool di identità della forza lavoro. Per maggiori dettagli, consulta Rappresenta gli utenti del pool di forza lavoro nelle policy IAM o contatta l'amministratore.

    5. Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
    7. Fai clic su Salva.

Configura Google Cloud CLI

Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

gcloud init

Configura Assured OSS

Console

Questi passaggi si applicano solo al livello Security Command Center Enterprise.

  1. Nella console Google Cloud , vai alla guida alla configurazione di Security Command Center.

    Vai alla Guida alla configurazione

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

  3. Espandi il riquadro Esamina il riepilogo delle funzionalità di sicurezza.

  4. Fai clic su Sicurezza del codice > Configura.

  5. Nel riquadro Configura la sicurezza del codice, fai clic su Configurazione di AOSS.

  6. Seleziona un nuovo account di servizio o seleziona i service account esistenti a cui vuoi aggiungere le autorizzazioni di Assured Open Source Software.

  7. Seleziona il progetto e la regione Google Cloud in cui vuoi individuare le risorse Assured OSS.

  8. Fai clic su Configura Assured OSS.

    La procedura di configurazione completa automaticamente quanto segue:

    • Se selezionato, crea il nuovo account di servizio assuredoss@PROJECT_ID.gservicesaccount.com.
    • Assegna il ruolo Utente Assured OSS al account di servizio designato da utilizzare con Assured OSS.
    • Assegna il ruolo Assured OSS Admin 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 è già abilitata, l'API Artifact Registry.
    • Configura il servizio di 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, Go e JavaScript (NPM)). Questi repository possono eseguire automaticamente il pull dei pacchetti dal portfolio selezionato. Se un pacchetto non è disponibile nel portfolio selezionato, i repository reindirizzano la richiesta ai repository canonici. Per saperne di più, consulta Opzioni del repository Assured OSS.
    • Concede a te e al account di servizio le autorizzazioni per accedere ai metadati dei pacchetti e alle notifiche dei progetti di proprietà di Google.
  9. Crea una account di servizio account per ogni account di servizio Assured OSS designato e scarica la chiave in formato JSON.

  10. Nella riga di comando della tua macchina locale, esegui il seguente comando sul file della chiave scaricato per ottenere la stringa con codifica 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 in base64 è necessaria per configurare un repository remoto per Assured OSS.

  11. Per scaricare i pacchetti, utilizza gli endpoint di cui Assured OSS esegue il provisioning per ogni linguaggio. Prendi nota di questi endpoint per utilizzarli in un secondo momento.

    • Java:
      https://LOCATION-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript (NPM):
      https://LOCATION-npm.pkg.dev/PROJECT_ID/assuredoss-javascript
    • Go:
      https://LOCATION-go.pkg.dev/PROJECT_ID/assuredoss-go

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che hai selezionato durante la configurazione di Assured OSS.

    • LOCATION: una regione supportata.

  12. Fai clic su Avanti. Configura Assured OSS con il gestore di repository degli artefatti della tua organizzazione, ad esempio JFrog Artifactory o Sonatype Nexus.

gcloud

Questi passaggi si applicano a Security Command Center Premium ed Enterprise.

  1. Esegui l'autenticazione su 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 Assured OSS:

    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 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'attivazione 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 i service account esistenti, completa 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 del account di servizio (ad esempio assuredoss).

  7. Configura i service account per Assured OSS:

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

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_NAME: il nome del account di servizio (ad esempio assuredoss).
    • PROJECT_ID: l'identificatore del progetto.
  8. Per accedere al repository dei metadati di sicurezza dopo aver configurato Assured OSS Premium utilizzando gcloud, invia un'email all'indirizzo customer-support-aoss@google.com con i service account che hai attivato per Assured OSS.
  9. Configura il servizio di proxy Assured OSS in un'istanza Artifact Registry creando repository Assured OSS. Devi creare repository per tutte le lingue. Specifica la regione in cui il servizio proxy Assured OSS deve eseguire il provisioning dei repository.

    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/LOCATION/repositories\?repositoryId\=assuredoss-java   -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories\?repositoryId\=assuredoss-javascript   -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories\?repositoryId\=assuredoss-python   -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories\?repositoryId\=assuredoss-go   -d '{"format": "GO", "mode": "AOSS_REPOSITORY"}'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che hai selezionato durante la configurazione di Assured OSS.

    • LOCATION: una regione supportata.

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

  10. Crea una account di servizio account per ogni account di servizio Assured OSS e scarica la chiave in formato JSON.

  11. Nella riga di comando, esegui questo comando sul file della chiave scaricato per ottenere la stringa con codifica 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 in base64 è necessaria per configurare un repository remoto per Assured OSS.

  12. Per scaricare i pacchetti, utilizza gli endpoint di cui Assured OSS ha eseguito il provisioning per ogni linguaggio. Prendi nota di questi endpoint:

    • Java:
      https://LOCATION-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript (NPM):
      https://LOCATION-npm.pkg.dev/PROJECT_ID/assuredoss-javascript
    • Go:
      https://LOCATION-go.pkg.dev/PROJECT_ID/assuredoss-go

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che hai selezionato durante la configurazione di Assured OSS.

    • LOCATION: una regione supportata.

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

  14. Facoltativamente, visualizza i pacchetti Java, Python, Go 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/LOCATION/repositories/assuredoss-java/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/assuredoss-python/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/assuredoss-javascript/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/assuredoss-go/packages"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che hai selezionato durante la configurazione di Assured OSS.

    • LOCATION: una regione supportata.

Passaggi successivi