אמצעי הבקרה של הסשן מאפשרים לכם להגדיר כל כמה זמן המשתמשים צריכים לעבור אימות מחדש אחרי שניתנה להם גישה, וגם אם נדרש כניסה מלאה, סיסמה בלבד או מפתח אבטחה פיזי.
אפשר להשתמש באמצעי בקרה על סשנים כדי:
- אכיפת אימות מחדש בתדירות גבוהה למשתמשים עם הרשאות מורחבות: דרישה ממשתמשים עם הרשאות מורחבות, כמו בעלי פרויקטים ואדמינים לחיוב, לבצע אימות מחדש בתדירות גבוהה יותר.
- הגדרת סשנים ארוכים יותר לאפליקציות מסוימות: אפשר להגדיר סשנים ארוכים יותר לאפליקציות נתמכות, כמו Google Cloud console, Google Cloud SDK או אפליקציות ספציפיות של OAuth, כדי לשמור על חלון ההקשר הגדול שנדרש לביצועים אופטימליים.
הגדרת משך הביקור ושיטות לאימות מחדש
אפשר להגדיר אמצעי בקרה על פעילות כשיוצרים קישור של Access Context Manager. מידע נוסף על אמצעי הבקרה של הסשן זמין במאמר החלת מדיניות על קבוצות משתמשים באמצעות הרשאות גישה.
gcloud
הגדרת אמצעי בקרה של ברירת מחדל לסשן לכל האפליקציות
משתמשים בדגל
--session-lengthכדי להגדיר את משך הסשן. הערך חייב להיות0s, או בין שעה ל-24 שעות. מציינים את משך הזמן בשעות. לדוגמה, אפשר להשתמש בערך '12h' כדי להגדיר סשן באורך 12 שעות. משתמשים בדגל--session-reauth-methodכדי לציין את שיטת האימות מחדש. לדוגמה, אפשר להגדיר משך סשן של 3 שעות (3h) ושיטת אימות מחדש שלLOGIN,PASSWORDאוSECURITY_KEY.ההגדרה הזו תחול על כל האפליקציות, אלא אם היא תוחלף בהגדרות ספציפיות לאפליקציה.
הגדרה של אמצעי בקרה על פעילות ספציפיים לאפליקציה
כדי לציין אמצעי בקרה על סשנים באפליקציות ספציפיות באמצעות
clientId, צריך להגדיר אתscopedAccessSettingsבקובץ YAML. כך תוכלו לשנות את הגדרות ברירת המחדל של השליטה בסשן עבור האפליקציות האלה. אחר כך תוכלו להעביר את קובץ ה-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: מפתח הקבוצה BINDING_FILE_PATH: הנתיב של קובץ הקישור-
SESSION_LENGTH: אורך הסשן – לדוגמה,18h
API בארכיטקטורת REST
דוגמה לתוכן בקשת API בפורמט JSON:
{
"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 = "{Organization ID}"
group_key = "{Group Key}"
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 = "SENSITIVE_APP_ID"
}
}
}
active_settings {
session_settings {
session_length = "7200s"
session_length_enabled = true
session_reauth_method = "SECURITY_KEY"
use_oidc_max_age = false
}
}
}
}
הגדרת מדיניות לדוגמה לאפליקציות 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: מפתח הקבוצה BINDING_FILE_PATH: הנתיב של קובץ הקישור
API בארכיטקטורת REST
דוגמה לתוכן בקשת API בפורמט JSON:
{
"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 = "{Organization ID}"
group_key = "{Group Key}"
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
}
}
}
}
שינוי ברירת המחדל של משך הסשן באפליקציות של Google Cloud
החל מיוני 2026, הוספנו משך ברירת מחדל של 16 שעות לביקור עבור קבוצת משנה של Google Cloud ארגונים. מדיניות ברירת המחדל הזו לא מוצגת במסוף Google Admin, וארגונים מושפעים Google Cloud צריכים להשתמש ב-Access Context Manager API כדי לבטל אותה עבור המשתמשים שלהם.
כדי לשנות את מדיניות ברירת המחדל הזו ולפטור את האפליקציות האלה מבקרה על הפעילות (כך שמשך הסשן יהיה למעשה אינסופי), אפשר ליצור קשירת ענן עם scopedAccessSettings כאשר sessionLengthEnabled מוגדר ל-false גם עבור Google Cloud SDK וגם עבור אפליקציות של Google Cloud מסוף Google Cloud (Cloud Console).
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: מפתח הקבוצה (לדוגמה, קבוצה שמכילה את כל המשתמשים שרוצים שהשינוי הזה יחול עליהם) BINDING_FILE_PATH: הנתיב של קובץ הקישור
API בארכיטקטורת REST
דוגמה לתוכן בקשת API בפורמט JSON:
{
"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 = "{Organization ID}"
group_key = "{Group Key}"
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
}
}
}
}