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