Valider votre connexion

Ce document vous aide à vérifier que vos comptes de service et comptes AWS sont correctement activés pour accéder au service Assured Open Source Software.

Pour vérifier si vos comptes de service Google Cloud ou (pour le niveau sans frais uniquement) votre ID de compte AWS sont activés pour accéder au dépôt Assured OSS et au portefeuille de packages sélectionnés, listez les packages Java ou Python disponibles à l'aide d'une API. Pour ce faire, vous pouvez appeler directement les API ou utiliser Cloud Shell pour exécuter un appel de ligne de commande curl vers l'API.

Si vous utilisez le niveau sans frais, il est possible que vous rencontriez des erreurs d'autorisation refusée pendant une heure ou plus après l'envoi du formulaire d'activation du client.

Ce document s'applique aux niveaux premium et sans frais.

Avant de commencer

  1. Installez la dernière version de la Google Cloud CLI. Si vous avez déjà installé Google Cloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande suivante :

    gcloud components update
    
  2. Pour accéder à Assured OSS à l'aide de Google Cloud, activez l'API Artifact Registry pour le projet parent Google Cloud des comptes de service que vous avez activés pour Assured OSS. Si vous utilisez le niveau Premium, l'API est activée lors de la configuration.

  3. Ajoutez les URL suivantes à la liste d'autorisation de votre réseau :

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

Configurer l'authentification

Pour Google Cloud

  1. Générez et téléchargez la clé du compte de service. Nous vous recommandons de suivre les bonnes pratiques de gestion des clés de compte de service.

  2. Si vous êtes déjà connecté à Google Cloud CLI, révoquez toute authentification existante :

    gcloud auth revoke
    
  3. S'authentifier auprès de Google Cloud :

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

    FILEPATH est le chemin d'accès à la clé du compte de service.

  4. Mettez à jour les identifiants par défaut de l'application :

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    FILEPATH est le chemin d'accès à la clé du compte de service.

Pour AWS

Ces étapes ne s'appliquent qu'au niveau sans frais d'Assured OSS.

  1. Configurez votre instance EC2 pour autoriser la demande d'identifiants temporaires.

    1. Connectez-vous à l'AWS Management Console.
    2. Dans la console AWS Management Console, accédez au tableau de bord EC2 et sélectionnez l'instance EC2 cible.
    3. Sélectionnez Actions > Sécurité > Modifier le rôle IAM.
    4. Sélectionnez Create New IAM Role > Create role (Créer un rôle IAM > Créer un rôle).
    5. Pour le type d'entité de confiance, sélectionnez Service AWS.
    6. Pour le cas d'utilisation, sélectionnez EC2.
    7. Ajoutez l'autorisation AmazonEC2ReadOnlyAccess, puis cliquez sur Suivant.
    8. Saisissez un nom explicite pour le rôle IAM, puis cliquez sur Suivant.
    9. Revenez à Modifier le rôle IAM. Sélectionnez le rôle que vous venez de créer, puis cliquez sur Mettre à jour le rôle IAM.
  2. Générez le fichier de configuration des identifiants :

    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
    

    Remplacez les éléments suivants :

    • AWS_ACCOUNT_ID : numéro à 12 chiffres de votre compte AWS (par exemple, 123456789012).
    • FILEPATH : fichier dans lequel enregistrer la configuration. + ASSIGNED_PROJECT_ID : ID du projet Google Cloud qui vous a été attribué, comme indiqué dans l'e-mail d'activation. + ASSIGNED_PROJECT_NUMBER : numéro de projet Google Cloud qui vous a été attribué, comme indiqué dans l'e-mail d'activation.

    Si vous utilisez AWS IMDSv2, ajoutez l'option --enable-imdsv2 à la commande précédente. Pour en savoir plus, consultez Créer une configuration d'identifiants.

  3. Si vous êtes déjà connecté à Google Cloud CLI, révoquez toute authentification existante :

    gcloud auth revoke
    
  4. S'authentifier auprès de Google Cloud :

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

    FILEPATH est le chemin d'accès au fichier de configuration des identifiants.

  5. Mettez à jour les identifiants par défaut de l'application :

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    FILEPATH est le chemin d'accès à la clé du compte de service ou au fichier de configuration des identifiants.

Pour résoudre les problèmes liés à l'authentification, consultez Résoudre les problèmes d'authentification.

Lister tous les packages Java disponibles dans Assured OSS

Vous pouvez utiliser une API REST pour lister tous les packages Java et leurs versions.

Pour le niveau sans frais d'Assured OSS, saisissez la requête HTTP suivante :

  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"

Pour le niveau Premium d'Assured OSS, saisissez la requête HTTP suivante :

  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

Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

Voici un exemple de commande curl permettant de se connecter au dépôt Java du niveau sans frais :

  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 requête renvoie une réponse semblable à l'exemple suivant :

  {
    "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"
      }
    ]
  }

Si de nombreux packages sont disponibles, la réponse de l'API peut être paginée. Le jeton de continuité nextPageToken est renvoyé dans la réponse lorsque la liste est incomplète. nextPageToken représente le dernier résultat renvoyé. Lorsque vous transmettez la valeur de nextPageToken au paramètre pageToken d'une requête ultérieure, vous renvoyez la page de résultats suivante, en commençant après le dernier résultat.

Pour afficher la page de résultats suivante ou augmenter le nombre d'objets renvoyés par page, utilisez l'URL suivante :

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

