שלב 8: הפעלת גישה ל-Control Plane

כדי שמישור זמן הריצה ומישור הבקרה יוכלו לתקשר, צריך להפעיל את ההרשאות הנדרשות לגישה של Synchronizer ושל מפרסם הניתוחים באמצעות updateControlPlaneAccess API.

קבלת טוקן הרשאה

כדי לבצע את הקריאות ל-Apigee API שמתוארות בהמשך הנושא, צריך לקבל אסימון הרשאה עם התפקיד "אדמין ארגוני ב-Apigee".

  1. אם אתם לא הבעלים של הפרויקט בענן ב-Google Cloud שמשויך לארגון שלכם ב-Apigee Hybrid, ודאו שלחשבון המשתמש שלכם ב-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%

    האסימון אמור להופיע כמחרוזת מקודדת.

הפעלת הגישה לסנכרון

כדי להפעיל את הגישה לסנכרון:

  1. משיגים את כתובת האימייל של חשבון השירות שאתם נותנים לו גישה לסנכרון. בסביבות ייצור, הערך צריך להיות apigee-synchronizer. בסביבות ללא ייצור, הערך צריך להיות apigee-non-prod. משתמשים בפקודה הבאה:

    ייצור

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"

    לא בסביבת ייצור

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. מפעילים את ה-API‏ updateControlPlaneAccess כדי להפעיל את ההרשאות הנדרשות לסנכרון באמצעות הפקודה הבאה:

    אין מיקום לאחסון הנתונים

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    כאשר:

    • ‫${ORG_NAME}: השם של הארגון ההיברידי.
    • ‫apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: כתובת האימייל של חשבון השירות.

    מיקום אחסון הנתונים

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount: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}/controlPlaneAccess"
        

    מיקום אחסון הנתונים

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    הפלט אמור להיראות כך:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }

הפעלת גישה לבעלי תוכן דיגיטלי ב-Analytics

כמה רכיבי זמן ריצה של Apigee hybrid מפרסמים רשומות של ניתוח נתונים וניפוי באגים כדי לספק מידע לדיווח ולניפוי באגים. כדי לאפשר פרסום של הנתונים האלה, צריך לתת הרשאות נוספות לחשבונות השירות שמריצים את רכיבי Apigee האלה, כדי לפרסם נתונים ישירות במישור הבקרה.

כדי לתת לבעלי האתרים גישה ל-Analytics:

  1. משיגים את כתובת האימייל של חשבונות השירות שאתם רוצים לתת להם גישה של בעלי תוכן דיגיטלי ב-Analytics. בסביבות ייצור, התפקידים צריכים להיות apigee-runtime,‏ apigee-mart ו-apigee-mint-task-scheduler (אם מפעילים את Monetization for Apigee hybrid). בסביבות ללא ייצור, הערך צריך להיות apigee-non-prod.

    ייצור

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"

    לא בסביבת ייצור

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. מגדירים הרשאות לחשבונות השירות של רכיבי זמן הריצה, MART ומתזמן המשימות של mint (אם מפעילים את Monetization for Apigee hybrid בגרסה v1.15.1 ואילך) כדי לפרסם נתונים במישור הבקרה באמצעות הפקודה הבאה:

    אין מיקום לאחסון הנתונים

    מפעילים את ה-API של updateControlPlaneAccess כדי להפעיל הרשאות לחשבונות השירות של סביבת זמן הריצה ו-MART:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    אם אתם מפעילים את המונטיזציה ב-Apigee hybrid, הגדירו את ההרשאות לחשבון השירות של מתזמן המשימות של mint:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    כאשר אלה כתובות האימייל של חשבונות השירות:

    • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    מיקום אחסון הנתונים

    קוראים ל-API של updateControlPlaneAccess כדי להפעיל הרשאות לחשבונות השירות של סביבת זמן הריצה ו-MART:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    אם אתם מפעילים את Monetization ב-Apigee hybrid, הגדירו את ההרשאות לחשבון השירות של מתזמן המשימות של mint:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    כאשר:

    • ‫CONTROL_PLANE_LOCATION הוא המיקום של נתוני מישור הבקרה אם ההתקנה ההיברידית משתמשת במיקום אחסון הנתונים. זהו המיקום שבו מאוחסן תוכן הליבה של הלקוח, כמו חבילות שרת proxy. רשימת האזורים הזמינים של מישור הבקרה של Apigee API
    • אלה כתובות האימייל של חשבונות השירות:

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    התגובה אמורה להיראות כך:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "IN_PROGRESS"
      }
    }
    
  3. מאמתים את מצב הפעולה באמצעות המזהה בשדה name של תגובת העדכון:

    אין מיקום לאחסון הנתונים

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    מיקום אחסון הנתונים

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    התגובה אמורה להיראות כך:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
        "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess"
      }
    }
    
  4. מאמתים את ההגדרה של ControlPlaneAccess בארגון:

    אין מיקום לאחסון הנתונים

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    מיקום אחסון הנתונים

    curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    התגובה אמורה להיראות כך:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ],
      "analyticsPublisherIdentities": [
        "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }
    

עכשיו הפעלתם את מישור הניהול ומישור זמן הריצה של Apigee Hybrid כדי שהם יוכלו לתקשר. בשלב הבא, מתקינים את cert-manager כדי לאפשר ל-Apigee hybrid לפרש ולנהל אישורים.

השלב הבא

1 2 3 4 5 6 7 8 (השלב הבא) שלב 9: התקנת cert-manager 10 11