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

    出力に roles/apigee.admin が含まれているはずです。

  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-synchronizer"
  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-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: サービス アカウントのメールアドレス。
  3. サービス アカウントが設定されたことを確認するには、次のコマンドを使用して 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 ハイブリッドで証明書の解釈と管理を行えるようにします。

次のステップ