Convalidare la connessione

Questo documento ti aiuta a verificare che i tuoi account di servizio e account AWS siano stati abilitati correttamente per l'accesso al servizio Assured Open Source Software.

Per verificare se i tuoi Google Cloud account di servizio o (solo per il livello senza costi ) l'ID account AWS è abilitato per l'accesso al repository e al portafoglio di pacchetti curati di Assured OSS, elenca i pacchetti Java o Python disponibili utilizzando un'API. Per farlo, puoi chiamare direttamente le API, o utilizzare Cloud Shell per eseguire una chiamata alla riga di comando curl all'API.

Se utilizzi il livello senza costi, in rari casi potresti riscontrare errori di autorizzazione negata per un'ora o più dopo aver inviato il modulo di attivazione del cliente form submission.

Questo documento si applica sia al livello Premium sia al livello senza costi.

Prima di iniziare

  1. Installa l'ultima versione di Google Cloud CLI. Se hai già installato Google Cloud CLI, assicurati di avere l'ultima versione eseguendo il comando seguente:

    gcloud components update
    
  2. Per accedere ad Assured OSS utilizzando Google Cloud, abilita l'API Artifact Registry per il progetto padre degli account di servizio che hai abilitato per Assured OSS. Google Cloud Se utilizzi il livello Premium, l'API viene abilitata durante la configurazione.

  3. Aggiungi i seguenti URL alla lista consentita della tua rete:

    • *.pkg.dev
    • artifactregistry.googleapis.com

Configura l'autenticazione

Per Google Cloud

  1. Genera e scarica la chiave del service account. Ti consigliamo di seguire le best practice per la gestione account di servizio account.

  2. Se hai già eseguito l'accesso a Google Cloud CLI, revoca l'autenticazione esistente:

    gcloud auth revoke
    
  3. Esegui l'autenticazione a Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    Dove FILEPATH è il percorso della chiave del account di servizio.

  4. Aggiorna le Credenziali predefinite dell'applicazione:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    Dove FILEPATH è il percorso della chiave del account di servizio.

Per AWS

Questi passaggi si applicano solo al livello senza costi di Assured OSS.

  1. Configura l'istanza EC2 in modo da consentire la richiesta di credenziali temporanee.

    1. Accedi alla console di gestione AWS.
    2. Nella console di gestione AWS, vai alla dashboard EC2 e seleziona l'istanza EC2 di destinazione.
    3. Seleziona Azioni > Sicurezza > Modifica ruolo IAM.
    4. Seleziona Crea nuovo ruolo IAM > Crea ruolo.
    5. Per il tipo di entità attendibile, seleziona Servizio AWS.
    6. Per il caso d'uso, scegli EC2.
    7. Aggiungi l'autorizzazione AmazonEC2ReadOnlyAccess e fai clic su Avanti.
    8. Fornisci un nome significativo per il ruolo IAM e fai clic su Avanti.
    9. Torna a Modifica ruolo IAM. Seleziona il ruolo appena creato e fai clic su Aggiorna ruolo IAM.
  2. Genera il file di configurazione delle credenziali:

    gcloud iam workload-identity-pools create-cred-config \
    projects/ASSIGNED_PROJECT_NUMBER/locations/global/workloadIdentityPools/aoss-wif-pool/providers/aws-AWS_ACCOUNT_ID-provider \
    --service-account=aoss-wif-aws-AWS_ACCOUNT_ID-sa@ASSIGNED_PROJECT_ID.iam.gserviceaccount.com \
    --aws \
    --output-file=FILEPATH.json
    

    Sostituisci quanto segue:

    • AWS_ACCOUNT_ID: il numero di 12 cifre del tuo account AWS (ad esempio, 123456789012).
    • FILEPATH: il file in cui salvare la configurazione. + ASSIGNED_PROJECT_ID: l'ID progetto assegnato, come indicato nell'email di attivazione. Google Cloud + ASSIGNED_PROJECT_NUMBER: il Google Cloud numero di progetto assegnato, come indicato nell'email di attivazione.

    Se utilizzi AWS IMDSv2, aggiungi il flag --enable-imdsv2 al comando precedente. Per ulteriori informazioni, vedi Creare una configurazione delle credenziali.

  3. Se hai già eseguito l'accesso a Google Cloud CLI, revoca l'autenticazione esistente:

    gcloud auth revoke
    
  4. Esegui l'autenticazione a Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    Dove FILEPATH è il percorso del file di configurazione delle credenziali.

  5. Aggiorna le Credenziali predefinite dell'applicazione:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    Dove FILEPATH è il percorso della chiave del account di servizio o del file di configurazione delle credenziali.

