Edge for Private Cloud גרסה 4.19.01
אחרי שמתקינים את הרכיב apigee-mtls בכל צומת באשכול, צריך להגדיר ולאתחל אותו. כדי לעשות את זה, יוצרים זוג מפתחות/אישורים ומעדכנים את קובץ התצורה במכונת הניהול. לאחר מכן פורסים את אותם קבצים שנוצרו בכל הצמתים באשכול ומפעילים את הרכיב המקומי של apigee-mtls.
הגדרת apigee-mtls (אחרי ההתקנה הראשונית)
בקטע הזה מוסבר איך להגדיר את Apigee mTLS למרכז נתונים יחיד מיד אחרי ההתקנה הראשונית. כדי לעדכן התקנה קיימת של Apigee mTLS, קראו את המאמר שינוי הגדרה קיימת של apigee-mtls. למידע על הגדרת כמה מרכזי נתונים, קראו את המאמר הגדרת כמה מרכזי נתונים ל-Apigee mTLS.
כך מגדירים את apigee-mtls:
- עדכון קובץ התצורה: במכונה של האדמין, מעדכנים את קובץ התצורה כך שיכלול את ההגדרות של
apigee-mtls. - התקנת Consul ויצירת פרטי כניסה: מתקינים את Consul ומשתמשים בו כדי ליצור את פרטי הכניסה ל-TLS (פעם אחת בלבד).
בנוסף, צריך לערוך את קובץ התצורה של Apigee mTLS כדי:
- מוסיפים את פרטי הכניסה.
- הגדרת הטופולוגיה של האשכול
שימו לב שאפשר להשתמש בפרטי הכניסה הקיימים או ליצור אותם באמצעות Consul.
- הפצת קובץ התצורה ופרטי הכניסה: מפיצים את אותו זוג מפתחות/אישורים שנוצר ואת קובץ התצורה המעודכן לכל הצמתים באשכול.
- מאתחלים את apigee-mtls: מאתחלים את הרכיב
apigee-mtlsבכל צומת.
כל אחד מהשלבים האלה מתואר בקטעים הבאים.
שלב 1: מעדכנים את קובץ התצורה
בקטע הזה מוסבר איך לשנות את קובץ התצורה כך שיכלול מאפייני תצורה של mTLS. מידע כללי נוסף על קובץ התצורה זמין במאמר יצירת קובץ תצורה.
אחרי שמעדכנים את קובץ התצורה עם המאפיינים שקשורים ל-mTLS, מעתיקים אותו לכל הצמתים באשכול לפני שמפעילים את הרכיב apigee-mtls בצמתים האלה.
פקודות שמפנות לקובץ התצורה משתמשות ב-"config_file" כדי לציין שהמיקום שלו משתנה, בהתאם למקום שבו אתם מאחסנים אותו בכל צומת.
כדי לעדכן את קובץ התצורה:
- במכונת הניהול, פותחים את קובץ התצורה.
- מעתיקים את קבוצת מאפייני ההגדרות של 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"
מגדירים את הערך של כל נכס כך שיתאים להגדרות האישיות שלכם.
בטבלה הבאה מתוארים מאפייני ההגדרות האלה:
נכס תיאור ALL_IPרשימה של כתובות ה-IP הפרטיות של המארחים של כל הצמתים באשכול, מופרדות ברווחים. הסדר של כתובות ה-IP לא משנה, אבל הוא חייב להיות זהה בכל קובצי התצורה באשכול.
אם מגדירים את Apigee mTLS לכמה מרכזי נתונים, צריך לציין את כל כתובות ה-IP של כל המארחים בכל האזורים.
LDAP_MTLS_HOSTSכתובת ה-IP הפרטית של המארח של צומת OpenLDAP באשכול. ZK_MTLS_HOSTSרשימה מופרדת ברווחים של כתובות IP פרטיות של מארחים שבהם מתארחים צומתי ZooKeeper באשכול.
שימו לב: בהתאם לדרישות, צריכים להיות לפחות שלושה צומתי 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 שנים).
בנוסף למאפיינים שצוינו למעלה, Apigee mTLS משתמש בכמה מאפיינים נוספים כשמתקינים אותו בהגדרה של כמה מרכזי נתונים. מידע נוסף זמין במאמר הגדרת כמה מרכזי נתונים.
- מוודאים שהמאפיין
ENABLE_SIDECAR_PROXYמוגדר כ-"y". - מעדכנים את כתובות ה-IP במאפיינים שקשורים למארח. חשוב להשתמש בכתובות ה-IP הפרטיות כשמפנים לכל צומת, ולא בכתובות ה-IP הציבוריות.
בשלבים הבאים תגדירו את הערכים של המאפיינים האחרים, כמו
ENCRYPT_DATA,PATH_TO_CA_CERTו-PATH_TO_CA_KEY. עדיין לא הגדרתם את הערכים שלהם.כשעורכים את מאפייני ההגדרות של
apigee-mtls, חשוב לשים לב לנקודות הבאות:- כל המאפיינים הם מחרוזות, לכן צריך להקיף את הערכים של כל המאפיינים במירכאות בודדות או כפולות.
- אם לערך שקשור למארח יש יותר מכתובת IP פרטית אחת, צריך להפריד בין כתובות ה-IP באמצעות רווח.
- השתמשו בכתובות IP פרטיות ולא בשמות מארחים או בכתובות IP ציבוריות לכל המאפיינים שקשורים למארח בקובץ התצורה.
- הסדר של כתובות ה-IP בערך של מאפיין חייב להיות זהה בכל קובצי התצורה באשכול.
- שומרים את השינויים בקובץ התצורה.
שלב 2: מתקינים את Consul ויוצרים פרטי כניסה
בקטע הזה מוסבר איך להתקין את Consul וליצור פרטי כניסה.
כדי ליצור פרטי כניסה, צריך לבחור באחת מהשיטות הבאות:
- ליצור רשות אישורים משלכם באמצעות Consul, כמו שמתואר בקטע הזה (מומלץ)
- שימוש בפרטי הכניסה של רשות אישורים קיימת עם Apigee mTLS (מתקדם)
מידע על פרטי הכניסה
פרטי הכניסה כוללים את הפרטים הבאים:
- אישור: אישור ה-TLS שמתארח בכל צומת
- מפתח: המפתח הציבורי של TLS שמתארח בכל צומת
- הודעת Gossip: מפתח הצפנה בקידוד Base-64
אתם יוצרים גרסה אחת של כל אחד מהקבצים האלה פעם אחת בלבד. אתם מעתיקים את קובצי המפתח והאישור לכל הצמתים באשכול, ומוסיפים את מפתח ההצפנה לקובץ התצורה שגם אותו אתם מעתיקים לכל הצמתים.
למידע נוסף על הטמעת ההצפנה של Consul:
התקנת Consul ויצירת פרטי כניסה
אתם משתמשים בקובץ בינארי מקומי של Consul כדי ליצור פרטי כניסה שמשמשים את Apigee mTLS לאימות של תקשורת מאובטחת בין הצמתים באשכול של הענן הפרטי. לכן, צריך להתקין את Consul במכונת הניהול לפני שיוצרים את פרטי הכניסה.
כדי להתקין את Consul וליצור פרטי כניסה ל-mTLS:
- במכונת הניהול, מורידים את הקובץ הבינארי של Consul 1.6.2 מאתר HashiCorp.
- מחלצים את התוכן של קובץ הארכיון שהורדתם. לדוגמה, חלצו את התוכן אל
/opt/consul/. - במכונה של האדמין, יוצרים רשות אישורים (CA) חדשה באמצעות הפקודה הבאה:
/opt/consul/consul tls ca create
Consul יוצר את הקבצים הבאים, שהם זוג מפתחות/אישורים:
consul-agent-ca.pem(אישור)consul-agent-ca-key.pem(מפתח)
כברירת מחדל, קובצי האישורים והמפתחות מקודדים ב-X509v3.
בהמשך תעתיקו את הקבצים האלה לכל הצמתים באשכול. בשלב הזה, אתם צריכים רק להחליט איפה בצמתים תשימו את הקבצים האלה. הם צריכים להיות באותו מיקום בכל צומת. לדוגמה,
/opt/apigee/. - בקובץ התצורה, מגדירים את הערך של
PATH_TO_CA_CERTלמיקום שאליו תעתיקו את הקובץconsul-agent-ca.pemבצומת. לדוגמה:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- מגדירים את הערך של
PATH_TO_CA_KEYלמיקום שאליו תעתיקו את הקובץconsul-agent-ca-key.pemבצומת. לדוגמה:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- יוצרים מפתח הצפנה ל-Consul באמצעות הפקודה הבאה:
/opt/consul/consul keygen
Consul יוציא מחרוזת אקראית שדומה לזו:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- מעתיקים את המחרוזת ומגדירים אותה כערך של המאפיין
ENCRYPT_DATAבקובץ התצורה. לדוגמה:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" - שומרים את קובץ התצורה.
בדוגמה הבאה מוצגות ההגדרות שקשורות ל-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:
- קובץ תצורה: מעתיקים את הגרסה המעודכנת של הקובץ הזה ומחליפים את הגרסה הקיימת בכל הצמתים (לא רק בצמתים שבהם פועל ZooKeeper).
- 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:
- מתחברים לצומת באשכול כמשתמש Root. אתם יכולים לבצע את השלבים האלה בצמתים בכל סדר שתרצו.
- הופכים את המשתמש
apigee:apigeeלבעלים של קובץ התצורה המעודכן, כמו בדוגמה הבאה:chown apigee:apigee config_file
- מגדירים את הרכיב
apigee-mtlsבאמצעות הפקודה הבאה:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (אופציונלי) מריצים את הפקודה הבאה כדי לוודא שההגדרה בוצעה בהצלחה:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- מפעילים את Apigee mTLS באמצעות הפקודה הבאה:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
אחרי שמתקינים את Apigee mTLS, צריך להפעיל את הרכיב הזה לפני כל רכיב אחר בצומת.
- (צומתי 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 - (צומתי Postgres בלבד) כדי ש-Postgres יפעל בתוך רשת האבטחה, נדרשים ארגומנטים נוספים. לכן, צריך לבצע את הפעולות הבאות בצומתי 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
(במצב המתנה בלבד)
- מגבים את נתוני Postgres הקיימים. כדי להתקין את Apigee mTLS, צריך להפעיל מחדש את הצמתים הראשיים/המשניים, ולכן נתונים יאבדו. מידע נוסף זמין במאמר הגדרת שכפול מאסטר/המתנה ל-Postgres.
- מוחקים את כל הנתונים של Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- מגדירים את 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
אם אתם מתקינים בטופולוגיה של כמה מרכזי נתונים, השתמשו בנתיב מוחלט לקובץ התצורה.
- מריצים את הפקודות הבאות בצומת הראשי של Postgres:
- מפעילים את שאר רכיבי Apigee בצומת לפי סדר ההפעלה, כמו בדוגמה הבאה:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- חוזרים על התהליך הזה בכל צומת באשכול.
- (אופציונלי) כדי לוודא ש
apigee-mtlsההפעלה בוצעה בהצלחה, אפשר להשתמש באחת או יותר מהשיטות הבאות:- אימות ההגדרות של iptables
- אימות הסטטוס של שרת ה-proxy המרוחק
- אימות סטטוס הקוורום
כל אחת מהשיטות האלה מתוארת בקטע אימות ההגדרות.
שינוי של הגדרת 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 fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - צריך להסיר את ההתקנה ולהריץ מחדש את
setupאו אתconfigureבכל הצמתים באשכול, ולא רק בצומת אחד.