Secret Manager יכול להגן על הנתונים הרגישים שלכם, כמו מפתחות API, סיסמאות ואישורים. אפשר להשתמש בו כדי לנהל, לגשת ולבדוק את הסודות שלכם ב-Cloud de Confiance by S3NS.
אתם יכולים להגדיר אשכול או משימה של Managed Service for Apache Spark לשימוש בסוד של Secret Manager באמצעות ספק פרטי הכניסה של Secret Manager.
זמינות
אפשר להשתמש בתכונה הזו עם אשכולות של Managed Service for Apache Spark שנוצרו עם גרסאות אימג' 2.0.97 ומעלה, 2.1.41 ומעלה, 2.2.6 ומעלה או גרסאות מאוחרות יותר של Managed Service for Apache Spark.
הסברים על המונחים
בטבלה הבאה מפורטים המונחים שמופיעים במסמך הזה.
| מונח | תיאור |
|---|---|
Secret |
סוד ב-Secret Manager הוא אובייקט גלובלי בפרויקט שמכיל אוסף של מטא-נתונים וגרסאות סוד. אתם יכולים לאחסן סודות, לנהל אותם ולגשת אליהם כ-blobs בינאריים או כמחרוזות טקסט. |
Credential |
ב-Hadoop ובאפליקציות אחרות שמתארחות ב-Managed Service for Apache Spark, פרטי הכניסה מורכבים משם פרטי הכניסה (מזהה) וערך פרטי הכניסה (סיסמה). מזהה וערך של פרטי כניסה ממופים למזהה סוד ולערך סוד (גרסת סוד) ב-Secret Manager. |
Usage
אפשר להגדיר את Hadoop ורכיבי OSS אחרים כך שיפעלו עם Secret Manager. לשם כך, צריך להגדיר את המאפיינים הבאים כשיוצרים אשכול של Managed Service for Apache Spark או כששולחים עבודה.
נתיב הספק : מאפיין נתיב הספק,
hadoop.security.credential.provider.path, הוא רשימה מופרדת בפסיקים של מזהי URI של ספק אישורים אחד או יותר, שמתבצעת בהם מעבר כדי לפתור אישור.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- הערך
schemeבנתיב הספק מציין את סוג ספק פרטי הכניסה. סכימות Hadoop כוללות אתjceks://,user://,localjceks://. אפשר להשתמש בסכימהgsm://כדי לחפש פרטי כניסה ב-Secret Manager.
- הערך
החלפת אופרטור הנקודה : השירות Secret Manager לא מאפשר שימוש בנקודות (
.) בשמות של סודות. עם זאת, בחלק מרכיבי תוכנת הקוד הפתוח (OSS) נעשה שימוש בנקודות במפתחות של פרטי הכניסה. כדי לפתור את הבעיה הזו, צריך להפעיל את ההגדרה הזו כדי להחליף נקודות (.) במקפים (-) בשמות של פרטי הכניסה. כך אפשר לוודא שפרטי כניסה של OSS עם נקודות בשמות שלהם מאוחסנים ומאוחזרים בצורה נכונה מ-Secret Manager.לדוגמה, אם מפתח האישורים של OSS הוא
a.b.c, צריך לשנות אותו ל-a-b-cכשמאחסנים אותו ב-Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
המאפיין הזה הוא אופציונלי. ערך ברירת המחדל הוא
false. אם בשם של מפתח פרטי הכניסה לא מופיע האופרטור נקודה (.), אפשר להתעלם מהמאפיין הזה.גרסת סוד : לסודות ב-Secret Manager יכולות להיות כמה גרסאות (ערכים). משתמשים במאפיין הזה כדי לגשת לגרסה ספציפית של סוד לגישה יציבה בסביבות ייצור.
--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
המאפיין הזה הוא אופציונלי. כברירת מחדל, Secret Manager ניגש לגרסה
LATEST, שמתעדכנת לערך האחרון של הסוד בזמן הריצה. אם תרחיש השימוש שלכם הוא גישה תמיד לגרסהLATESTשל סוד, אפשר להתעלם מהמאפיין הזה.
יצירת אשכול Managed Service for Apache Spark עם ספק פרטי כניסה של Secret Manager
- מריצים את הפקודה הבאה באופן מקומי או ב-Cloud Shell כדי ליצור אשכול Managed Service for Apache Spark עם המאפיינים הנדרשים.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --properties="hadoop:hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hadoop:hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
הערות:
- CLUSTER_NAME: השם של האשכול החדש.
- REGION: אזור Compute Engine שבו יפעל עומס העבודה.
- PROJECT_ID: מזהה הפרויקט מופיע בקטע Project info במרכז הבקרה שלCloud de Confiance המסוף.
שליחת Managed Service for Apache Spark עם ספק אישורים של Secret Manager
מריצים את הפקודה הבאה באופן מקומי או ב-Cloud Shell כדי לשלוח משימה של Managed Service for Apache Spark עם המאפיינים הנדרשים.
gcloud dataproc jobs submit CLUSTER_NAME \ --region=REGION \ --properties="hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed... \ -- job-args
הערות:
- CLUSTER_NAME: שם האשכול שבו תופעל המשימה.
- REGION: אזור Compute Engine שבו יפעל עומס העבודה.
- PROJECT_ID: מזהה הפרויקט מופיע בקטע Project info בCloud de Confiance מרכז הבקרה של המסוף.
שימוש ב-Secret Manager עם Hive Metastore
המאפיין של Hive Metastore, javax.jdo.option.ConnectionPassword, מכיל את הסיסמה שמשמשת לאימות הגישה למסד הנתונים של Metastore. הסיסמה נשמרת בפורמט טקסט ב-hive-site.xml, וזה מייצג סיכון אבטחה. בסביבת ייצור, מומלץ לאחסן את הסיסמה ב-Secret Manager, ואז לעדכן את קובץ ההגדרות של hive-site.xml כדי לאפשר לשירות Hive metastore לקרוא את הסיסמה מ-Secret Manager.
בדוגמאות הבאות מוסבר איך להשתמש ב-Secret Manager בתרחישים שונים של Hive Metastore.
יצירת אשכול עם מאגר מטא-נתונים מקומי
- מריצים את הפקודה הבאה באופן מקומי או ב-Cloud Shell כדי ליצור אשכול Managed Service for Apache Spark.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ ...other flags as needed... \
הערות:
- CLUSTER_NAME: השם של האשכול החדש.
- REGION: אזור Compute Engine שבו יפעל עומס העבודה.
יוצרים סוד באמצעות Secret Manager או באמצעות הפקודה
hadoop credential.אפשרות חלופית 1: שימוש ב-Secret Manager ליצירת סוד.
- שם הסוד:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1 - ערך Secret:
METASTORE_PASSWORD.
- שם הסוד:
אפשרות חלופית 2: משתמשים בפקודה
hadoop credentialכדי ליצור סוד.sudo hadoop credential create javax-jdo-option-ConnectionPassword -provider gsm://projects/PROJECT_ID -v METASTORE_PASSWORD
- METASTORE_PASSWORD: מכיוון ש-Secret Manager לא תומך באופרטור הנקודה(
.), צריך להחליף את כל הנקודות(.) בסיסמה במקפים(-).
- METASTORE_PASSWORD: מכיוון ש-Secret Manager לא תומך באופרטור הנקודה(
מוודאים שהסוד קיים.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
משתמשים בכלי לעריכת טקסט כדי להסיר את המאפיין
javax.jdo.option.ConnectionPasswordמהקובץhive-site.xml, ואז מוסיפים לקובץ את המאפייניםhadoop.security.credential.provider.pathו-hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator.נכסים לדוגמה:
hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
מפעילים מחדש את Hive Metastore.
sudo systemctl restart hive-metastore
יצירת אשכול עם Hive Metastore חיצוני
מריצים את הפקודה הבאה באופן מקומי או ב-Cloud Shell כדי ליצור אשכול של Managed Service for Apache Spark עם מאפייני האשכול הבאים. אפשר להשתמש באשכול הזה כ-Hive metastore חיצוני למשימות Hive שמופעלות מאשכולות אחרים של Managed Service for Apache Spark, עבור עומסי עבודה של Spark Hive.
gcloud dataproc clusters create METASTORE_CLUSTER_NAME \ --region=REGION \ --properties=core:fs.defaultFS=gs://METASTORE_CLUSTER_PROXY_BUCKET,dataproc:dataproc.components.deactivate="hdfs hive-server2 hive-metastore" \ ...other flags as needed...
יוצרים סוד באמצעות Secret Manager או באמצעות הפקודה
hadoop credential.- אפשרות חלופית 1: שימוש ב-Secret Manager ליצירת סוד.
- שם הסוד:
/projects/PROJECT_ID/secrets/javax-jdo-option-ConnectionPassword/versions/1 - ערך Secret:
METASTORE_PASSWORD.
- שם הסוד:
- אפשרות חלופית 2: משתמשים בפקודה
hadoop credentialכדי ליצור סוד.sudo hadoop credential create javax-jdo-option-ConnectionPassword -provider gsm://projects/PROJECT_ID -v METASTORE_PASSWORD
- METASTORE_PASSWORD: מכיוון ש-Secret Manager לא תומך באופרטור הנקודה(
.), צריך להחליף את הנקודות(.) בסיסמה במקפים(-).
- METASTORE_PASSWORD: מכיוון ש-Secret Manager לא תומך באופרטור הנקודה(
- אפשרות חלופית 1: שימוש ב-Secret Manager ליצירת סוד.
מוודאים שהסוד קיים.
sudo hadoop credential list -provider gsm://projects/PROJECT_ID
יצירת אשכול להרצת משימות Hive שמתחברות למאגר מטא נתונים חיצוני
- מריצים את הפקודה הבאה באופן מקומי או ב-Cloud Shell כדי ליצור אשכול של Managed Service for Apache Spark עם מאפייני האשכול הבאים.
אפשר להשתמש באשכול הזה כדי להריץ משימות Hive שמתחברות למאגר מטא נתונים חיצוני באשכול אחר של Managed Service for Apache Spark.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --properties="hive:javax.jdo.option.ConnectionURL=jdbc:mysql://METASTORE_CLUSTER_NAME-m/metastore,hive:hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,hive:hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
פקודות של פרטי כניסה ל-Hadoop
אתם יכולים להשתמש ב-SSH כדי להתחבר לצומת הראשי של Managed Service for Apache Spark, ולהשתמש בפקודה hadoop credential כדי ליצור סודות, להציג אותם ולנהל אותם.
הפקודות של hadoop credential בנויות בפורמט הבא:
hadoop credential SUBCOMMAND OPTIONS.
בדוגמאות הבאות, הדגל -provider נוסף כדי לציין את סוג הספק והמיקום שלו (החנות של הספק). הסכימה gsm:// מציינת את Secret Manager.
יוצרים סוד עם מזהה הסוד שצוין. הפקודה לא יוצרת את הסוד אם מזהה הסוד שצוין קיים. ההתנהגות הזו זהה לזו של
CredentialProviderAPI של Hadoop.hadoop credential create SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
הצגת רשימה של סודות שמאוחסנים בפרויקט.
hadoop credential list -provider gsm://projects/PROJECT_ID
בדיקה אם סוד קיים בפרויקט עם ערך שצוין.
hadoop credential check SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
בודקים אם יש גרסה ספציפית של סוד בקובץ תצורה.
hadoop credential conf CONFIG_FILE check SECRET_ID -provider gsm://projects/PROJECT_ID -v VALUE
CONFIG_FILE: קובץ ה-XML שבו מוגדר הערך
hadoop.security.credstore.google-secret-manager.secret-version.מחיקה של כל הגרסאות של סוד בפרויקט.
hadoop credential delete SECRET_ID -provider gsm://projects/ PROJECT_ID
מידע נוסף זמין במדריך לפקודות Hadoop.