שימוש באימות רציף מדור קודם

הדף הזה מיועד למשתמשים באימות רציף מדור קודם (CV מדור קודם) (הוצא משימוש).

תיקוף רציף מדור קודם הוא תכונה של Binary Authorization שבודקת מעת לעת תמונות של קונטיינרים שמשויכות ל-Pods פעילים, כדי לוודא שהן ממשיכות לעמוד בדרישות של מדיניות הפרויקט היחידה של Binary Authorization. ממצאים מיומני CV בגרסה הקודמת של Meet נרשמים ב-Cloud Logging.

הגרסה הקודמת של CV לא מסיימת הפעלה של Pods.

מגבלות

לגרסה הקודמת של CV יש את המגבלות הבאות:

  • הגרסה הקודמת של CV תומכת רק ב-Pods שנפרסו ב-Google Kubernetes Engine ‏ (GKE).
  • הגרסה הקודמת של CV לא תומכת במדיניות של Binary Authorization שמציינת כללים ספציפיים לגבי זהויות שירות של Cloud Service Mesh, חשבונות שירות של Kubernetes או מרחבי שמות של Kubernetes.

לפני שמתחילים

  1. מוודאים שהגדרתם Binary Authorization ל-Google Kubernetes Engine בפרויקט. אירועים של תאימות למדיניות של יומני CV מדור קודם מ-Pods בכל האשכולות בפרויקט.

  2. מוודאים ש-CLI של gcloud מעודכן לגרסה האחרונה

ההרשאות הנדרשות

תפקידים בניהול זהויות והרשאות גישה (IAM) כוללים הרשאות ואפשר להקצות אותם למשתמשים, לקבוצות ולחשבונות שירות. התפקידים הבאים כוללים את ההרשאות שמופיעות ברשימה עבור CV:

שם התפקיד הרשאות CV מדור קודם תיאור
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update הפעלה והשבתה של ערכי מהימנות.

כדי להגדיר את הרשאות ה-IAM הנדרשות, מריצים את הפקודות הבאות:

