Synchronizer アクセスを有効にする

管理プレーンから Apigee アーティファクトを取得できるように、Synchronizer サービスにアクセス権を付与する必要があります。アクセス権を付与するには、Hybrid API を呼び出す必要があります。

API を呼び出すには、サービス アカウントの作成の完了時にダウンロードしたサービス アカウント キーからアクセス トークンを生成します。このセクションで説明したように、サービス アカウントには Apigee 組織管理者の権限が必要です。API で POST を実行するために書き込み権限が必要なため、この権限レベルは必須になります。

GCP アカウントの設定手順をすべて完了し、ハイブリッド対応組織をプロビジョニングしたら(ステップ 4: 組織を作成するを参照)、次の操作を行います。

  1. Apigee API が有効になっていることを確認します。プロジェクトで API を有効にする最も簡単な方法は、Google Cloud Platform(GCP)Console を使用することです。詳細については、GCP ドキュメントで API の有効化をご覧ください。
  2. OAuth 2.0 アクセス トークンを取得します。
    1. 次のいずれかの方法で OAuth 2.0 アクセス トークンを取得し、Apigee API の呼び出しで渡します。

      gcloud

      gcloud を使用して OAuth 2.0 アクセス トークンを取得します。その際、GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用して手順 1 でダウンロードした、サービス アカウント認証情報が記載された JSON ファイルを渡します。

      export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
      gcloud auth application-default print-access-token

      OAuth2.0 トークンが返されます。

      詳細については、gcloud beta auth application-default print-access-token をご覧ください。

      oauth2l ユーティリティ

      oauth2l を使用して OAuth 2.0 アクセス トークンを取得します。その際、ステップ 1 でダウンロードした、サービス アカウント認証情報が記載された JSON ファイルを渡します。

      oauth2l fetch --json your_sa_credentials_file.json cloud-platform
    2. 返された OAuth 2.0 トークンをコピーし、TOKEN のような変数に格納します。例:
      export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  3. 次の API を呼び出して、組織に関連付けられたサービス アカウントのリストを取得します。組織にサービス アカウントを追加すると、以前に設定したアカウントが上書きされるため、この手順はおすすめです。
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:getSyncAuthorization" \
       -d ''
    

    次の出力は、現在組織に関連付けられているサービス アカウントが存在することを示しています。

    {
      "identities": [
        "serviceAccount:myorg@myproj.iam.gserviceaccount.com"
      ],
      "etag": "BwWJ9RCoWjc="
    }
        
  4. 次の API を呼び出します。この API 呼び出しは、組織にサービス アカウントを追加し、Message Processor が正常に機能するために必要なプロキシ バンドルや他のリソース ファイルを同期する権限を Synchronizer に付与します。
    curl -X POST -H "Authorization: Bearer your_auth_token" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:full_service_account_name_1", \
       "serviceAccount:full_service_account_name_2"]}'"]}'
    

    ここで

    特性 説明
    your_auth_token サービス アカウントの認証情報を取得したトークン。
    your_org_name 作成してプロビジョニングしたハイブリッド組織の名前。
    full_service_account_name サービス アカウントの名前。メールアドレスのような形式になります。例: my_service_account@my_project_id.iam.gserviceaccount.com

    この例では、新しいサービス アカウントを identities 配列に追加し、既存のサービス アカウントを維持しています。

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:my_new_service_account@my_project_id.iam.gserviceaccount.com", \
       "serviceAccount:original_service_account@my_project_id.iam.gserviceaccount.com"]}'
    
  5. サービス アカウントが設定されたことを確認するには、次の API を呼び出してサービス アカウントのリストを取得します。
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:getSyncAuthorization" \
       -d ''
    

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

    {
      "identities": [
        "serviceAccount:my_new_service_account@my_project_id.iam.gserviceaccount.com",
         serviceAccount:original_service_account@my_project_id.iam.gserviceaccount.com],
        "etag": "BwWJgyS8I4w="
    }
        
  6. 次のステップ(オーバーライド ファイルを作成する)に進みます。