בדף הזה מוסבר איך להגדיר את Kerberos לשירות Dataproc Metastore שמשתמש בפרוטוקול נקודת הקצה gRPC. אם שירות Dataproc Metastore שלכם משתמש בפרוטוקול של נקודת הקצה Thrift, כדאי לעיין במאמר הגדרת Kerberos לנקודות קצה של Thrift.
לפני שמתחילים
הסבר על היסודות של Kerberos.
בהוראות האלה, משתמשים באשכול Dataproc כדי ליצור את נכסי Kerberos הבאים:
- קובץ Keytab.
- קובץ
krb5.conf. - חשבון משתמש ב-Kerberos.
מידע נוסף על האופן שבו נכסי Kerberos האלה פועלים עם שירות Dataproc Metastore זמין במאמר מידע על Kerberos.
יוצרים ומארחים שרת KDC משלכם של Kerberos או לומדים איך להשתמש בשרת KDC המקומי של אשכול Dataproc.
יוצרים קטגוריה של Cloud Storage או מקבלים גישה לקטגוריה קיימת. חובה לאחסן את קובץ ה-
krb5.confבדלי הזה.
תפקידים נדרשים
כדי לקבל את ההרשאה שדרושה ליצירת Dataproc Metastore שמוגדר עם Kerberos, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט, בהתאם לעיקרון של הרשאות מינימליות:
-
הענקת שליטה מלאה במשאבי Dataproc Metastore (
roles/metastore.editor) -
מתן גישה מלאה לכל משאבי Dataproc Metastore, כולל ניהול מדיניות IAM (
roles/metastore.admin) -
הענקת גישת קריאה וכתיבה ל-gRPC למטא-נתונים של Dataproc Metastore (
roles/metastore.metadataEditor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד שמוגדר מראש הזה מכיל את ההרשאה metastore.services.create, שנדרשת כדי ליצור Dataproc Metastore שמוגדר עם Kerberos .
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
מידע נוסף על תפקידים והרשאות ספציפיים ב-Dataproc Metastore זמין במאמר ניהול גישה באמצעות IAM.מידע נוסף זמין במאמר IAM ובקרת גישה ב-Dataproc Metastore.
הגדרת Kerberos ל-Dataproc Metastore
בהוראות הבאות מוסבר איך להגדיר Kerberos לשירות Dataproc Metastore שמשתמש בנקודת הקצה של gRPC.
קודם יוצרים Dataproc Metastore שמשתמש בנקודת הקצה של gRPC. לאחר מכן, יוצרים אשכול Dataproc עם Kerberos ומחברים אותו.
יצירת שירות Dataproc Metastore עם נקודת קצה של gRPC
כדי ליצור Dataproc Metastore שמשתמש בנקודת הקצה של gRPC, מריצים את הפקודה הבאה של gcloud metastore services create:
gcloud
gcloud metastore services create SERVICE \
--instance-size=medium \
--endpoint-protocol=grpc
מחליפים את:
-
SERVICE: השם של שירות Dataproc Metastore
יצירת אשכול Dataproc וחיבור לשירות
כדי ליצור Dataproc עם Kerberos, מריצים את הפקודה gcloud dataproc clusters create הבאה.
בפקודה הזו, האפשרות --enable-kerberos יוצרת את קובץ ה-Keytab של Kerberos, את קובץ krb5.conf ואת ה-principal. כל הערכים האלה נוצרים באמצעות שמות והגדרות ברירת מחדל שמוגדרים על ידי אשכול Dataproc.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--image-version 2.0-debian10 \
--dataproc-metastore DATAPROC_METASTORE_NAME \
--enable-kerberos \
--scopes 'https://www.googleapis.com/auth/cloud-platform'
מחליפים את:
-
CLUSTER_NAME: השם של אשכול Dataproc. PROJECT_ID: מזהה הפרויקט ב-Google Cloud.-
REGION: האזור Google Cloud שבו רוצים ליצור את אשכול Dataproc. -
DATAPROC_METASTORE_NAME: השם של שירות Dataproc Metastore שמצרפים לאשכול, בפורמט הבא:projects/<my_project>/locations/<location>/services/<service_id>.
הגדרת Dataproc לפני שליחת משימות
כדי להריץ את העבודות ב-Dataproc, צריך להוסיף את המשתמש hive למאפיין allowed.system.users בקובץ container-executor.cfg של Hadoop. כך המשתמשים יכולים להריץ שאילתות כדי לגשת לנתונים, כמו select * from.
בהוראות הבאות מוסבר איך להתחבר באמצעות SSH לאשכול Dataproc הראשי שמשויך לשירות Dataproc Metastore ולעדכן את הקובץ container-executor.cfg.
- נכנסים לדף VM Instances במסוף Google Cloud .
ברשימת המכונות הווירטואליות, לוחצים על SSH
ייפתח חלון דפדפן בספריית הבית שלכם בצומת.
בסשן ה-SSH, פותחים את הקובץ
container-executor.cfgשל Hadoop.sudo vim /etc/hadoop/conf/container-executor.cfgמוסיפים את השורה הבאה לכל צומת Dataproc.
allowed.system.users=hive
קבלת כרטיס Kerberos
בהוראות הבאות מוסבר איך ליצור כרטיס קרברוס.
בסשן SSH של אשכול Dataproc, יוצרים כרטיס Kerberos ומתחברים לשירות Dataproc Metastore.
הפקודה הזו משתמשת בשם ברירת המחדל של קובץ ה-keytab שנוצר על ידי אשכול Dataproc.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab hive/_HOST@${realm} sudo klist # gets the ticket information.הערך
_HOSTמאוחזר כשמציגים את רשימת קובץ ה-keytab באמצעות הפקודהklist -kte. הוא מכיל את שם המארח של הצומת הראשי.
(אופציונלי) הוספת חשבון משתמש חדש
כדי להוסיף חשבון ראשי חדש, מריצים את הפקודה הבאה.
sudo kadmin.local -q "addprinc -randkey PRINCIPAL" sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"מקבלים את כרטיס Kerberos.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL sudo klist sudo hive