אחרי שמתקינים את Apigee mTLS בכל הצמתים באשכול, צריך להגדיר ולהפעיל את הרכיב apigee-mtls. כדי לעשות את זה, יוצרים זוג מפתחות/אישורים ומעדכנים את קובץ התצורה במכונת הניהול. לאחר מכן, פורסים את אותם קבצים שנוצרו ואת קובץ התצורה בכל הצמתים באשכול, ומאתחלים את רכיב 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 בצמתים האלה.
כדי לעדכן את קובץ התצורה:
- במכונת הניהול, פותחים את קובץ התצורה לעריכה.
- מעתיקים את קבוצת מאפייני ההגדרות של 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 וליצור את פרטי הכניסה שמשמשים את הרכיבים שמופעל בהם mTLS.
כדי ליצור את פרטי הכניסה, צריך לבחור באחת מהשיטות הבאות:
- (מומלץ) ליצור רשות אישורים (CA) משלכם באמצעות Consul, כמו שמתואר בקטע הזה.
- שימוש בפרטי הכניסה של רשות אישורים קיימת עם Apigee mTLS (מתקדם)
מידע על פרטי הכניסה
פרטי הכניסה כוללים את הפרטים הבאים:
- אישור: אישור ה-TLS
- מפתח: המפתח הציבורי של TLS
- הודעת Gossip: מפתח הצפנה בקידוד Base-64
אתם יוצרים גרסה אחת של כל אחד מהקבצים האלה פעם אחת בלבד. לאחר מכן מעתיקים את קובצי המפתח והאישור לכל הצמתים באשכול, ומוסיפים את מפתח ההצפנה לקובץ התצורה שגם אותו מעתיקים לכל הצמתים.
למידע נוסף על הטמעת ההצפנה של Consul:
התקנת Consul ויצירת פרטי כניסה
כדי ליצור פרטי כניסה שבהם Apigee mTLS משתמש לאימות תקשורת מאובטחת בין הצמתים באשכול של הענן הפרטי, צריך להשתמש בקובץ בינארי מקומי של Consul . לכן, צריך להתקין את Consul במכונת הניהול לפני שיוצרים את פרטי הכניסה.
כדי להתקין את Consul וליצור פרטי כניסה ל-mTLS:
- במכונה של האדמין, מורידים את הקובץ הבינארי של Consul 1.8.0 מהאתר של 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: הפצת קובץ התצורה ופרטי הכניסה
מעתיקים את הקבצים הבאים לכל הצמתים באמצעות כלי כמו 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בכל הצמתים באשכול, ולא רק בצומת אחד.