הגדרת mTLS של Apigee

לאחר התקנת mTLS של Apigee בכל הצמתים באשכול, עליך להגדיר ולהפעיל את הרכיב apigee-mtls. לשם כך, יוצרים צמד אישור/מפתחות ועדכון קובץ התצורה במכונת הניהול. לאחר מכן פורסים את אותם קבצים וקובץ תצורה שנוצרו בכל הצמתים באשכול ומאתחלים את הרכיב apigee-mtls המקומי.

הגדרת apigee-mtls (לאחר ההתקנה הראשונית)

בקטע הזה נסביר איך להגדיר את mTLS ב-Apigee ישירות אחרי ההתקנה הראשונית. למידע נוסף על עדכון התקנה קיימת של Apigee mTLS, קראו את המאמר שינוי הגדרה קיימת של apigee-mtls.

הקטע הזה רלוונטי להתקנות במרכז נתונים יחיד. מידע נוסף על הגדרת mTLS ב-Apigee בהגדרה מרובים של מרכז נתונים זמין במאמר הגדרה של מרכזי נתונים מרובים עבור Apigee mTLS.

התהליך הכללי להגדרת apigee-mtls הוא:

  1. עדכון קובץ התצורה: במחשב הניהול, מעדכנים את קובץ התצורה כך שיכלול את ההגדרות של apigee-mtls.
  2. Install Consul ויצירת פרטי כניסה: מתקינים את Consul ומשתמשים בו כדי ליצור פרטי כניסה ל-TLS (פעם אחת בלבד).

    בנוסף, ערוך את קובץ התצורה של Apigee mTLS כך:

    1. הוספת הפרטים של פרטי הכניסה
    2. הגדירו את הטופולוגיה של האשכול

    שימו לב, אפשר להשתמש בפרטי הכניסה הקיימים או ליצור אותם באמצעות Consul.

  3. הפצת פרטי הכניסה וקובץ התצורה: מחלקים את אותו זוג אישורים/מפתחות ואת קובץ התצורה המעודכן שנוצרו לכל הצמתים באשכול.
  4. אתחול apigee-mtls: אתחול הרכיב apigee-mtls בכל צומת.

כל אחד מהשלבים האלה מתואר בסעיפים הבאים.

שלב 1: מעדכנים את קובץ התצורה

בקטע הזה נסביר איך לשנות את קובץ התצורה כך שיכלול מאפייני תצורה של mTLS. למידע כללי יותר על קובץ התצורה, ראו יצירת קובץ תצורה.

אחרי עדכון המאפיינים שקשורים ל-mTLS בקובץ התצורה, צריך להעתיק אותו לכל הצמתים באשכול לפני שמאתחלים את הרכיב apigee-mtls בצמתים האלה.