Per risolvere i problemi relativi all'autenticazione, vedi Risolvere gli erroridi autenticazione.

Elenca tutti i pacchetti Java disponibili in Assured OSS

Puoi utilizzare un'API REST per elencare tutti i pacchetti Java e le relative versioni.

Per il livello senza costi di Assured OSS, inserisci la seguente richiesta HTTP:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

Per il livello Premium di Assured OSS, inserisci la seguente richiesta HTTP:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages

Sostituisci PROJECT_ID con l'ID del progetto selezionato durante la configurazione di Assured OSS.

Di seguito è riportato un comando curl di esempio per connetterti al repository Java nel livello senza costi:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

La richiesta restituisce una risposta simile alla seguente risposta di esempio:

  {
    "mavenArtifacts": [
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/com.alibaba:fastjson:1.2.83",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.pom",
        "groupId": "com.alibaba",
        "artifactId": "fastjson",
        "version": "1.2.83",
        "createTime": "2022-06-24T09:10:05.166879Z",
        "updateTime": "2022-06-24T09:10:05.166879Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-api:2.17.1",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-api",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:22:50.113695Z",
        "updateTime": "2022-03-16T12:22:50.113695Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-core:2.17.1",
      "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-core",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:26:40.317215Z",
        "updateTime": "2022-03-16T12:26:40.317215Z"
      }
    ]
  }

Se sono disponibili molti pacchetti, la risposta dell'API potrebbe essere paginata. Il token di continuazione nextPageToken viene restituito nella risposta quando l'elenco è incompleto. Il nextPageToken rappresenta l'ultimo risultato che è stato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, viene restituita la pagina successiva dei risultati, a partire dall'ultimo risultato.

Per visualizzare la pagina successiva dei risultati o aumentare il numero di oggetti restituiti per pagina, utilizza il seguente URL:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Sostituisci quanto segue:

  • NUMBER: il numero di elementi da restituire per pagina. Il valore massimo accettato è 1000.
  • NEXT_PAGE_TOKEN: il valore del token nextPageToken restituito nella risposta JSON.

In alternativa, puoi utilizzare il seguente script per raccogliere i risultati paginati della richiesta API menzionata in un file:

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME1
    [ -n "$nextPageToken" ]
do
:
done

(Facoltativo) Scrivi l'elenco ordinato dei nomi dei pacchetti Java principali in FILENAME2

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato dei pacchetti Java restituito per fornirti un elenco dei soli nomi dei pacchetti principali.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep artifactId | sort -f | uniq >  FILENAME2

(Facoltativo) Scrivi l'elenco ordinato delle versioni dei pacchetti Java in FILENAME3

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato dei pacchetti Java restituito per fornirti un elenco delle sole versioni dei pacchetti.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME3

Elenca tutti i pacchetti Python disponibili in Assured OSS

Puoi utilizzare un'API REST per elencare tutti i pacchetti Python e le relative versioni. Questi pacchetti sono disponibili per Python 3.8.

Per il livello senza costi di Assured OSS, inserisci la seguente richiesta HTTP:

  GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages

Per il livello Premium di Assured OSS, inserisci la seguente richiesta HTTP:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"

Sostituisci PROJECT_ID con l'ID del progetto selezionato durante la configurazione di Assured OSS.

Per elencare tutti i pacchetti specifici per il tuo ambiente, utilizza lo script generator.sh.

Il seguente comando è un comando curl di esempio per connetterti al repository Python di Assured OSS nel livello senza costi:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages"

La richiesta restituisce una risposta simile alla seguente risposta di esempio:

  {
  "pythonPackages": [
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/Flask:2.1.2",
      "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/flask/Flask-2.1.2-py3-none-any.whl",
        "packageName": "Flask",
        "version": "2.1.2",
        "createTime": "2022-07-13T11:06:54.163313Z",
        "updateTime": "2022-07-13T11:06:54.163313Z"
    },
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.3.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.3.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.3.0",
        "createTime": "2022-07-13T11:06:17.263638Z",
        "updateTime": "2022-07-13T11:06:17.263638Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.4.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.4.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.4.0",
        "createTime": "2022-07-13T11:09:00.865162Z",
        "updateTime": "2022-07-13T11:09:00.865162Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/urllib3:1.26.8",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/urllib3/urllib3-1.26.8-py2.py3-none-any.whl",
        "packageName": "urllib3",
        "version": "1.26.8",
        "createTime": "2022-07-13T11:05:56.529484Z",
        "updateTime": "2022-07-13T11:05:56.529484Z"
      }
    ]
  }

