コマンドラインから API Hub をプロビジョニングする

このページは ApigeeApigee ハイブリッドに適用されます。

このドキュメントでは、コマンドラインから API Hub をプロビジョニングする方法について説明します。ウィザード スタイルの UI を使用して API Hub をプロビジョニングする場合は、Cloud コンソールで API Hub をプロビジョニングするをご覧ください。

始める前に

  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.

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Google アカウントのメールアドレスです。

    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。

    ステップの概要

    プロビジョニングの手順は次のとおりです。

    1. ステップ 1: API を有効にする。Apigee API Hub を動作させるには、一連の Google Cloud APIs を有効にする必要があります。
    2. ステップ 2: Apigee API Hub サービス ID を作成する。サービス ID を使用すると、API Hub インスタンスはオペレーションの実行に必要な Google Cloud APIs を呼び出すことができます。
    3. 手順 3. 暗号化を構成する。保存中の API データを暗号化および復号するために、 Google が所有し Google が管理する 暗号鍵(GMEK)または顧客管理の暗号鍵(CMEK)のアプローチを使用するかどうかを選択できます。 CMEK と、Google が所有し管理する鍵 Google が所有し管理する 暗号鍵の比較をご覧ください。
    4. ステップ 4: API Hub インスタンスを作成する。最後に、ホスト プロジェクトを登録して API Hub インスタンスを作成する必要があります。

    プロビジョニングのステップ

    始める前にに記載されている前提条件を満たしていることを確認します。

    ステップ 1: API を有効にする

    API Hub をプロビジョニングするには、 Google Cloud プロジェクトで次の API を有効にする必要があります。

    1. 次の services enable コマンドを実行して、必要な Google Cloud APIs を有効にします。

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

      ここで、YOUR_PROJECT_ID は、始める前にで作成した Cloud プロジェクト ID です。

    ステップ 2: Apigee API Hub サービス ID を作成する

    サービス ID を使用すると、API Hub インスタンスはオペレーションの実行に必要な Google Cloud APIs を呼び出すことができます。

    1. サービス ID を作成します。

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

      ここで、YOUR_PROJECT_ID は、始める前にで作成した Cloud プロジェクト ID です。

    2. エージェントが正常に作成されたことを確認します。レスポンスには、次の形式でエージェントの名前が含まれます。 service-PROJECT_NUMBER@gcp-sa-apihub.iam.gserviceaccount.com次に例を示します。

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

      このサービス ID は、後の手順で使用する必要があります。

    ステップ 3: 暗号化を構成する

    このステップでは、API Hub インスタンスのデータの暗号化を管理する方法を構成します。 Google 所有の Google 管理 暗号鍵(GMEK)を使用することも、独自の顧客管理の暗号鍵(CMEK)を作成することもできます。 CMEK と、Google が所有し管理する鍵 Google が所有し管理する鍵 の比較をご覧ください。

    CMEK の手順

    データ暗号化に CMEK を使用する場合は、次の手順を行います。

    1. ランタイム データベースの暗号化キーリングと鍵を作成します。必要に応じて、既存の CMEK 鍵とキーリングを使用できます。鍵は、API Hub インスタンスを作成する場所と同じ場所に作成する必要があります。

      1. 新しいキーリングを作成します。

        キーリングの名前は組織に固有のものであることが必要です。2 番目のリージョンまたは後続のリージョンを作成する場合、他のキーリングと同じ名前にすることはできません。

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

        ここで

        • KEY_RING_NAME: 作成するキーリングの名前。
        • KEY_RING_LOCATION: キーリングの物理的なロケーション。このロケーションは、後で作成する API Hub インスタンスに使用するロケーションと同じにする必要があります。次のいずれかのサポートされているロケーションを使用する必要があります。

          リージョンの説明 リージョン名
          アイオワ us-central1
          北バージニア us-east4
          オレゴン us-west1
          ベルギー europe-west1
          ロンドン europe-west2
          シンガポール asia-southeast1
          ムンバイ asia-south1
          サンパウロ southamerica-east1
          シドニー australia-southeast1

        • YOUR_PROJECT_ID: 始める前にで作成した Cloud プロジェクト ID。
      2. 暗号鍵を作成してキーリングに追加します。

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

        ここで

        • KEY_NAME: 作成するデータベースの鍵の名前。
        • KEY_RING_NAME: 作成したキーリングの名前。
        • KEY_LOCATION: 鍵の物理的なロケーション。キーリングの作成に使用したのと同じロケーションを使用します。

      3. 鍵 ID を取得します。
        gcloud kms keys list \
          --location=KEY_LOCATION \
          --keyring=KEY_RING_NAME \
          --project=YOUR_PROJECT_ID

        鍵 ID の構文は次のとおりです(ファイルパスに似ています)。このキー ID は、後の手順で必要になるので保持しておきます。

        projects/YOUR_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      4. Apigee サービス エージェントに、新しい鍵を使用するためのアクセス権を付与します。

        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 は、手順 2 で作成したサービス アカウントの ID です。ID は service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com のようになります。

        このコマンドにより、鍵が Apigee API Hub サービス エージェントにバインドされます。

        このリクエストが正常に完了すると、gcloud から次のようなレスポンスが返されます。

        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

        次のようなエラーが発生することがあります。

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

        サービス アカウントのメールアドレスにプロジェクト名ではなく、プロジェクト番号を使用していることを確認してください。

    GMEK の手順

    データの暗号化に GMEK を使用する場合は、次のステップの ステップ 4: API Hub インスタンスを作成するに進みます。 鍵の構成は必要ありません。

    ステップ 4: API Hub インスタンスを作成する

    ホスト プロジェクトは、Apigee API Hub をプロビジョニングする Google Cloud プロジェクトです。ホスト プロジェクトごとにプロビジョニングできる API Hub インスタンスは 1 つだけです。

    1. ホスト プロジェクトを登録します。
      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

      ここで

      • YOUR_PROJECT_ID: 始める前にで作成した Cloud プロジェクト ID。
      • PROJECT_LOCATION: Apigee API Hub インスタンスをホストする物理的な場所(リージョン)。CMEK 鍵とキーリングの作成に使用したのと同じロケーションを使用する必要があります。サポートされているリージョンは次のとおりです。

        リージョンの説明 リージョン名
        アイオワ us-central1
        北バージニア us-east4
        オレゴン us-west1
        ベルギー europe-west1
        ロンドン europe-west2
        シンガポール asia-southeast1
        ムンバイ asia-south1
        サンパウロ southamerica-east1
        シドニー australia-southeast1

      • HOST_ID: ホスト プロジェクトの名前。
    2. API Hub インスタンスを作成します。

      CMEK を使用する場合

      データ暗号化に CMEK を使用した場合は、次のコマンドを実行します。

      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

      ここで

      • KEY_NAME(必須): CMEK 鍵の完全修飾名。この名前は、キーの作成時に返されました。例: projects/YOUR_PROJECT_ID/locations/HOST_LOCATION/hostProjectRegistrations/HOST_ID
      • VERTEX_LOCATION(省略可): Vertex AI ベースの検索データ(API Hub のセマンティック検索機能に関連付けられたデータ)を保存するマルチリージョンのロケーションを指定します。この値には us または eu を使用できます。これらのマルチリージョンのいずれも使用しない場合は、このパラメータを省略してセマンティック検索を無効にできます。
      • encryptionType(必須)CMEK を使用する必要があります。
      • YOUR_PROJECT_ID は、始める前にで作成した Cloud プロジェクト ID です。
      • PROJECT_LOCATION: ホスト プロジェクトの登録に使用したのと同じロケーションを使用する必要があります。
      • INSTANCE_ID: API Hub インスタンスの名前。この値は 4 ~ 40 文字で、有効な文字は /[a-z][A-Z][0-9]-_/ です。

      GMEK を使用する場合

      データ暗号化に GMEK を使用している場合は、次のコマンドを実行します。

      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

      ここで

      • VERTEX_LOCATION(省略可): Vertex AI ベースの検索データ(API Hub のセマンティック検索機能に関連付けられたデータ)を保存するマルチリージョンのロケーションを指定します。この値には us または eu を使用できます。これらのマルチリージョンのいずれも使用しない場合は、このパラメータを省略してセマンティック検索を無効にできます。
      • encryptionTypeGMEK でなければなりません。暗号化タイプを指定しない場合、デフォルトは GMEK です。
      • YOUR_PROJECT_ID は、始める前にで作成した Cloud プロジェクト ID です。
      • PROJECT_LOCATION: ホスト プロジェクトの登録に使用したのと同じロケーションを使用する必要があります。
      • INSTANCE_ID: API Hub インスタンスの名前。この値は 4 ~ 40 文字で、有効な文字は /[a-z][A-Z][0-9]-_/ です。
    3. ステップ 5: (省略可)ランタイム プロジェクト アタッチメントを作成する

      Apigee プロキシがあるプロジェクトに API Hub をプロビジョニングした場合は、このオプションの手順を実行して、API Hub にプロキシを自動的に登録します。

      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

      ここで

      • YOUR_PROJECT_ID は、始める前にで作成した Cloud プロジェクト ID です。
      • PROJECT_LOCATION: ホスト プロジェクトの登録に使用したのと同じロケーションを使用する必要があります。

      次のステップ

      これで API Hub を使用できるようになりました。