אחרי שמתקינים את 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" 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 פרטיות של מארחים שבהם צמתים של 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 שנים).
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
בנוסף למאפיינים שצוינו למעלה, כשמתקינים את 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
- הודעת רכילות: מפתח הצפנה בקידוד 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 ומפעילים מחדש את 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
ולהריץ אותם מחדש בכל הצמתים באשכול, ולא רק בצומת אחד.