אפשר להתקין רכיבים נוספים כמו Ranger כשיוצרים אשכול של Managed Service for Apache Spark באמצעות התכונה Optional components. בדף הזה מתואר הרכיב Ranger.
רכיב Apache Ranger הוא מסגרת קוד פתוח לניהול הרשאות וביקורת בסביבת Hadoop. שרת Ranger admin וממשק המשתמש שלו באינטרנט זמינים ביציאה 6080 בצומת הראשי הראשון של האשכול.
מאמרים נוספים:
התקנת הרכיב
מתקינים את הרכיב כשיוצרים אשכול של Managed Service for Apache Spark. אפשר להוסיף רכיבים לאשכולות שנוצרו באמצעות Managed Service for Apache Spark גרסה 1.3 ואילך. רכיב Ranger דורש התקנה של רכיב Solr.
בקטע גרסאות נתמכות של Managed Service for Apache Spark מפורטת גרסת הרכיב שכלולה בכל מהדורת תמונת Managed Service for Apache Spark.
שלבי ההתקנה:
הגדרת סיסמה ל-Ranger
admin:- מקצים את התפקיד Cloud Key Management Service CryptoKey Encrypter/Decrypter לחשבון השירות של האשכול. כברירת מחדל, חשבון השירות של האשכול מוגדר כחשבון השירות של Compute Engine שמוגדר כברירת מחדל, והוא נראה כך:
כשיוצרים את האשכול, אפשר לציין חשבון שירות אחר לאשכול.project-number-compute@developer.gserviceaccount.com
- דוגמה:
הענקת התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine:
gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyDecrypter
- דוגמה:
הענקת התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine:
- מצפינים את הסיסמה של Ranger
adminבאמצעות מפתח של Key Management Service (KMS). בגרסאות תמונה של אשכולות מגרסה 2.2 ומטה, הסיסמה צריכה לכלול לפחות 8 תווים, עם לפחות תו אלפביתי אחד ותו מספרי אחד. בגרסה 2.2 ואילך של אשכולות תמונות, הסיסמה צריכה להכיל לפחות 8 תווים, כולל לפחות אות גדולה אחת, אות קטנה אחת וספרה אחת.- דוגמה:
- יוצרים את אוסף המפתחות:
gcloud kms keyrings create my-keyring --location=global
- יוצרים את המפתח:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- הצפנה של סיסמת המשתמש של Ranger
admin:echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- יוצרים את אוסף המפתחות:
- דוגמה:
- מעלים את הסיסמה המוצפנת לקטגוריה של Cloud Storage בפרויקט.
- דוגמה:
gcloud storage cp admin-password.encrypted gs://my-bucket
- דוגמה:
- מקצים את התפקיד Cloud Key Management Service CryptoKey Encrypter/Decrypter לחשבון השירות של האשכול. כברירת מחדל, חשבון השירות של האשכול מוגדר כחשבון השירות של Compute Engine שמוגדר כברירת מחדל, והוא נראה כך:
יוצרים את האשכול:
- כשמתקינים את רכיב Ranger, צריך להתקין גם את רכיב Solr.
- רכיב Ranger מסתמך על רכיב Solr כדי לאחסן את יומני הביקורת שלו ולשאול לגביהם שאילתות. כברירת מחדל, הוא משתמש ב-HDFS לאחסון. הנתונים האלה ב-HDFS נמחקים כשמוחקים את האשכול. כדי להגדיר את רכיב Solr לאחסון נתונים, כולל יומני ביקורת של Ranger, ב-Cloud Storage, משתמשים ב
dataproc:solr.gcs.path=gs://<bucket>מאפיין האשכול כשיוצרים את האשכול. הנתונים ב-Cloud Storage נשמרים גם אחרי מחיקת האשכול.
- רכיב Ranger מסתמך על רכיב Solr כדי לאחסן את יומני הביקורת שלו ולשאול לגביהם שאילתות. כברירת מחדל, הוא משתמש ב-HDFS לאחסון. הנתונים האלה ב-HDFS נמחקים כשמוחקים את האשכול. כדי להגדיר את רכיב Solr לאחסון נתונים, כולל יומני ביקורת של Ranger, ב-Cloud Storage, משתמשים ב
- מעבירים את כתובות ה-URI של מפתח KMS והסיסמה לפקודה ליצירת אשכול על ידי הגדרת
dataproc:ranger.kms.key.uriו-dataproc:ranger.admin.password.uriמאפייני האשכול. - אפשר גם להעביר את
adminסיסמת המשתמש במסד הנתונים של Ranger דרך URI של קובץ מוצפן ב-Cloud Storage על ידי הגדרתdataproc:ranger.db.admin.password.uriמאפיין האשכול. - כברירת מחדל, רכיב Ranger משתמש במופע של מסד הנתונים MySql שפועל בצומת הראשי הראשון של האשכול. במופע MySQL, מפעילים את הדגל
log_bin_trust_function_creatorsעל ידי הגדרת המשתנה ל-ON. הגדרת הדגל הזה קובעת אם אפשר לסמוך על יוצרי פונקציות מאוחסנות. אחרי שיוצרים את האשכול ומגדירים את Ranger, אפשר לאפס אתlog_bin_trust_function_creatorsל-OFF. כדי לשמור את מסד הנתונים של Ranger אחרי מחיקת האשכול, משתמשים במכונת Cloud SQL כמסד נתונים חיצוני של MySQL.
- מגדירים את
dataproc:ranger.cloud-sql.instance.connection.nameמאפיין האשכול למופע Cloud SQL. - מגדירים את
dataproc:ranger.cloud-sql.root.password.uriמאפיין האשכול ל-URI של Cloud Storage של סיסמת הבסיס המוצפנת במפתח KMS של מכונת Cloud SQL. - מגדירים את
dataproc:ranger.cloud-sql.use-private-ipמאפיין האשכול כדי לציין אם החיבור למופע Cloud SQL הוא באמצעות כתובת IP פרטית.
רכיב Ranger משתמש בשרת proxy ל-Cloud SQL Auth כדי להתחבר למופע Cloud SQL. כדי להשתמש ב-proxy:
- מגדירים את היקף ה-API
sqlservice.adminכשיוצרים את האשכול (ראו אישור בקשות באמצעות OAuth 2.0). אם משתמשים בפקודהgcloud dataproc cluster create, מוסיפים את הפרמטר--scopes=default,sql-admin. - מפעילים את SQL Admin API בפרויקט.
- מוודאים שלחשבון השירות של האשכול יש את התפקיד Cloud SQL Editor (עריכה ב-Cloud SQL).
- מכיוון ששרת ה-proxy ל-Cloud SQL Auth בצומת הראשי יוצר חיבורים יוצאים למכונה של Cloud SQL דרך יציאה 3307, צריך לוודא שחיבורי TCP יוצאים מהצומת הראשי למכונה של Cloud SQL דרך יציאה 3307 מותרים. מידע נוסף זמין במאמר איך פועל שרת ה-Proxy לאימות של Cloud SQL.
מסוףGoogle Cloud
- במסוף Google Cloud , פותחים את הדף Create cluster.
- לוחצים על הגדרה נוספת כדי להרחיב את הקטע.
- עורכים את הרכיבים האופציונליים.
- בחלונית שנפתחת, מסמנים את תיבות הסימון Ranger ו-Solr ולוחצים על שמירה.
CLI של gcloud
כדי ליצור אשכול של Managed Service for Apache Spark שכולל את רכיב Ranger, משתמשים בפקודה gcloud dataproc clusters create עם הדגל
--optional-components.cluster-namegcloud dataproc clusters create cluster-name \ --optional-components=SOLR,RANGER \ --region=region \ --enable-component-gateway \ --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \ ... other flags
API בארכיטקטורת REST
מציינים את הרכיבים Ranger ו-Solr בשדה SoftwareConfig.Component כחלק מבקשת clusters.create של Dataproc API. בנוסף, צריך להגדיר את מאפייני האשכול הבאים בשדה SoftwareConfig.Component.properties:
dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"dataproc:ranger.admin.password.uri: "gs://my-bucket/admin-password.encrypted"
- מגדירים את
- כשמתקינים את רכיב Ranger, צריך להתקין גם את רכיב Solr.
לוחצים על הכרטיסייה Web interfaces (ממשקי אינטרנט). בקטע Component gateway (שער רכיבים), לוחצים על Ranger כדי לפתוח את ממשק האינטרנט של Ranger. מתחברים באמצעות שם המשתמש של אדמין ב-Ranger (לדוגמה, admin) והסיסמה.
יומנים של Ranger Admin
יומני Ranger admin זמינים בLogging כיומני ranger-admin-root.