Edge for Private Cloud v4.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 צריכים להיות מודעים למארג השירותים. צריך להגדיר את הערך הזה כ-'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 שמתארח בכל צומת
- הודעת רכילות: מפתח הצפנה בקידוד base-64
יוצרים גרסה אחת של כל אחד מהקבצים האלה פעם אחת בלבד. מעתיקים את קובצי המפתח והאישור לכל הצמתים באשכול, ומוסיפים את מפתח ההצפנה לקובץ התצורה שגם אותו מעתיקים לכל הצמתים.
מידע נוסף על הטמעת ההצפנה ב-Consul זמין במאמרים הבאים:
התקנה של Consul ויצירת פרטי כניסה
משתמשים בקובץ הבינארי המקומי של Consul כדי ליצור פרטי כניסה שבהם Apigee mTLS משתמש כדי לאמת תקשורת מאובטחת בין הצמתים באשכול הענן הפרטי. לכן, עליכם להתקין את Consul במכונה לניהול לפני שתוכלו ליצור פרטי כניסה.
כדי להתקין את Consul וליצור פרטי כניסה ל-mTLS:
- במכונה לניהול, מורידים את קובץ ה-binary של 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 ומפעילים מחדש את 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 file
OR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
- צריך להסיר את
setup
אוconfigure
ולהריץ אותם מחדש בכל הצמתים באשכול, ולא רק בצומת אחד.