רכיב Ranger אופציונלי ב-Dataproc

אפשר להתקין רכיבים נוספים כמו Ranger כשיוצרים אשכול Dataproc באמצעות התכונה רכיבים אופציונליים. בדף הזה מתואר הרכיב Ranger.

רכיב Apache Ranger הוא מסגרת קוד פתוח לניהול הרשאות וביקורת בסביבה של Hadoop. שרת Ranger admin וממשק המשתמש שלו באינטרנט זמינים ביציאה 6080 בצומת הראשי הראשון של האשכול.

מאמרים נוספים:

התקנת הרכיב

מתקינים את הרכיב כשיוצרים אשכול Dataproc. אפשר להוסיף רכיבים לאשכולות שנוצרו באמצעות Dataproc גרסה 1.3 ואילך. כדי להשתמש ברכיב Ranger, צריך להתקין את הרכיב Solr.

בקטע גרסאות Dataproc נתמכות מפורטת גרסת הרכיב שנכללת בכל מהדורת תמונת Dataproc.

שלבי ההתקנה:

  1. הגדרת סיסמה ל-Ranger admin:

    1. מקצים את התפקיד Cloud Key Management Service CryptoKey Encrypter/Decrypter לחשבון השירות של האשכול. כברירת מחדל, חשבון השירות של האשכול מוגדר כחשבון השירות של Compute Engine שמוגדר כברירת מחדל, והוא נראה כך:
      project-number-compute@developer.gserviceaccount.com
      
      כשיוצרים את האשכול, אפשר לציין חשבון שירות אחר לאשכול.
      1. דוגמה: הענקת התפקיד 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
        
    2. מצפינים את הסיסמה של Ranger admin באמצעות מפתח של Key Management Service ‏ (KMS). בגרסאות תמונה שלפני 2.2, הסיסמה צריכה לכלול לפחות 8 תווים, עם לפחות תו אלפביתי אחד ותו מספרי אחד. בגרסה 2.2 ואילך של אשכולות תמונות, הסיסמה צריכה להכיל לפחות 8 תווים, כולל לפחות אות גדולה אחת, אות קטנה אחת וספרה אחת.
      1. דוגמה:
        1. יוצרים את אוסף המפתחות:
          gcloud kms keyrings create my-keyring --location=global
          
        2. יוצרים את המפתח:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. הצפנה של סיסמת המשתמש של 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
          
    3. מעלים את הסיסמה המוצפנת לקטגוריה של Cloud Storage בפרויקט.
      1. דוגמה:
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. יוצרים את האשכול:

    1. כשמתקינים את רכיב Ranger, צריך להתקין גם את רכיב Solr.
      1. רכיב Ranger מסתמך על רכיב Solr לאחסון ולשאילתות של יומני הביקורת שלו, ובאופן שמוגדר כברירת מחדל הוא משתמש ב-HDFS לאחסון. נתוני HDFS נמחקים כשמוחקים את האשכול. כדי להגדיר את רכיב Solr לאחסון נתונים, כולל יומני ביקורת של Ranger, ב-Cloud Storage, משתמשים בdataproc:solr.gcs.path=gs://<bucket> מאפיין האשכול כשיוצרים את האשכול. הנתונים ב-Cloud Storage נשמרים גם אחרי מחיקת האשכול.
    2. מעבירים את מפתחות ה-KMS ואת הסיסמאות של ה-URI של Cloud Storage לפקודה ליצירת אשכול על ידי הגדרת מאפייני האשכול dataproc:ranger.kms.key.uri ו-dataproc:ranger.admin.password.uri.
    3. אפשר גם להעביר את admin סיסמת המשתמש במסד הנתונים של Ranger באמצעות URI מוצפן של קובץ Cloud Storage על ידי הגדרת dataproc:ranger.db.admin.password.uri מאפיין האשכול.
    4. כברירת מחדל, רכיב Ranger משתמש במופע של מסד הנתונים MySql שפועל בצומת הראשי הראשון של האשכול. במופע MySQL, מפעילים את הדגל log_bin_trust_function_creators על ידי הגדרת המשתנה לערך ON. הגדרת הדגל הזה קובעת אם אפשר לסמוך על יוצרי פונקציות מאוחסנות. אחרי שיוצרים את האשכול ומגדירים את Ranger, אפשר לאפס את log_bin_trust_function_creators ל-OFF.
    5. כדי לשמור את מסד הנתונים של Ranger אחרי מחיקת האשכול, משתמשים במכונה של Cloud SQL כמסד נתונים חיצוני של MySQL.

      1. מגדירים את dataproc:ranger.cloud-sql.instance.connection.name מאפיין האשכול למופע Cloud SQL.
      2. מגדירים את dataproc:ranger.cloud-sql.root.password.uri מאפיין האשכול ל-URI של Cloud Storage של סיסמת הבסיס המוצפנת במפתח KMS של מכונת Cloud SQL.
      3. מגדירים את dataproc:ranger.cloud-sql.use-private-ip מאפיין האשכול כדי לציין אם החיבור למופע Cloud SQL הוא באמצעות כתובת IP פרטית.

      רכיב Ranger משתמש בשרת proxy ל-Cloud SQL Auth כדי להתחבר למופע Cloud SQL. כדי להשתמש ב-proxy:

      1. מגדירים את היקף ה-API‏ sqlservice.admin כשיוצרים את האשכול (ראו אישור בקשות באמצעות OAuth 2.0). אם משתמשים בפקודה gcloud dataproc cluster create, מוסיפים את הפרמטר --scopes=default,sql-admin.
      2. מפעילים את SQL Admin API בפרויקט.
      3. מוודאים שלחשבון השירות של האשכול יש את התפקיד Cloud SQL Editor (עריכה ב-Cloud SQL).
      4. מכיוון ששרת ה-proxy ל-Cloud SQL Auth בצומת הראשי יוצר חיבורים יוצאים למכונה של Cloud SQL דרך יציאה 3307, צריך לוודא שחיבורי TCP יוצאים מהצומת הראשי למכונה של Cloud SQL דרך יציאה 3307 מותרים. מידע נוסף זמין במאמר איך פועל שרת ה-Proxy לאימות של Cloud SQL.

      ‫CLI של gcloud

      כדי ליצור אשכול Dataproc שכולל את רכיב Ranger, משתמשים בפקודה gcloud dataproc clusters create cluster-name עם הדגל --optional-components.

      gcloud 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:

      1. dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"
      2. dataproc:ranger.admin.password.uri : "gs://my-bucket/admin-password.encrypted"

      המסוף

      1. מפעילים את הרכיב ואת שער הרכיבים.
        • במסוף Google Cloud , פותחים את הדף Dataproc Create a cluster. החלונית 'הגדרת אשכול' נבחרה.
        • בקטע 'רכיבים':
          • בקטע Optional components (רכיבים אופציונליים), בוחרים את Ranger,‏ Solr ורכיבים אופציונליים אחרים להתקנה באשכול.
          • בקטע Component Gateway (שער רכיבים), בוחרים באפשרות Enable component gateway (הפעלת שער רכיבים) (ראו צפייה בכתובות URL של שער רכיבים וגישה אליהן).

לוחצים על הכרטיסייה Web interfaces (ממשקי אינטרנט). בקטע Component gateway (שער רכיבים), לוחצים על Ranger כדי לפתוח את ממשק האינטרנט של Ranger. מתחברים באמצעות שם המשתמש של אדמין Ranger (לדוגמה, admin) והסיסמה.

יומנים של Ranger Admin

יומני Ranger admin זמינים בLogging כיומני ranger-admin-root.