הגדרה של אמצעי בקרה על פעילות לאימות מחדש

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

אתם יכולים להחיל אמצעי בקרה על סשנים כדי:

  • אכיפת אימות מחדש בתדירות גבוהה למשתמשים בעלי הרשאות: דורשים ממשתמשים בעלי הרשאות מורחבות, כמו Project Owner ואדמינים של חיוב, לאמת מחדש בתדירות גבוהה יותר.
  • הגדרת משך סשן ארוך יותר לאפליקציות מסוימות: אפשר להגדיר משך סשן ארוך יותר לאפליקציות נתמכות, כמו מסוף Google Cloud , ‏Google Cloud SDK או אפליקציות OAuth ספציפיות, כדי לשמור על חלון ההקשר הגדול שנדרש לביצועים אופטימליים.

הגדרת משך הסשן ושיטות האימות מחדש

אתם יכולים להגדיר אמצעי בקרה על סשנים כשאתם יוצרים קישור ב-Access Context Manager. מידע נוסף על אמצעי הבקרה על סשנים זמין במאמר החלת כללי מדיניות מוחלת על קבוצות משתמשים באמצעות קישורי גישה.

gcloud

  • הגדרת אמצעי בקרה על סשנים כברירת מחדל לכל האפליקציות

    משתמשים בדגל --session-length כדי להגדיר את משך הסשן. הערך חייב להיות 0s, או בין שעה אחת ל-24 שעות. מציינים את משך הזמן בשעות. לדוגמה, כדי להגדיר סשן של 12 שעות, צריך להזין "12h". משתמשים בדגל --session-reauth-method כדי לציין את השיטה לאימות מחדש. לדוגמה, אתם יכולים להגדיר משך סשן של 3 שעות (3h) ושיטת אימות מחדש של LOGIN, PASSWORD או SECURITY_KEY.

    ההגדרה הזו תחול על כל האפליקציות, אלא אם היא תוחלף על ידי הגדרות ספציפיות לאפליקציה.

  • הגדרת אמצעי בקרה על סשנים ספציפיים לאפליקציה

    מגדירים את scopedAccessSettings בקובץ YAML כדי לציין אמצעי בקרה על סשנים באפליקציות ספציפיות באמצעות clientId. כך אפשר לשנות את אמצעי הבקרה שמוגדרים כברירת מחדל לסשנים באפליקציות האלה. לאחר מכן תוכלו להעביר את קובץ ה-YAML באמצעות --binding-file flag.

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

מגדירים את השדות sessionLength ו-sessionReauthMethod באובייקט sessionSettings בגוף ה-JSON של בקשת ה-POST כדי ליצור או לעדכן קישור של GcpUserAccessBinding.

  • ‫sessionLength הוא משך הסשן בשניות, בפורמט של מספר השניות ואחריו s (לדוגמה, 3600s). הערך חייב להיות 0s או בין 3600s (שעה אחת) ל-86400s (24 שעות). אם המדיניות מוגדרת לערך 0s, צריך להגדיר את המדיניות sessionLengthEnabled לערך false או לא להגדיר אותה. אי אפשר להגדיר את sessionLength ל-0s ואת sessionLengthEnabled ל-true.
  • הערך של sessionReauthMethod יכול להיות LOGIN,‏ PASSWORD או SECURITY_KEY.
  • אפשר להשתמש ב-scopedAccessSettings כדי להגדיר אמצעי בקרה לסשנים ספציפיים לאפליקציה. פרטים נוספים זמינים במאמר הגדרת תצורות לאפליקציות ספציפיות.

Terraform

במשאב Terraform Google Cloud User Access Binding, מגדירים את הארגומנט session_settings כדי להגדיר אמצעי בקרה כלליים על משך הסשן שחלים על כל תנועת המשתמשים:

  • ‫session_length: משך הסשן בשניות. לדוגמה, 3600s מגדיר את משך הסשן לשעה אחת. חובה להוסיף את s בסוף.
  • ‫session_length_enabled: צריך להגדיר את הערך false כדי להשבית את הגדרות הסשן שצוינו.
  • ‫session_reauth_method: סוג אתגר האימות שמשמש לרענון פרטי הכניסה. האפשרויות הן LOGIN,‏ PASSWORD או SECURITY_KEY.
  • ‫use_oidc_max_age: שדה מתקדם שמשמש כדי לקבוע אם הסשן יכבד פרמטר אופציונלי של גיל מקסימלי ב-OIDC, שצוין אם פרטי הכניסה לאימות הם אסימון OAuth.

כשמגדירים אמצעי בקרה לסשנים, רק הקישור לגישה שנוצר לאחרונה ותואם לבקשה משמש לפתרון הגדרות של אמצעי הבקרה לסשנים.

הגדרת מדיניות לדוגמה

