管理プレーンから Apigee アーティファクトを取得できるように、Synchronizer サービスにアクセス権を付与する必要があります。アクセス権を付与するには、Hybrid API を呼び出します。
API を呼び出すには、サービス アカウントの作成の完了時にダウンロードしたサービス アカウント キーからアクセス トークンを生成します。このセクションで説明したように、サービス アカウントには Apigee 組織管理者の権限が必要です。API で POST を実行するために書き込み権限が必要なため、この権限レベルは必須になります。
GCP アカウントの設定手順をすべて完了し、ハイブリッド対応組織をプロビジョニングしたら(ステップ 4: 組織を作成するを参照)、次の操作を行います。
- Apigee API が有効になっていることを確認します。プロジェクトで API を有効にする最も簡単な方法は、Google Cloud Platform(GCP)Console を使用することです。詳細については、GCP ドキュメントで API の有効化をご覧ください。
- OAuth 2.0 アクセス トークンを取得します。
- 次のいずれかの方法で 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
- 返された OAuth 2.0 トークンをコピーし、
TOKEN
のような変数に格納します。例:export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
- 次のいずれかの方法で OAuth 2.0 アクセス トークンを取得し、Apigee API の呼び出しで渡します。
- 次の 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=" }
- 次の 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"]}'
- サービス アカウントが設定されたことを確認するには、次の 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=" }
- 次のステップ(オーバーライド ファイルを作成する)に進みます。