הגדרת mTLS של Apigee

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

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

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

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

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

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

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

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

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

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

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

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

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

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

פקודות

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

  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"
    TLS_MIN_VERSION="tls12"
    TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    

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

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

    נכס תיאור
    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 שנים).

    TLS_MIN_VERSION מציינת את גרסת ה-TLS המינימלית המותרת. צריך להגדיר את הערך tls12 כדי לאכוף TLS (אבטחת שכבת התעבורה) גרסה 1.2 לפחות.
    TLS_CIPHER_SUITES רשימה של סטים מותרים של אלגוריתמים להצפנה (cipher suite) TLS (מופרדים בפסיקים).

    לדוגמה: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    בנוסף למאפיינים שמפורטים למעלה, 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 וליצור את פרטי הכניסה שמשמשים את הרכיבים שתומכים ב-mTLS.

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

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

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

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

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

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

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

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

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

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

  1. למכונת הניהול שלכם, מורידים את הקובץ הבינארי של Consul 1.8.0 אתר 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: הפצת קובץ התצורה ופרטי הכניסה

מעתיקים את הקבצים הבאים לכל הצמתים באמצעות כלי כמו 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 ולהפעיל אותה מחדש בכל הצמתים אשכול, לא רק צומת אחד.