בדוגמה הבאה מוסבר איך ליצור אמצעי בקרה על סשנים שדורש אימות מחדש כל 18 שעות באמצעות LOGIN וכל שעתיים לאפליקציה ספציפית (SENSITIVE_APP_ID) באמצעות SECURITY_KEY.

הגדרות ברירת המחדל

הדגלים --level,‏ --session-length ו---session-reauth-method בפקודה של Google Cloud CLI (או השדות התואמים בגוף ה-JSON של הקריאה ל-API) מגדירים את פעולת ברירת המחדל לכל האפליקציות שלא הוגדרו במפורש ב-scopedAccessSettings.

הגדרות ספציפיות לאפליקציה

הקטע scopedAccessSettings בקובץ YAML (או בגוף ה-JSON) מאפשר לשנות את הגדרות ברירת המחדל של אפליקציות ספציפיות. בדוגמה הזו, הגדרנו דרישה לאימות מחדש כל שעתיים באמצעות SECURITY_KEY לאפליקציה עם מזהה הלקוח SENSITIVE_APP_ID.

הגדרות ספציפיות לאפליקציות ב-scopedAccessSettings מבטלות לחלוטין את אמצעי הבקרה שמוגדרים כברירת מחדל (גלובליים) לסשנים. אם הגדרה מוגדרת לאפליקציה מסוימת, אמצעי הבקרה שמוגדרים כברירת מחדל לסשן לא חלים על האפליקציה הזו.

כדי להחריג אפליקציות מסוימות מבקרת הסשנים כשאמצעי הבקרה הגלובליים פעילים, צריך להוסיף אותן באופן מפורש ל-scopedAccessSettings ולהגדיר את השדה sessionLength לערך 0s ואת sessionLengthEnabled לערך false.

gcloud

בדוגמה הבאה מוצגת הגדרת הסשן:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        clientId: SENSITIVE_APP_ID
  activeSettings:
    sessionSettings:
      sessionLength: 7200s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true

יוצרים את קישור הגישה:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH \
    --session-length=SESSION_LENGTH \
    --session-reauth-method LOGIN

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה של Google Cloud הארגון

  • ‫GROUP_ID: המזהה הייחודי של הקבוצה ב-Cloud Identity

  • ‫BINDING_FILE_PATH: הנתיב לקובץ הקישור

  • ‫SESSION_LENGTH: משך הסשן, לדוגמה 18h

כדי לקבל את מזהה הקבוצה הייחודי, מריצים את הפקודה הבאה:

gcloud identity groups describe GROUP_EMAIL

מחליפים את GROUP_EMAIL בכתובת האימייל של הקבוצה. המזהה הייחודי של הקבוצה הוא הערך שמוחזר אחרי groups/ בשדה name בפלט. לדוגמה, המזהה הייחודי של הקבוצה ב-groups/01gf8i8311xalqg הוא 01gf8i8311xalqg.

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

דוגמה לגוף JSON של בקשת ה-API:

{
  "groupKey": "GROUP_ID",
  "sessionSettings": {
    "sessionLength": "64800s",
    "sessionReauthMethod": "LOGIN",
    "sessionLengthEnabled": true
  },
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "7200s",
          "sessionReauthMethod": "SECURITY_KEY",
          "sessionLengthEnabled": true
        }
      }
    }
  ]
}

יוצרים את בקשת ה-POST בפורמט הבא:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

מחליפים את ORG_ID במזהה של הארגון Google Cloud .

Terraform

כדי לציין אמצעי בקרה על סשנים שחלים באופן גלובלי ועל אפליקציות ספציפיות, מגדירים את הארגומנטים session_settings ו-scoped_access_settings:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      session_settings {
        session_length = "64800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              client_id = "CLIENT_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
    }

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה המספרי של הארגון ב- Google Cloud.

  • ‫GROUP_ID: מזהה הקבוצה הגולמי ב-Cloud Identity או ב-Google Workspace Directory API. אל תשתמשו בכתובת אימייל של קבוצה או בשם של משאב "groups/...". במקום זאת, צריך להעביר את המזהה הגולמי או להשתמש ב-trimprefix(google_cloud_identity_group.example.id, "groups/").

  • ‫CLIENT_ID: מזהה הלקוח ב-OAuth 2.0 של האפליקציה.

הגדרת מדיניות לדוגמה לאפליקציות Google Cloud

אתם יכולים להגדיר אמצעי בקרה לאימות מחדש ספציפיים לאפליקציה ל- Google Cloud אפליקציות, לדוגמה, דרישה של SECURITY_KEY ל-Google Cloud SDK ו-LOGIN למסוף Google Cloud . בדוגמה הבאה מוסבר איך ליצור בקרת סשנים שדורשת אימות מחדש כל שעה ב-Google Cloud SDK באמצעות SECURITY_KEY, וכל 4 שעות במסוף Google Cloud באמצעות LOGIN.

