認証トークンを取得する
このトピックの後半で説明する 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"
出力に
roles/apigee.admin
が含まれているはずです。 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-synchronizer"
- 次のコマンドを使用して 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-synchronizer@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
ここで
${ORG_NAME}
: ハイブリッド組織の名前。apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com
: サービス アカウントのメールアドレス。
データ所在地
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
ここで
CONTROL_PLANE_LOCATION
: ハイブリッド インストールでデータ所在地を使用する場合のコントロール プレーン データのロケーション。お客様のコアコンテンツ(プロキシ バンドルなど)が保存されるロケーション。リストについては、使用可能な Apigee API コントロール プレーンのリージョンをご覧ください。${ORG_NAME}
: ハイブリッド組織の名前。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"
データ所在地
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}:getSyncAuthorization"
出力は次のようになります。
{ "identities":[ "serviceAccount:apigee-synchronizer@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
これで、Apigee ハイブリッド ランタイム プレーンと管理プレーンの通信が可能になりました。次に cert-manager をインストールして、Apigee ハイブリッドで証明書の解釈と管理を行えるようにします。