כדי לעדכן את קובץ התצורה:

  1. במחשב הניהול, פותחים את קובץ התצורה לעריכה.
  2. מעתיקים את קבוצת המאפיינים הבאים של תצורת mTLS ומדביקים אותם בקובץ התצורה:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    מגדירים את הערך של כל מאפיין בהתאם להגדרה.

    הטבלה הבאה מתארת את מאפייני התצורה הבאים:

    מאפיין (property) תיאור
    ALL_IP רשימה מופרדת ברווחים של כתובות ה-IP של המארח הפרטי בכל הצמתים באשכול.

    הסדר של כתובות ה-IP לא משנה, אלא שהוא חייב להיות זהה בכל קובצי התצורה בכל האשכול.

    אם מגדירים mTLS ב-Apigee למספר מרכזי נתונים, צריך לרשום את כל כתובות ה-IP של כל המארחים בכל האזורים.

    LDAP_MTLS_HOSTS כתובת ה-IP של המארח הפרטי של צומת OpenLDAP באשכול.
    ZK_MTLS_HOSTS

    רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן מתארחים באשכול צמתים שלzoKeeper.

    שימו לב שלפי הדרישות, חייבים להיות לפחות שלושה צמתים שלzoKeeper.

    CASS_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן מתארחים שרתי Cassandra באשכול.
    PG_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן מתארחים שרתי Postgres באשכול.
    RT_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן הנתבים מתארחים באשכול.
    MTLS_ENCAPSULATE_LDAP הצפנת תעבורת LDAP בין מעבד ההודעות לשרת LDAP. הגדרה לערך y.
    MS_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן הצמתים של שרת הניהול מתארחים באשכול.
    MP_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן מעבדי ההודעות מתארחים באשכול.
    QP_MTLS_HOSTS רשימה מופרדת ברווחים של כתובות IP של מארחים פרטיים, שבהן מתארחים שרתי Qpid באשכול.
    ENABLE_SIDECAR_PROXY המדיניות הזו קובעת אם ההגדרות של Cassandra ו-Postgres יהיו מודעים לרשת השירות.

    חובה להגדיר את הערך הזה כ-'y'.

    ENCRYPT_DATA מפתח ההצפנה בקידוד base64 שבו משתמש Consul. יצרתם את המפתח הזה באמצעות הפקודה consul keygen בשלב 2: התקנת Consul ויצירת פרטי כניסה.

    הערך הזה חייב להיות זהה בכל הצמתים באשכול.

    PATH_TO_CA_CERT המיקום של קובץ האישור בצומת. יצרתם את הקובץ הזה בשלב 2: התקנת Consul ויצירת פרטי כניסה.

    המיקום הזה צריך להיות זהה בכל הצמתים באשכול, כדי שקובצי התצורה יהיו זהים.

    האישור חייב להיות בקידוד X509v3.

    PATH_TO_CA_KEY המיקום של קובץ המפתח בצומת. יצרתם את הקובץ הזה בשלב 2: התקנת Consul ויצירת פרטי כניסה.

    המיקום הזה צריך להיות זהה בכל הצמתים באשכול, כדי שקובצי התצורה יהיו זהים.

    קובץ המפתח חייב להיות בקידוד X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    מספר הימים שבהם האישור תקף כאשר יוצרים אישור מותאם אישית.

    ערך ברירת המחדל הוא 365. הערך המקסימלי הוא 7,865 ימים (5 שנים).

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

  3. חשוב לוודא שהערך של ENABLE_SIDECAR_PROXY הוא "y".
  4. מעדכנים את כתובות ה-IP בנכסים שקשורים למארח. חשוב להשתמש בכתובות IP פרטיות כשהכוונה היא לכל צומת, ולא בכתובות IP הציבוריות.

    בשלבים מאוחרים יותר, תוכלו להגדיר את הערכים של המאפיינים האחרים, כמו ENCRYPT_DATA, PATH_TO_CA_CERT ו-PATH_TO_CA_KEY. עדיין לא הגדרת ערכים שלהם.

    כשעורכים את המאפיינים של הגדרות apigee-mtls, חשוב לשים לב לנקודות הבאות:

    • כל המאפיינים הם מחרוזות. יש להקיף את הערכים של כל המאפיינים במירכאות בודדות או כפולות.
    • אם לערך שקשור למארח יש יותר מכתובת IP פרטית אחת, צריך להפריד בין כתובות ה-IP באמצעות רווח.
    • השתמשו בכתובות IP פרטיות, ולא בשמות מארחים או בכתובות IP ציבוריות לכל המאפיינים הקשורים למארחים בקובץ התצורה.
    • הסדר של כתובות ה-IP בערך של מאפיין חייב להיות באותו סדר בכל קובצי התצורה באשכול.
  5. שומרים את השינויים בקובץ התצורה.

שלב 2: התקנת Consul ויצירה של פרטי כניסה

בקטע הזה מוסבר איך להתקין את Consul וליצור את פרטי הכניסה שבהם משתמשים הרכיבים שהופעל בהם mTLS.