הקטע scopedAccessSettings בקובץ YAML (או בגוף ה-JSON) מאפשר לשנות את הגדרות ברירת המחדל של אפליקציות ספציפיות. בדוגמה הזו, הגדרנו דרישה לאימות מחדש כל שעה באמצעות SECURITY_KEY ל-Google Cloud SDK, ודרישה לאימות מחדש כל ארבע שעות באמצעות LOGIN למסוף Google Cloud באמצעות השדה name כדי לזהות את האפליקציות האלה.

כדי להחריג אפליקציות מסוימות מבקרת הסשן, צריך להגדיר את השדה sessionLength לערך 0s או את השדה sessionLengthEnabled לערך false. המערכת תתעלם מהשיטה sessionReauthMethod.

gcloud

בדוגמה הבאה מוצגת הגדרת הסשן:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 3600s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 14400s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: true

יוצרים את קישור הגישה:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה של Google Cloud הארגון

  • ‫GROUP_ID: המזהה הייחודי של הקבוצה ב-Cloud Identity

  • ‫BINDING_FILE_PATH: הנתיב לקובץ הקישור

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

דוגמה לגוף JSON של בקשת ה-API:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "3600s",
            "sessionReauthMethod": "SECURITY_KEY",
            "sessionLengthEnabled": true
          }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "14400s",
            "sessionReauthMethod": "LOGIN",
            "sessionLengthEnabled": true
          }
      }
    }
  ]
}

יוצרים את בקשת ה-POST בפורמט הבא:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

מחליפים את ORG_ID במזהה של הארגון Google Cloud .

Terraform

כדי להגדיר את משך הסשן ב-Google Cloud SDK ובמסוף Google Cloud , צריך להגדיר את הארגומנט המתאים של scoped_access_settings:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "3600s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "14400s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה המספרי של הארגון ב- Google Cloud.

  • ‫GROUP_ID: מזהה הקבוצה הגולמי של Cloud Identity או של Google Workspace Directory API. אל תשתמשו בכתובת אימייל של קבוצה או בשם של משאב "groups/...". במקום זאת, צריך להעביר את המזהה הגולמי או להשתמש ב-trimprefix(google_cloud_identity_group.example.id, "groups/").

שינוי אורך הסשן שמוגדר כברירת מחדל (16 שעות) באפליקציות של Google Cloud

החל מיוני 2026, הוגדר אורך סשן של 16 שעות כברירת מחדל לקבוצת משנה של Google Cloud ארגונים. מדיניות ברירת המחדל הזו לא מוצגת במסוף Google Admin, וארגונים שמושפעים ממנה צריכים להשתמש ב-Access Context Manager API כדי לשנות אותה עבור המשתמשים שלהם. Google Cloud

כדי לשנות את מדיניות ברירת המחדל הזו ולהחריג את האפליקציות האלה מבקרת הסשנים (כך שמשך הסשן יהיה למעשה אינסופי), אפשר ליצור קישור לענן עם scopedAccessSettings כאשר sessionLengthEnabled מוגדר ל-false גם עבור Google Cloud SDK וגם עבור אפליקציות מסוף Google Cloud ("מסוף Cloud").

gcloud

בדוגמה הבאה מוצגת הגדרת ה-YAML להשבתת אמצעי הבקרה על סשנים באפליקציות האלה:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false

יוצרים או מעדכנים את קישור הגישה באמצעות הקובץ הזה:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה של Google Cloud הארגון

  • ‫GROUP_ID: המזהה הייחודי של הקבוצה ב-Cloud Identity (לדוגמה, המזהה של קבוצה שמכילה את כל המשתמשים שרוצים להחיל עליהם את ההחרגה הזו)

  • ‫BINDING_FILE_PATH: הנתיב לקובץ הקישור

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

דוגמה לגוף JSON של בקשת ה-API:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    }
  ]
}

יוצרים את בקשת ה-POST בפורמט הבא:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

מחליפים את ORG_ID במזהה של הארגון Google Cloud .

Terraform

כדי להשבית את בקרות הסשנים ב-Google Cloud SDK ובמסוף Google Cloud , מגדירים את הארגומנט המתאים של scoped_access_settings באמצעות session_length_enabled = false:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ORG_ID: המזהה המספרי של הארגון ב- Google Cloud.

  • ‫GROUP_ID: מזהה הקבוצה הגולמי ב-Cloud Identity או ב-Google Workspace Directory API. אל תשתמשו בכתובת אימייל של קבוצה או בשם של משאב "groups/...". במקום זאת, צריך להעביר את המזהה הגולמי או להשתמש ב-trimprefix(google_cloud_identity_group.example.id, "groups/").