ステップ 7: 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"

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

    ROLE
    roles/apigee.admin
    roles/compute.admin
    roles/container.admin
    roles/gkehub.admin
    roles/iam.serviceAccountAdmin
    roles/iam.serviceAccountKeyAdmin
    roles/meshconfig.admin
    roles/owner
    roles/resourcemanager.projectIamAdmin
    roles/servicemanagement.admin
    roles/serviceusage.serviceUsageAdmin
  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-non-prod"

    パターン apigee-non-prod@${ORG_NAME}.iam.gserviceaccount.com と一致する場合、そのパターンは次のステップで使用できます。

    本番

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"

    パターン apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com と一致する場合、そのパターンは次のステップで使用できます。

  2. 次のコマンドを使用して setSyncAuthorization API を呼び出し、Synchronizer に必要な権限を有効にします。

    本番以外の環境

    curl -X POST -H "Authorization: Bearer ${TOKEN}" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-non-prod@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
    

    本番

    curl -X POST -H "Authorization: Bearer ${TOKEN}" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
    

    ここで

    • ${ORG_NAME}: ハイブリッド組織の名前。
    • apigee-non-prod${ORG_NAME}.iam.gserviceaccount.com または
      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}:getSyncAuthorization"
        

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

    本番以外の環境

    {
       "identities":[
          "serviceAccount:apigee-non-prod@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

    本番環境

    {
       "identities":[
          "serviceAccount:apigee-synchronizer@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

これで、Apigee ハイブリッド ランタイムと管理プレーンによる通信が可能になりました。次に、ハイブリッド ランタイムに構成を適用し、Apigee ハイブリッドのインストールを完了します。