צריך לבחור באחת מהשיטות הבאות כדי ליצור את פרטי הכניסה:

  • (מומלץ) ליצור רשות אישורים (CA) משלכם באמצעות Consul, כפי שמתואר בקטע הזה
  • שימוש בפרטי הכניסה של רשות אישורים קיימת עם Apigee mTLS (מתקדם)

מידע על פרטי הכניסה

פרטי הכניסה כוללים את הפרטים הבאים:

  • אישור: אישור ה-TLS (אבטחת שכבת התעבורה)
  • מפתח: המפתח הציבורי של TLS
  • הודעת רכילות: מפתח הצפנה בקידוד Base-64

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

למידע נוסף על הטמעת ההצפנה ב-Consul, תוכלו לקרוא את המאמרים הבאים:

התקנת Consul ויצירה של פרטי כניסה

כדי ליצור פרטי כניסה שישמשו את Apigee mTLS לאימות תקשורת מאובטחת בין הצמתים באשכול של ענן פרטי, צריך להשתמש בקובץ בינארי מקומי של Console . לכן אתם צריכים להתקין את Consul במכונת הניהול כדי שתוכלו ליצור פרטי כניסה.

כדי להתקין את Consul וליצור פרטי כניסה ל-mTLS:

  1. במחשב הניהול, מורידים את הקובץ הבינארי של Consul 1.8.0 מהאתר של HashiCorp.
  2. מחלצים את התוכן של קובץ הארכיון שהורדתם. לדוגמה, מחלצים את התוכן אל /opt/consul/.
  3. במחשב הניהול, יוצרים רשות אישורים חדשה (CA) על ידי ביצוע הפקודה הבאה:
    /opt/consul/consul tls ca create

    Consul יוצר את הקבצים הבאים, שיוצרים צמד אישור/מפתח:

    • consul-agent-ca.pem (אישור)
    • consul-agent-ca-key.pem (מפתח)

    כברירת מחדל, קובצי אישורים ומפתחות מקודדים X509v3.

    בהמשך הקבצים יועתקו לכל הצמתים באשכול. עם זאת, בשלב זה צריך להחליט רק איפה בצמתים להציב את הקבצים האלה. הם צריכים להיות באותו מיקום בכל צומת. לדוגמה: /opt/apigee/.

  4. בקובץ התצורה, מגדירים את הערך של PATH_TO_CA_CERT למיקום שאליו יועתק הקובץ consul-agent-ca.pem בצומת. לדוגמה:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. מגדירים את הערך של PATH_TO_CA_KEY למיקום שאליו יועתקו הקובץ consul-agent-ca-key.pem בצומת. לדוגמה:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. כדי ליצור מפתח הצפנה ל-Consul, מריצים את הפקודה הבאה:
    /opt/consul/consul keygen

    הפלט של הקונסולה הוא מחרוזת אקראית שנראית דומה לזו:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. מעתיקים את המחרוזת שנוצרה ומגדירים אותה כערך של המאפיין ENCRYPT_DATA בקובץ התצורה. לדוגמה:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. שומרים את קובץ התצורה.

הדוגמה הבאה מציגה את ההגדרות שקשורות ל-mTLS בקובץ תצורה (עם ערכים לדוגמה):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

שלב 3: הפצת קובץ התצורה ופרטי הכניסה

מעתיקים את הקבצים הבאים לכל הצמתים באמצעות כלי כמו scp:

  • קובץ תצורה: מעתיקים את הגרסה המעודכנת של הקובץ הזה ומחליפים את הגרסה הקיימת בכל הצמתים (לא רק בצמתים שמופעלים בהם האפשרותzoKeeper).
  • consul-agent-ca.pem: מעתיקים למיקום שציינתם כערך של PATH_TO_CA_CERT בקובץ התצורה.
  • consul-agent-ca-key.pem: מעתיקים למיקום שציינתם כערך של PATH_TO_CA_KEY בקובץ התצורה.

