Convalidare la connessione

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

Per verificare se i tuoi account di servizio Google Cloud o (solo per il livello senza costi) l'ID account AWS sono abilitati 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 l'invio del modulo di attivazione del cliente.

Questo documento si applica sia al livello premium sia a quello 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 Google Cloud parent dei service account che hai abilitato per Assured OSS. 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 delle chiavi degli account di servizio.

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

    gcloud auth revoke
    
  3. Autenticati su 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 per 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' Google Cloud ID progetto assegnato, come indicato nell'email di attivazione. + ASSIGNED_PROJECT_NUMBER: il numero di progetto Google Cloud assegnato, come indicato nell'email di attivazione.

    Se utilizzi AWS IMDSv2, aggiungi il flag --enable-imdsv2 al comando precedente. Per saperne di più, 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. Autenticati su 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 la risoluzione dei problemi relativi all'autenticazione, consulta Risoluzione degli errori di 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 che hai selezionato durante la configurazione di Assured OSS.

Di seguito è riportato un comando curl di esempio per connettersi 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 valore nextPageToken rappresenta l'ultimo risultato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, restituisci 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 restituito di pacchetti Java 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 del pacchetto Java in FILENAME3

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato restituito di pacchetti Java 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 che hai selezionato durante la configurazione di Assured OSS.

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

Il seguente comando è un comando curl di esempio per connettersi 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 valore nextPageToken rappresenta l'ultimo risultato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, restituisci 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 in un file i risultati paginati della richiesta API menzionata in precedenza.

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 restituito di pacchetti Python 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 del pacchetto Python in FILENAME6

Le seguenti azioni aggiuntive della riga di comando filtrano l'elenco non elaborato restituito di pacchetti Python 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 che hai selezionato durante la configurazione di Assured OSS.

Di seguito è riportato un comando curl di esempio per connettersi 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 l'elenco è incompleto. nextPageToken rappresenta l'ultimo risultato restituito. Quando passi il valore di nextPageToken al parametro pageToken di una richiesta successiva, restituisci 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 di nomi di pacchetti Go principali in FILENAME8

Le seguenti azioni filtrano l'elenco non elaborato restituito dei moduli Go 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 del pacchetto Go da FILENAME9

Anche se una richiesta HTTP diretta per elencare tutte le versioni del pacchetto Go non è disponibile, 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 restituito delle versioni del pacchetto Go per fornirti un elenco delle versioni del pacchetto:

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