PROJECT_NUMBER=$(gcloud projects list \
  --filter="projectId:ATTESTATION_PROJECT_ID" \
  --format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role='roles/containeranalysis.occurrences.viewer'

הפעלת קורות חיים מדור קודם

המסוף

כדי להפעיל את הגרסה הקודמת של CV באמצעות מסוף Google Cloud :

  1. במסוףGoogle Cloud , עוברים לדף Policy של Binary Authorization.

    מעבר למדיניות Binary Authorization

  2. לוחצים על הכרטיסייה מדיניות.

  3. לוחצים על עריכת המדיניות.

  4. מרחיבים את הקטע הגדרות נוספות לפריסות של GKE ו-Anthos.

  5. מסמנים את תיבת הסימון הפעלת אימות רציף.

  6. לוחצים על שמירת המדיניות.

‫API בארכיטקטורת REST

כדי להפעיל את הגרסה הקודמת של CV באמצעות API בארכיטקטורת REST, מבצעים את הפעולות הבאות:

  1. שומרים את מזהה הפרויקט:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    מחליפים את DEPLOYER_PROJECT_ID במזהה הפרויקט שבו מריצים את GKE.

  2. קבלת טוקן OAuth עבור Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    הטוקן תקף לזמן קצר בלבד.

  3. הפעלת קורות חיים מדור קודם:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
    

מעקב ההמרות מדור קודם מוגדר עכשיו לתיעוד אירועים.

רשומה ביומן של רישום ביומן דומה לדוגמה הבאה:

{
"insertId": "6054e143-0000-2562-aa64-883d24f57e70",
"jsonPayload": {
  "@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
  "podEvent": {
    "images": [
      {
        "description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
        attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
        No attestations found that were valid and signed by a key trusted by
        the attestor",
        "image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
        "result": "DENY"
      }
    ],
    "verdict": "VIOLATES_POLICY",
    "deployTime": "2021-03-19T17:00:08Z",
    "pod": "<var>POD_NAME</var>"
  }
},
"resource": {
  "type": "k8s_cluster",
  "labels": {
    "cluster_name": "<var>CLUSTER_NAME</var>",
    "location": "<var>CLUSTER_LOCATION</var>",
    "project_id": "<var>DEPLOYER_PROJECT_ID</var>"
  }
},
"timestamp": "2021-03-19T17:15:43.872702342Z",
"severity": "WARNING",
"logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}

במאמר הצגת אירועים של CV מדור קודם ב-Cloud Logging מוסבר איך לשלוח שאילתות לגבי אירועים של CV מדור קודם.

פתרון בעיות

ב-CV מדור קודם נעשה שימוש בשירותים אחרים Google Cloud , כמו מאגר משאבי ענן ו-Pub/Sub. במקרים שבהם אימות התאימות מדור קודם נכשל, אפשר לבדוק אם יש שגיאות במאגר משאבי הענן ב-Cloud Logging.

בנוסף, בגרסה הקודמת של CV נוצר משאב פיד בשם binauthz-cv-cai-feed. מחיקה או שינוי של הפיד עלולים לגרום לכשל ב-CV מדור קודם. הגרסה הקודמת של CV משחזרת באופן אוטומטי פידים חסרים או פידים ששונו, אבל יכול להיות שהיא לא תתעד את הממצאים עד שהיא תעשה זאת.

השבתת קורות חיים

המסוף

כדי להשבית את CV מדור קודם באמצעות מסוף Google Cloud :

  1. נכנסים לדף Binary Authorization במסוף Google Cloud :

    מעבר למדיניות Binary Authorization

  2. לוחצים על הכרטיסייה מדיניות.

  3. לוחצים על עריכת המדיניות.

  4. מבטלים את הסימון של תיבת הסימון הפעלת אימות מתמשך.

  5. לוחצים על שמירת המדיניות.

‫API בארכיטקטורת REST

כדי להשבית את CV מדור קודם באמצעות API בארכיטקטורת REST, בצע את הפעולות הבאות:

  1. שומרים את מזהה הפרויקט:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    מחליפים את DEPLOYER_PROJECT_ID במזהה הפרויקט שבו מריצים את GKE.

  2. קבלת טוקן OAuth עבור Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    הטוקן תקף לזמן קצר בלבד.

  3. משביתים את הגרסה הקודמת של CV באמצעות הפקודה הבאה:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
    

צפייה באירועים של CV מדור קודם ב-Cloud Logging

אחרי שמפעילים את CV, כל ה-Pods שמפירים את מדיניות Binary Authorization נרשמים באופן קבוע ב-Cloud Logging.

הרשומות ביומן האלה מכילות את שם היומן הבא:

logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"

Logs Explorer

כדי להציג אירועים של CV מדור קודם ב-Cloud Logging באמצעות Logs Explorer:

  1. כניסה לדף Logs Explorer.

  2. בוחרים את מזהה הפרויקט שבו הפעלתם את Google Cloud Observability.

  3. מזינים את השאילתה הבאה בתיבה search-query:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. בוחרים את טווח הזמן בבורר טווח הזמן.

הכלי מדור קודם להצגת יומנים

כדי לראות אירועים של CV מדור קודם ב-Cloud Logging באמצעות Logs Explorer:

  1. כניסה לדף Logs Explorer.

  2. בתפריט הנפתח אפשרויות, בוחרים באפשרות חזרה לכלי הקודם לצפייה ביומנים.

  3. בוחרים את Google Cloud הפרויקט שבו הגדרתם את Google Cloud Observability.

  4. מזינים את השאילתה הבאה בתיבת שאילתת החיפוש:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. בוחרים את טווח הזמן בבורר טווח הזמן.

gcloud

כדי להציג אירועים קודמים של CV מהשבוע האחרון ב-Cloud Logging באמצעות gcloud, מריצים את הפקודה הבאה:

gcloud logging read --order="desc" --freshness=7d \
  'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'

המאמרים הבאים