מוודאים שהמיקומים שאליהם מעתיקים את האישור ואת קובצי המפתח תואמים לערכים שהגדרתם בקובץ התצורה בשלב 2: התקנת Consul ויצירת פרטי כניסה.

שלב 4: מפעילים את apigee-mtls

אחרי שמתקינים את apigee-mtls בכל צומת, מעדכנים את קובץ התצורה ומעתיקים אותו ואת פרטי הכניסה לכל הצמתים באשכול, אפשר להפעיל את הרכיב apigee-mtls בכל צומת.

כדי לאתחל apigee-mtls:

  1. להתחבר לצומת באשכול בתור משתמש השורש. אפשר לבצע את השלבים האלה בצמתים בכל סדר שרוצים.
  2. מגדירים את המשתמש ב-apigee:apigee כבעלים של קובץ התצורה המעודכן, כמו בדוגמה הבאה:
    chown apigee:apigee config_file
  3. מגדירים את הרכיב apigee-mtls על ידי הרצת הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. אם רוצים, מריצים את הפקודה הבאה כדי לוודא שההגדרה הצליחה:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. מפעילים את Apigee mTLS על ידי הרצת הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    אחרי התקנת mTLS של Apigee, צריך להפעיל את הרכיב הזה לפני כל הרכיבים האחרים בצומת.

  6. (צמתים של Cassandra בלבד) של Cassandra נדרשים ארגומנטים נוספים כדי לפעול בתוך רשת האבטחה. כתוצאה מכך, צריך להריץ את הפקודות הבאות בכל צומת של Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (צומתי Postgres בלבד) נדרשים ארגומנטים נוספים כדי לפעול בתוך רשת האבטחה. כתוצאה מכך, צריך לבצע את הפעולות הבאות בצמתים של Postgres:

    (ראשי בלבד)

    1. מריצים את הפקודות הבאות בצומת הראשי של Postgres:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (מצב המתנה בלבד)

    1. גיבוי של נתוני Postgres הקיימים שלך. כדי להתקין mTLS של Apigee, צריך לאתחל מחדש את הצמתים הראשיים/הבהמתנה כדי שיהיה אובדן נתונים. אפשר לקרוא מידע נוסף במאמר הגדרת שכפול ראשי/המתנה עבור Postgres.
    2. מחיקת כל הנתונים של Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. מגדירים את Postgres ומפעילים מחדש את Postgres, כמו בדוגמה הבאה:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    אם מתקינים בטופולוגיה של מרכז נתונים מרובה, צריך להשתמש בנתיב מוחלט לקובץ התצורה.

  8. מפעילים את שאר רכיבי Apigee בצומת בסדר ההתחלה, כמו בדוגמה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. חוזרים על התהליך הזה לכל צומת באשכול.
  10. (אופציונלי) מוודאים apigee-mtls שהאתחול בוצע בהצלחה באמצעות אחת או יותר מהשיטות הבאות:
    1. אימות ההגדרות של iptables
    2. אימות הסטטוס של שרת ה-proxy המרוחק
    3. אימות סטטוס הקוורום

    כל אחת מהשיטות האלה מתוארת במאמר אימות ההגדרות האישיות.

שינוי הגדרה קיימת של apigee-mtls

כדי להתאים אישית הגדרות apigee-mtls קיימות, צריך להסיר ולהתקין מחדש את apigee-mtls. כמו כן, הקפידו להחיל את ההתאמה האישית בכל הצמתים.

כדי לחזור על הנקודה הזו, כשמשנים תצורת mTLS קיימת של Apigee:

  • אם משנים קובץ תצורה, צריך קודם להסיר את apigee-mtls ולהפעיל מחדש את setup או את configure:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • צריך להסיר את האפליקציה setup או configure ולהפעיל אותה מחדש בכל הצמתים באשכול, ולא רק בצומת אחד.