Remplacez les éléments suivants :

  • NUMBER : nombre d'éléments à renvoyer par page. La valeur maximale acceptée est de 1 000.
  • NEXT_PAGE_TOKEN : valeur du jeton nextPageToken renvoyée dans la réponse JSON.

Vous pouvez également utiliser le script suivant pour collecter les résultats paginés de la requête d'API susmentionnée dans un fichier :

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

Facultatif : Écrivez la liste triée des noms de packages Java principaux dans FILENAME2.

Les actions de ligne de commande supplémentaires suivantes filtrent la liste brute des packages Java renvoyés pour ne vous donner qu'une liste des noms de packages principaux.

  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

Facultatif : Écrivez la liste triée des versions du package Java dans FILENAME3

Les actions de ligne de commande supplémentaires suivantes filtrent la liste brute des packages Java renvoyés pour ne vous donner qu'une liste des versions de package.

  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

Lister tous les packages Python disponibles dans Assured OSS

Vous pouvez utiliser une API REST pour lister tous les packages Python et leurs versions. Ces packages sont disponibles pour Python 3.8.

Pour le niveau sans frais d'Assured OSS, saisissez la requête HTTP suivante :

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

Pour le niveau Premium d'Assured OSS, saisissez la requête HTTP suivante :

  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"

Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

Pour lister tous les packages spécifiques à votre environnement, utilisez le script generator.sh.

La commande suivante est un exemple de commande curl permettant de se connecter au dépôt Python Assured OSS au niveau sans frais :

  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 requête renvoie une réponse semblable à l'exemple suivant :

  {
  "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"
      }
    ]
  }

Si de nombreux packages sont disponibles, la réponse de l'API peut être paginée. Le jeton de continuité nextPageToken est renvoyé dans la réponse lorsque la liste est incomplète. nextPageToken représente le dernier résultat renvoyé. Lorsque vous transmettez la valeur de nextPageToken au paramètre pageToken d'une requête ultérieure, vous renvoyez la page de résultats suivante, en commençant après le dernier résultat.

Pour afficher la page de résultats suivante ou augmenter le nombre d'objets renvoyés par page, utilisez l'URL suivante dans le niveau sans frais :

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

Remplacez les éléments suivants :

  • NUMBER : nombre d'éléments à renvoyer par page. La valeur maximale acceptée est de 1 000.
  • NEXT_PAGE_TOKEN : valeur du jeton nextPageToken renvoyée dans la réponse JSON.

Vous pouvez également utiliser le script suivant pour collecter les résultats paginés de la requête d'API susmentionnée dans un fichier.

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

Facultatif : Écrivez la liste triée des noms de packages Python principaux dans FILENAME5

Les actions de ligne de commande supplémentaires suivantes filtrent la liste brute des packages Python renvoyés pour ne vous donner qu'une liste des noms de packages principaux.

  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

Facultatif : Écrivez la liste triée des versions du package Python dans FILENAME6.

Les actions de ligne de commande supplémentaires suivantes filtrent la liste brute des packages Python renvoyés pour vous donner une liste des versions de package uniquement.

  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

Lister tous les packages Go disponibles dans Assured OSS

Vous pouvez utiliser une API REST pour lister tous les packages Go et leurs versions.

Pour le niveau sans frais d'Assured OSS, saisissez la requête HTTP suivante :

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"

Pour le niveau Premium d'Assured OSS, saisissez la requête HTTP suivante :

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

Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné lors de la configuration d'Assured OSS.

Voici un exemple de commande curl permettant de se connecter au dépôt Go sur le forfait sans frais :

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 requête renvoie une réponse semblable à la suivante :

{
  "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"
    }
  ]
}

Si de nombreux packages sont disponibles, la réponse de l'API peut être paginée. Le jeton de continuité nextPageToken est renvoyé dans la réponse lorsque la liste est incomplète. nextPageToken représente le dernier résultat renvoyé. Lorsque vous transmettez la valeur de nextPageToken au paramètre pageToken d'une requête ultérieure, vous renvoyez la page de résultats suivante, en commençant après le dernier résultat.

Pour afficher la page de résultats suivante ou augmenter le nombre d'objets renvoyés par page, utilisez l'URL suivante :

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

Remplacez les éléments suivants :

  • NUMBER : nombre d'éléments à renvoyer par page. La valeur maximale acceptée est de 1 000.
  • NEXT_PAGE_TOKEN : valeur du jeton nextPageToken renvoyée dans la réponse JSON.

Vous pouvez également utiliser le script suivant pour collecter les résultats paginés de la requête API dans un fichier :

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

Facultatif : Écrivez une liste triée des noms de packages Go principaux dans FILENAME8.

Les actions suivantes filtrent la liste brute des modules Go pour vous fournir une liste des noms de packages principaux :

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

Facultatif : Écrivez une liste triée des versions du package Go dans FILENAME9.

Bien qu'il n'existe pas de requête HTTP directe pour lister toutes les versions d'un package Go, vous pouvez lister toutes les versions d'un package Go spécifique. Vous pouvez générer une liste complète de toutes les versions de package Go en listant de manière itérative les versions de chaque package Go identifié dans la liste de FILENAME8.

Les actions suivantes filtrent la liste brute des versions de package Go renvoyées pour vous fournir une liste des versions de package :

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

Étapes suivantes