認証トークンを取得する
このトピックの後半で説明する Apigee API 呼び出しを行うには、Apigee 組織管理者のロールを持つ認証トークンを取得する必要があります。
- 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
- ロールに
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
-
コマンドラインで次のコマンドを使用して
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 アクセスを有効にするには、次の手順を行います。
- 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
と一致する場合、そのパターンは次のステップで使用できます。 - 次のコマンドを使用して 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
: サービス アカウントのメールアドレス。
- サービス アカウントが設定されたことを確認するには、次のコマンドを使用して 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 ハイブリッドのインストールを完了します。