Se sono disponibili molti pacchetti, la risposta dell'API potrebbe essere paginata. Il token di continuazione nextPageToken viene restituito nella risposta quando l'elenco è incompleto. Il nextPageToken rappresenta l'ultimo risultato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, viene restituita la pagina successiva dei risultati, a partire dall'ultimo risultato.

Per visualizzare la pagina successiva dei risultati o aumentare il numero di oggetti restituiti per pagina, utilizza il seguente URL nel livello senza costi:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Sostituisci quanto segue:

  • NUMBER: il numero di elementi da restituire per pagina. Il valore massimo accettato è 1000.
  • NEXT_PAGE_TOKEN: il valore del token nextPageToken restituito nella risposta JSON.

In alternativa, puoi utilizzare il seguente script per raccogliere i risultati paginati della richiesta API menzionata in un file.

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME4
    [ -n "$nextPageToken" ]
do
:
done

(Facoltativo) Scrivi l'elenco ordinato dei nomi dei pacchetti Python principali in FILENAME5

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato dei pacchetti Python restituito per fornirti un elenco dei soli nomi dei pacchetti principali.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep packageName | sort -f | uniq > FILENAME5

(Facoltativo) Scrivi l'elenco ordinato delle versioni dei pacchetti Python in FILENAME6

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato dei pacchetti Python restituito per fornirti un elenco delle sole versioni dei pacchetti.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME6

Elenca tutti i pacchetti Go disponibili in Assured OSS

Puoi utilizzare un'API REST per elencare tutti i pacchetti Go e le relative versioni.

Per il livello senza costi di Assured OSS, inserisci la seguente richiesta HTTP:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages"

Per il livello Premium di Assured OSS, inserisci la seguente richiesta HTTP:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages

Sostituisci PROJECT_ID con l'ID del progetto selezionato durante la configurazione di Assured OSS.

Di seguito è riportato un comando curl di esempio per connetterti al repository Go nel livello senza costi:

curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages

La richiesta restituisce una risposta simile alla seguente:

{
  "packages": [
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth",
      "createTime": "2025-08-05T06:04:54.442071Z",
      "updateTime": "2025-08-05T06:04:54.442071Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth%2Foauth2adapt",
      "createTime": "2025-08-05T06:04:41.242052Z",
      "updateTime": "2025-08-05T06:04:41.242052Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fcompute%2Fmetadata",
      "createTime": "2025-08-05T06:05:31.140186Z",
      "updateTime": "2025-08-05T06:05:31.140186Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fiam",
      "createTime": "2025-08-05T06:04:54.455300Z",
      "updateTime": "2025-08-05T06:04:54.455300Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Flogging",
      "createTime": "2025-08-05T06:05:36.186851Z",
      "updateTime": "2025-08-05T06:05:36.186851Z"
    }
  ]
}

Se sono disponibili molti pacchetti, la risposta dell'API potrebbe essere paginata. Il token di continuazione nextPageToken viene restituito nella risposta quando la scheda è incompleta. nextPageToken rappresenta l'ultimo risultato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, viene restituita la pagina successiva dei risultati, a partire dall'ultimo risultato.

Per visualizzare la pagina successiva dei risultati o aumentare il numero di oggetti restituiti per pagina, utilizza il seguente URL:

"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Sostituisci quanto segue:

  • NUMBER: il numero di elementi da restituire per pagina. Il valore massimo accettato è 1000.
  • NEXT_PAGE_TOKEN: il valore del token nextPageToken restituito nella risposta JSON.

In alternativa, puoi utilizzare il seguente script per raccogliere i risultati paginati della richiesta API in un file:

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME7
    [ -n "$nextPageToken" ]
do
:
done

(Facoltativo) Scrivi un elenco ordinato dei nomi dei pacchetti Go principali in FILENAME8

Le seguenti azioni filtrano l'elenco non elaborato dei moduli Go restituito per fornirti un elenco dei nomi dei pacchetti principali:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME8

(Facoltativo) Scrivi un elenco ordinato delle versioni dei pacchetti Go in FILENAME9

Anche se non è disponibile una richiesta HTTP diretta per elencare tutte le versioni dei pacchetti Go, puoi elencare tutte le versioni di un pacchetto Go specifico. Puoi generare un elenco completo di tutte le versioni dei pacchetti Go elencando in modo iterativo le versioni di ogni pacchetto Go identificato nell'elenco in FILENAME8.

Le seguenti azioni filtrano l'elenco non elaborato delle versioni dei pacchetti Go restituito per fornirti un elenco delle versioni dei pacchetti:

grep -o "packages/.*" FILENAME8 | tr -d '",' | cut -d '/' -f 2 | while read package_name; do curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/$package_name/versions | grep name | sort -f | uniq >> FILENAME9; done

Passaggi successivi