הגדרת mTLS של Apigee

Edge for Private Cloud גרסה 4.19.01

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

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

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

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

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

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

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

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

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

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

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

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

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

פקודות שמפנות לקובץ התצורה משתמשות ב-'config_file' כדי לציין המיקום משתנה בהתאם למיקום שבו הוא נשמר בכל צומת.

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

  1. במכונת הניהול, פותחים את קובץ התצורה.
  2. מעתיקים את הקבוצה הבאה של מאפייני ההגדרות של mTLS ומדביקים אותם בהגדרות file:
    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"

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

    הטבלה הבאה מתארת את מאפייני ההגדרות האישיות האלה:

    נכס תיאור
    ALL_IP רשימה של כתובות ה-IP הפרטיות של המארחים של כל הצמתים באשכול, שמופרדים באמצעות רווח.

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

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

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

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

    הערה: לפי הדרישות, צריך לפחות שלושה צמתים ב-ZooKeeper.

    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 צריכות להיות מודעות לרשת השירות (Service mesh).

    צריך להגדיר את הערך הזה ל-'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 שנים).

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

  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 וליצור פרטי כניסה.

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

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

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

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

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

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

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

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

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

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

  1. למכונת הניהול שלכם, מורידים את הקובץ הבינארי של Consul 1.6.2 אתר HasiCorp.
  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

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

    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: הפצת קובץ התצורה ופרטי הכניסה

מעתיקים את הקבצים הבאים לצמתים שמריצים ב-ZooKeeper באמצעות כלי כמו scp:

  • קובץ תצורה: מעתיקים את הגרסה המעודכנת של הקובץ ומחליפים את הגרסה הקיימת בכל הצמתים (לא רק בצמתים שבהם פועלת GooKeeper).
  • 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. מתחברים לצומת באשכול כמשתמש Root. אפשר לבצע את השלבים האלה בצמתים בכל הזמנה שתרצו.
  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

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

  6. (צמתים של קסנדרה בלבד) 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, נדרשים ארגומנטים נוספים כדי לפעול במסגרת רשת אבטחה. כתוצאה מכך, צריך לבצע את הפעולות הבאות בצמתים של 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. כדי להתקין את Apigee mTLS, צריך לאתחל מחדש צומתי מאסטר/המתנה, כך שיהיה אובדן נתונים. מידע נוסף זמין במאמר הבא: הגדרה של רפליקציית מאסטר/בהמתנה עבור 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. אימות ההגדרות של מכשירי ה-IPtable
    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 ולהפעיל אותה מחדש בכל הצמתים אשכול, לא רק צומת אחד.