ステップ 7: コントロール プレーンのアクセスを有効にする

ランタイム プレーンとコントロール プレーンが通信するには、updateControlPlaneAccess API を使用して、Synchronizer とアナリティクス パブリッシャーのアクセスに必要な権限を有効にする必要があります。

認証トークンを取得する

このトピックの後半で説明する Apigee API 呼び出しを行うには、Apigee 組織管理者のロールを持つ認証トークンを取得する必要があります。

  1. Apigee ハイブリッド組織に関連付けられている Google Cloud プロジェクトのオーナーでない場合は、Google Cloud ユーザー アカウントに roles/apigee.admin(Apigee 組織管理者)ロールがあることを確認してください。次のコマンドで、割り当てられているロールを確認できます。
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    例:

    gcloud projects get-iam-policy my-project  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:myusername@example.com"

    出力に roles/apigee.admin が含まれているはずです。

  2. roles/apigee.admin がない場合は、ご利用のユーザー アカウントに Apigee 組織管理者のロールを追加します。次のコマンドを使用して、ユーザー アカウントにロールを追加します。
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    次に例を示します。

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. コマンドラインで次のコマンドを使用して gcloud 認証情報を取得します。

    Linux / macOS

    export TOKEN=$(gcloud auth print-access-token)

    トークンにデータが入力されていることを確認するには、次の例のように echo を使用します。

    echo $TOKEN

    エンコードされた文字列としてトークンが表示されるはずです。

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    トークンにデータが入力されていることを確認するには、次の例のように echo を使用します。

    echo %TOKEN%

    エンコードされた文字列としてトークンが表示されるはずです。

Synchronizer アクセスを有効にする

Synchronizer アクセスを有効にするには、次の手順を行います。

  1. Synchronizer アクセスを許可するサービス アカウントのメールアドレスを取得します。非本番環境(このチュートリアルでの推奨)の場合は、apigee-non-prod にします。本番環境の場合は、apigee-synchronizer にします。次のコマンドを使用します。
    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
  2. 次のコマンドを使用して updateControlPlaneAccess API を呼び出し、Synchronizer に必要な権限を有効にします。

    データ所在地を使用しない場合

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    ここで

    • ${ORG_NAME}: ハイブリッド組織の名前。
    • apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com: サービス アカウントのメールアドレス。

    データ所在地

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    ここで

    • CONTROL_PLANE_LOCATION: ハイブリッド インストールでデータ所在地を使用する場合のコントロール プレーン データのロケーション。お客様のコアコンテンツ(プロキシ バンドルなど)が保存されるロケーション。リストについては、使用可能な Apigee API コントロール プレーンのリージョンをご覧ください。
    • ${ORG_NAME}: ハイブリッド組織の名前。
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: サービス アカウントのメールアドレス。
  3. サービス アカウントが設定されたことを確認するには、次のコマンドを使用して API を呼び出し、サービス アカウントのリストを取得します。

    データ所在地を使用しない場合

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    データ所在地

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    出力は次のようになります。

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }

アナリティクスのパブリッシャー アクセスを有効にする

いくつかの Apigee ハイブリッド ランタイム コンポーネントは、分析レコードとデバッグ レコードを公開して、レポートとデバッグに必要な情報を提供します。このデータの公開を有効にするには、これらの Apigee コンポーネントを実行するサービス アカウントに、データをコントロール プレーンに直接パブリッシュするための追加の権限を付与する必要があります。

アナリティクスのパブリッシャー アクセスを有効にするには:

  1. 次のコマンドを使用して、コントロール プレーンにデータをパブリッシュする権限をランタイム サービス アカウントに設定します。

    データ所在地を使用しない場合

    curl -X  PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"

    データ所在地

    curl -X  PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"

    レスポンスは次のようになります。

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "IN_PROGRESS"
      }
    }
    
  2. 更新レスポンスの name パラメータを使用して、オペレーションの状態を確認します。

    データ所在地を使用しない場合

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    データ所在地

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    レスポンスは次のようになります。

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
        "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess"
      }
    }
    
  3. 組織の ControlPlaneAccess 構成を確認します。

    データ所在地を使用しない場合

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    データ所在地

    curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    レスポンスは次のようになります。

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ],
      "analyticsPublisherIdentities": [
        "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }
    

これで、Apigee ハイブリッド ランタイム プレーンと管理プレーンの通信が可能になりました。次に cert-manager をインストールして、Apigee ハイブリッドで証明書の解釈と管理を行えるようにします。

次のステップ

1 2 3 4 5 6 7 (次)ステップ 8: cert-manager をインストールする 9 10 11