Provisionner le hub d'API à partir de la ligne de commande

Cette page s'applique à Apigee et à Apigee hybrid.

Ce document explique comment provisionner le hub d'API à partir de la ligne de commande. Si vous préférez provisionner le hub d'API à l'aide de l'UI de type assistant, consultez Provisionner le hub d'API dans la console Cloud.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project:

    • roles/serviceusage.serviceUsageAdmin
    • roles/cloudkms.admin
    • roles/apihub.provisioningAdmin
    • roles/resourcemanager.projectIamAdmin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.

    Résumé des étapes

    Les étapes de provisionnement sont les suivantes :

    1. Étape 1 : Activez les API. Vous devez activer un ensemble d'API Google Cloud pour que le hub d'API Apigee fonctionne.
    2. Étape 2: Créez l'identité de service du hub d'API Apigee. L'identité de service permet à l'instance du hub d'API d'appeler les API Google Cloud dont elle a besoin pour effectuer ses opérations.
    3. Étape 3 : Configurez le chiffrement. Vous pouvez choisir d'utiliser une approche Google-owned and Google-managed encryption key (GMEK) ou une clé de chiffrement gérée par le client (CMEK) pour chiffrer et déchiffrer vos données d'API au repos. Consultez la page Comparison of CMEK and Google-owned and Google-owned and Google-managed encryption keys (Comparaison entre le chiffrement CMEK et les clés gérées par Google)
    4. Étape 4: Créez l'instance du hub d'API. Pour terminer, vous devez enregistrer le projet hôte et créer l'instance du hub d'API.

    Procédure de provisionnement

    Assurez-vous de remplir les conditions préalables décrites dans la section Avant de commencer.

    Étape 1 : Activez les API

    Pour provisionner le hub d'API, vous devez activer les API suivantes dans votre Google Cloud projet:

    1. Activez les API Google Cloud requises en exécutant la commande services enable suivante:

      gcloud services enable apihub.googleapis.com \
          cloudkms.googleapis.com --project=YOUR_PROJECT_ID

      YOUR_PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Avant de commencer.

    Étape 2: Créez l'identité de service du hub d'API Apigee

    L'identité de service permet à l'instance du hub d'API d'appeler les API Google Cloud dont elle a besoin pour effectuer ses opérations.

    1. Créez l'identité du service:

      gcloud beta services identity create --service=apihub.googleapis.com \
        --project=YOUR_PROJECT_ID

      YOUR_PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Avant de commencer.

    2. Vérifiez que l'agent a bien été créé. La réponse inclut le nom de l'agent au format suivant : service-PROJECT_NUMBER@gcp-sa-apihub.iam.gserviceaccount.com. Exemple :

      Service identity created: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com

      Notez que vous devrez utiliser cette identité de service lors d'une étape ultérieure.

    Étape 3: Configurer le chiffrement

    Au cours de cette étape, vous allez configurer la gestion du chiffrement des données dans votre instance de hub d'API. Vous pouvez utiliser une clé de chiffrement gérée par le client(CMEK) ou créer votre propre clé de chiffrement gérée par le client (CMEK). Google-owned and Google-managed encryption key Consultez la page Comparison of CMEK and Google-owned and Google-owned and Google-managed encryption keys (Comparaison entre le chiffrement CMEK et les clés gérées par Google)

    Étapes CMEK

    Si vous souhaitez utiliser CMEK pour le chiffrement des données, procédez comme suit:

    1. Créez un trousseau de clés et une clé de chiffrement de la base de données d'exécution : Si vous le souhaitez, vous pouvez utiliser une clé et un trousseau CMEK existants. Notez que la clé doit être créée au même emplacement que celui où vous prévoyez de créer l'instance du hub d'API.

      1. Créez un trousseau de clés :

        Le nom du trousseau de clés doit être unique au sein de votre organisation. Si vous créez une deuxième région ou plus, le nom ne peut pas être identique à celui d'un autre trousseau de clés.

        gcloud kms keyrings create KEY_RING_NAME \
          --location KEY_RING_LOCATION --project YOUR_PROJECT_ID

        Où :

        • KEY_RING_NAME: nom du trousseau de clés à créer.
        • KEY_RING_LOCATION: emplacement physique du trousseau de clés. Cet emplacement doit être le même que celui que vous prévoyez d'utiliser pour l'instance de hub d'API que vous créerez ultérieurement. Vous devez utiliser l'un des emplacements compatibles suivants:

          Description de la région Nom de la région
          Iowa us-central1
          Virginie du Nord us-east4
          Oregon us-west1
          Belgique europe-west1
          Londres europe-west2
          Singapour asia-southeast1
          Mumbai asia-south1
          São Paulo southamerica-east1
          Sydney australia-southeast1

        • YOUR_PROJECT_ID: ID du projet Cloud que vous avez créé dans la section Avant de commencer.
      2. Créez la clé de chiffrement et ajoutez-la au trousseau de clés:

        gcloud kms keys create KEY_NAME \
          --keyring KEY_RING_NAME \
          --location KEY_LOCATION \
          --purpose "encryption" \
          --project YOUR_PROJECT_ID

        Où :

        • KEY_NAME: nom de la clé de base de données que vous créez.
        • KEY_RING_NAME: nom du trousseau de clés que vous venez de créer.
        • KEY_LOCATION: emplacement physique de la clé. Utilisez le même emplacement que celui que vous avez utilisé pour créer le trousseau de clés.

      3. Obtenez l'ID de la clé :
        gcloud kms keys list \
          --location=KEY_LOCATION \
          --keyring=KEY_RING_NAME \
          --project=YOUR_PROJECT_ID

        L'ID de clé utilise la syntaxe suivante (semblable à un chemin de fichier) : Conservez cet ID de clé, car vous devrez l'utiliser à une étape ultérieure:

        projects/YOUR_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      4. Autorisez l'agent de service Apigee à utiliser la nouvelle clé :

        gcloud kms keys add-iam-policy-binding KEY_NAME \
          --location KEY_LOCATION \
          --keyring KEY_RING_NAME \
          --member serviceAccount:SERVICE_ACCOUNT \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project YOUR_PROJECT_ID

        SERVICE_ACCOUNT correspond à l'ID du compte de service que vous avez créé à l'étape 2. L'ID ressemble à ceci: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com.

        Cette commande associe la clé à l'agent de service du hub d'API Apigee.

        Si la requête réussit, gcloud envoie une réponse semblable à celle-ci :

        Updated IAM policy for key [runtime].
        bindings:
        - members:
          - serviceAccount:service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com
          role: roles/cloudkms.cryptoKeyEncrypterDecrypter
        etag: BwWqgEuCuwk=
        version: 1

        Si vous obtenez une erreur semblable à celle-ci :

        INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

        Assurez-vous d'avoir utilisé le numéro du projet, et non le nom du projet dans l'adresse e-mail du compte de service.

    Étapes du GMEK

    Si vous souhaitez utiliser une GMEK pour le chiffrement des données, passez directement à l'étape suivante, Étape 4: Créer l'instance de hub d'API. Aucune configuration de clé supplémentaire n'est requise.

    Étape 4: Créez l'instance de hub d'API

    Un projet hôte est le Google Cloud projet dans lequel vous provisionnerez le hub d'API Apigee. Vous ne pouvez provisionner qu'une seule instance de hub d'API par projet hôte.

    1. Enregistrez le projet hôte:
      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -d '{
        "gcpProject": "projects/YOUR_PROJECT_ID"
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/hostProjectRegistrations?host_project_registration_id=HOST_ID

      Où :

      • YOUR_PROJECT_ID: ID du projet Cloud que vous avez créé dans la section Avant de commencer.
      • PROJECT_LOCATION: emplacement physique (région) dans lequel vous souhaitez héberger votre instance de hub d'API Apigee. Vous devez utiliser le même emplacement que celui que vous avez utilisé pour créer la clé CMEK et le trousseau de clés. Les régions suivantes sont acceptées:

        Description de la région Nom de la région
        Iowa us-central1
        Virginie du Nord us-east4
        Oregon us-west1
        Belgique europe-west1
        Londres europe-west2
        Singapour asia-southeast1
        Mumbai asia-south1
        São Paulo southamerica-east1
        Sydney australia-southeast1

      • HOST_ID: nom du projet hôte.
    2. Créez l'instance du hub d'API :

      Avec CMEK

      Si vous avez utilisé CMEK pour le chiffrement des données, exécutez la commande suivante:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "cmekKeyName":"KEY_NAME",
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"CMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Où :

      • KEY_NAME (obligatoire): nom complet de la clé CMEK. Ce nom a été renvoyé lors de la création de la clé. Exemple : projects/YOUR_PROJECT_ID/locations/HOST_LOCATION/hostProjectRegistrations/HOST_ID.
      • VERTEX_LOCATION (facultatif): spécifie l'emplacement multirégional dans lequel stocker vos données de recherche basées sur Vertex AI, c'est-à-dire les données associées à la fonctionnalité Recherche sémantique du hub d'API. Vous pouvez utiliser us ou eu pour cette valeur. Si vous ne souhaitez utiliser aucune de ces multirégions, vous pouvez désactiver la recherche sémantique en omettant ce paramètre.
      • encryptionType (obligatoire) Vous devez utiliser CMEK.
      • YOUR_PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Avant de commencer.
      • PROJECT_LOCATION: vous devez utiliser le même emplacement que celui que vous avez utilisé pour enregistrer le projet hôte.
      • INSTANCE_ID: nom de l'instance d'API Hub. Cette valeur doit comporter entre 4 et 40 caractères, et les caractères valides sont /[a-z][A-Z][0-9]-_/.

      Avec GMEK

      Si vous utilisez GMEK pour le chiffrement des données, exécutez la commande suivante:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"GMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Où :

      • VERTEX_LOCATION (facultatif): spécifie l'emplacement multirégional dans lequel stocker vos données de recherche basées sur Vertex AI, c'est-à-dire les données associées à la fonctionnalité Recherche sémantique du hub d'API. Vous pouvez utiliser us ou eu pour cette valeur. Si vous ne souhaitez utiliser aucune de ces multirégions, vous pouvez désactiver la recherche sémantique en omettant ce paramètre.
      • encryptionType doit être GMEK. Si vous ne spécifiez pas de type de chiffrement, GMEK est utilisé par défaut.
      • YOUR_PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Avant de commencer.
      • PROJECT_LOCATION: vous devez utiliser le même emplacement que celui que vous avez utilisé pour enregistrer le projet hôte.
      • INSTANCE_ID: nom de l'instance d'API Hub. Cette valeur doit comporter entre 4 et 40 caractères, et les caractères valides sont /[a-z][A-Z][0-9]-_/.
    3. Étape 5: (Facultatif) Créez une pièce jointe de projet d'exécution

      Si vous avez provisionné le hub d'API dans un projet comportant des proxys Apigee, effectuez cette étape facultative pour enregistrer automatiquement les proxys dans le hub d'API.

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" \
        https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/runtimeProjectAttachments?runtimeProjectAttachmentId=YOUR_PROJECT_ID

      Où :

      • YOUR_PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Avant de commencer.
      • PROJECT_LOCATION: vous devez utiliser le même emplacement que celui que vous avez utilisé pour enregistrer le projet hôte.

      Étape suivante

      Vous êtes maintenant prêt à utiliser le hub d'API :