יכול להיות שהמשימה שלכם תדרוש מפתחות API, סיסמאות, אישורים או מידע רגיש אחר בשביל התלות שלה. ב-Cloud Run, Google ממליצה לאחסן את המידע הרגיש הזה בסוד שיוצרים ב-Secret Manager.
אפשר להפוך סוד לזמין למאגרי התגים באחת מהדרכים הבאות:
- כשמציבים כל סוד כנפח, Cloud Run הופך את הסוד לזמין לקונטיינר כקובץ. כשקוראים נפח, Cloud Run תמיד מאחזר את ערך הסוד מ-Secret Manager כדי להשתמש בערך עם הגרסה האחרונה. השיטה הזו מתאימה גם לרוטציה של סודות.
- העברת סוד באמצעות משתני סביבה.
משתני הסביבה נפתרים בזמן הפעלת המופע, ולכן אם משתמשים בשיטה הזו, Google ממליצה להצמיד את הסוד לגרסה מסוימת במקום להשתמש ב-
latestכגרסה.
מידע נוסף זמין במאמר בנושא שיטות מומלצות לשימוש ב-Secret Manager.
איך מתבצעת בדיקה של סודות בזמן הפריסה ובזמן הריצה
במהלך יצירת העבודה, Cloud Run בודק את כל הסודות שבהם אתם משתמשים. הבדיקה מוודאת שלחשבון השירות שמריץ את הקונטיינר יש הרשאה לגשת לסודות האלה.
במהלך זמן הריצה, כשהמופעים מופעלים:
- אם הסוד הוא משתנה סביבה, Cloud Run מאחזר את הערך של הסוד לפני הפעלת המופע. אם תהליך אחזור הסוד נכשל, המופע לא יופעל.
- אם מטעינים את הסוד כנפח, Cloud Run לא מבצע בדיקות במהלך הפעלת המופע. עם זאת, במהלך זמן הריצה, אם סוד לא נגיש, הניסיונות לקרוא את אמצעי האחסון המצורף נכשלים.
בעלות על נפח
הבעלות על נפח סודי ב-Cloud Run משתנה בהתאם לסביבת ההפעלה ולסוג הפריסה.
כשמפעילים נפח סודי באמצעות סביבת ההרצה מהדור השני, שזה תמיד המקרה לגבי עבודות, נפח הבסיס הוא בבעלות השורש.
לפני שמתחילים
-
Enable the Secret Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - משתמשים בסוד קיים או יוצרים סוד ב-Secret Manager, כמו שמתואר במאמר יצירת סוד.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת סודות, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
Cloud Run Admin (
roles/run.admin) במשימה ב-Cloud Run -
משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
כדי לאפשר ל-Cloud Run לגשת לסוד, לזהות השירות צריכה להיות ההרשאה הבאה:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor)
הוראות להוספת חשבון המשתמש של השירות לתפקיד Secret Accessor ב-Secret Manager מופיעות במאמר ניהול הגישה לסודות.
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הפיכת סוד לנגיש ל-Cloud Run
אפשר להגדיר סוד כך שהעבודה תוכל לגשת אליו באמצעות מסוף Google Cloud , Google Cloud CLI או YAML:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה משתנים וסודות.
- בכרטיסייה Variables & Secrets (משתנים וסודות):
כדי לחשוף את הסוד כמשתנה סביבה:
- לוחצים על הכרטיסייה Container(s) (מאגרי תגים).
- בכרטיסייה Variables and Secrets (משתנים וסודות), לוחצים על Reference a secret (הפניה לסוד).
- בשדה Name 1, מזינים את השם של משתנה הסביבה.
- ברשימה Secret, בוחרים את הסוד שרוצים להשתמש בו.
- ברשימה גרסה 1, בוחרים את גרסת הסוד שאליה רוצים להפנות.
- לוחצים על סיום.
- לוחצים על יצירה או על פריסה.
כדי לטעון סוד כנפח:
- לוחצים על הכרטיסייה Volumes (אמצעי אחסון) ובוחרים באפשרות Add volume (הוספת אמצעי אחסון).
- ברשימה Volume type (סוג נפח), בוחרים באפשרות Secret (סוד).
- בשדה Volume name, מזינים שם או מאשרים את שם ברירת המחדל.
- ברשימה Secret, בוחרים את הסוד שרוצים להשתמש בו.
- בשדה נתיב 1, מזינים את שם הקובץ להרכבה.
- ברשימה Version 1, בוחרים את הגרסה של הסוד שאליה רוצים להפנות. כברירת מחדל, הגרסה האחרונה נבחרת. אם רוצים, אפשר לבחור גרסה ספציפית.
- לוחצים על סיום.
- עוברים לכרטיסייה Container(s) (מאגרים) כדי לטעון את הסוד למאגר.
- בכרטיסייה Volume mounts, לוחצים על Mount volume.
- ברשימה Name 1, בוחרים את שם הכרך.
- בשדה Mount path 1, מזינים את נתיב ההרכבה של הסוד הזה. זוהי הספרייה שבה ממוקמות כל הגרסאות של הסוד.
- לוחצים על סיום.
- לוחצים על יצירה או על פריסה.
- בכרטיסייה Variables & Secrets (משתנים וסודות):
לוחצים על יצירה או על עדכון.
gcloud
כדי לציין את הסוד במשתנה סביבה כשיוצרים משימה חדשה:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --set-secrets ENV_VAR_NAME=SECRET_NAME:VERSION
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- ENV_VAR_NAME: השם של משתנה הסביבה שבו ישתמשו בשביל הסוד.
- SECRET_NAME: שם הסוד באותו פרויקט – לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestלגרסה העדכנית ביותר, או במספר – לדוגמה,2. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest.
אפשר לציין כמה זוגות של משתני סביבה/סודות באמצעות רשימה שמופרדת בפסיקים.
כדי לציין את הסוד במשתנה סביבה כשמעדכנים משימה:
gcloud run jobs update JOB_NAME \ --set-secrets ENV_VAR_NAME=SECRET_NAME:VERSION
כדי לצרף את הסוד כנפח כשיוצרים משימה:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --set-secrets=PATH=SECRET_NAME:VERSION
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - SECRET_NAME: שם הסוד באותו פרויקט – לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2.
כדי לעדכן סוד בעבודה קיימת:
gcloud run jobs update JOB_NAME \ --update-secrets=PATH=SECRET_NAME:VERSION
YAML
בגלל מגבלות שקשורות לתאימות של API, צריך לאחסן את המיקומים הסודיים בהערה.
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
לסודות שנחשפים כמשתני סביבה:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - env: - name: SECRET_NAME valueFrom: secretKeyRef: key: VERSION name: SECRET_LOOKUP_NAME image: IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
- JOB: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2. - SECRET_LOOKUP_NAME: כל שם שתואם לתחביר של שם סוד תקין, לדוגמה
my-secret. יכול להיות זהה לערך של SECRET_NAME.
לסודות שמוצמדים כנתיבי קבצים:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: MOUNT_PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME secret: items: - key: VERSION path: FILENAME secretName: SECRET_LOOKUP_NAME
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - PROJECT_NUMBER: מספר הפרויקט שבו נוצר הסוד.
- SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2. - SECRET_LOOKUP_NAME: כל שם שתואם לתחביר של שם סוד תקין, לדוגמה
my-secret. יכול להיות זהה לערך של SECRET_NAME. - VOLUME_NAME: כל שם – לדוגמה,
my-volume. יכול להיות שזה יהיה אותו ערך כמו SECRET_NAME.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בקובץ התצורה של Terraform:לסודות שנחשפים כמשתני סביבה:
resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- REGION: Google Cloud האזור. לדוגמה:
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestלגרסה העדכנית ביותר, או במספר – לדוגמה,2.
לסודות שמוצמדים כנתיבי קבצים:
resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
secret {
secret = "SECRET_NAME"
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- REGION: Google Cloud האזור. לדוגמה:
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - VOLUME_NAME: כל שם – לדוגמה,
my-volume. יכול להיות זהה לערך שלSECRET_NAME. - MOUNT_PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - SECRET_NAME: שם הסוד, לדוגמה,
mysecret.
הפניה לסודות מפרויקטים אחרים
אפשר להפנות לסוד מפרויקט אחר, אם הוענקה לחשבון השירות של הפרויקט גישה לסוד.
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה משתנים וסודות.
- בכרטיסייה Variables & Secrets (משתנים וסודות):
כדי לחשוף את הסוד כמשתנה סביבה:
- לוחצים על הכרטיסייה Container(s) (מאגרי תגים).
- בכרטיסייה Variables and Secrets (משתנים וסודות), לוחצים על Reference a secret (הפניה לסוד).
- בשדה Name 1, מזינים את השם של משתנה הסביבה.
- ברשימה Secret, לוחצים על Enter secret manually (הזנת סוד באופן ידני).
מזינים את מזהה המשאב של הסוד בפורמט הבא:
projects/PROJECT_NUMBER/secrets/SECRET_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_NUMBER במספר הפרויקט. Google Cloud הוראות מפורטות לאיתור מספר הפרויקט זמינות במאמר יצירה וניהול של פרויקטים.
SECRET_NAME: השם של הסוד ב-Secret Manager.
ברשימה גרסה 1, בוחרים את גרסת הסוד שאליה רוצים להפנות.
לוחצים על סיום.
לוחצים על יצירה או על פריסה.
כדי לטעון סוד כנפח:
- לוחצים על הכרטיסייה Volumes (אמצעי אחסון) ובוחרים באפשרות Add volume (הוספת אמצעי אחסון).
- ברשימה Volume type (סוג נפח), בוחרים באפשרות Secret (סוד).
- בשדה Volume name, מזינים שם או מאשרים את שם ברירת המחדל.
- ברשימה Secret, לוחצים על Enter secret manually (הזנת סוד באופן ידני).
מזינים את מזהה המשאב של הסוד בפורמט הבא:
projects/PROJECT_NUMBER/secrets/SECRET_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_NUMBER במספר הפרויקט. Google Cloud הוראות מפורטות לאיתור מספר הפרויקט זמינות במאמר יצירה וניהול של פרויקטים.
SECRET_NAME: השם של הסוד ב-Secret Manager.
בשדה נתיב 1, מזינים את שם הקובץ להרכבה.
ברשימה Version 1, בוחרים את הגרסה של הסוד שאליה רוצים להפנות. כברירת מחדל, הגרסה האחרונה נבחרת. אם רוצים, אפשר לבחור גרסה ספציפית.
לוחצים על סיום.
עוברים לכרטיסייה Container(s) (מאגרים) כדי לטעון את הסוד למאגר.
בכרטיסייה Volume mounts, לוחצים על Mount volume.
ברשימה Name 1, בוחרים את שם הכרך.
בשדה Mount path 1, מזינים את נתיב ההרכבה של הסוד הזה. זוהי הספרייה שבה ממוקמות כל הגרסאות של הסוד.
לוחצים על סיום.
לוחצים על יצירה או על פריסה.
- בכרטיסייה Variables & Secrets (משתנים וסודות):
לוחצים על יצירה או על עדכון.
gcloud
כדי לצרף סוד כנפח כשמעדכנים משימה:
gcloud run jobs update JOB_NAME \ --image IMAGE_URL \ --update-secrets=PATH=projects/PROJECT_NUMBER/secrets/SECRET_NAME:VERSION
- JOB_NAME: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - PROJECT_NUMBER: מספר הפרויקט שבו נוצר הסוד.
- SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2.
YAML
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
בגלל מגבלות שקשורות לתאימות של API, צריך לאחסן את המיקומים הסודיים בהערה.
לסודות שנחשפים כמשתני סביבה:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME spec: template: spec: containers: - env: - name: SECRET_NAME valueFrom: secretKeyRef: key: VERSION name: SECRET_LOOKUP_NAME image: IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
- JOB: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2. - PROJECT_NUMBER: מספר הפרויקט שבו נוצר הסוד.
- SECRET_LOOKUP_NAME: כל שם שתואם לתחביר של שם סוד תקין, לדוגמה
my-secret. יכול להיות זהה לערך של SECRET_NAME.
לסודות שמוצמדים כנתיבי קבצים:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: metadata: annotations: run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME spec: template: spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: MOUNT_PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME secret: items: - key: VERSION path: FILENAME secretName: SECRET_LOOKUP_NAME
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - PROJECT_NUMBER: מספר הפרויקט שבו נוצר הסוד.
- SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - VERSION: גרסת הסוד. משתמשים ב-
latestכדי להוריד את הגרסה העדכנית, או במספר – לדוגמה,2. - SECRET_LOOKUP_NAME: כל שם עם תחביר תקין של שם סוד – לדוגמה,
my-secret. יכול להיות שזה יהיה אותו שם כמו SECRET_NAME. - VOLUME_NAME: כל שם – לדוגמה,
my-volume. יכול להיות שזה יהיה אותו שם כמו SECRET_NAME.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בקובץ התצורה של Terraform:לסודות שנחשפים כמשתני סביבה:
resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- REGION: Google Cloud האזור. לדוגמה:
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - SECRET_NAME: שם הסוד, לדוגמה,
mysecret. - PROJECT_ID: מזהה הפרויקט שבו נוצר הסוד.
- VERSION: גרסת הסוד. משתמשים ב-
latestלגרסה העדכנית ביותר, או במספר – לדוגמה,2.
לסודות שמוצמדים כנתיבי קבצים:
resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
secret {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- REGION: האזור Google Cloud . לדוגמה,
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - VOLUME_NAME: כל שם – לדוגמה,
my-volume. יכול להיות שזה יהיה אותו שם כמוSECRET_NAME. - MOUNT_PATH: נתיב ההרכבה של אמצעי האחסון ושם הקובץ של הסוד. הוא חייב להתחיל בקו נטוי מוביל – לדוגמה,
/etc/secrets/dbconfig/password, כאשר/etc/secrets/dbconfig/הוא נתיב ההרכבה של אמצעי האחסון ו-passwordהוא שם הקובץ של הסוד. - PROJECT_ID: מזהה הפרויקט שבו נוצר הסוד.
- SECRET_NAME: שם הסוד, לדוגמה,
mysecret.
הצגת הגדרות הסודות
כדי לראות את הגדרות הסודות הנוכחיות של משימת Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה שמעניינת אתכם כדי לפתוח את הדף פרטי המשרה.
לוחצים על View and Edit job configuration (הצגה ועריכה של הגדרות העבודה).
מאתרים את הגדרת הסודות בפרטי ההגדרה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs describe JOB_NAME
מאתרים את הגדרת הסודות בתצורה שמוחזרת.
מגבלות
בקטעים הבאים מתוארות המגבלות שחלות על העלאת סודות.
נתיבים אסורים
- ב-Cloud Run אי אפשר לטעון סודות בנתיבים
/dev,/procו-/sysאו בספריות המשנה שלהם. - ב-Cloud Run אי אפשר לטעון כמה סודות באותה נתיב, כי אי אפשר לטעון שני כרכים באותו מיקום.
סודות אזוריים
Cloud Run לא תומך בסודות אזוריים.
שינוי של ספרייה
אם הסוד מוטען כנפח ב-Cloud Run, והספרייה האחרונה בנתיב הטעינה של הנפח כבר קיימת, לא תהיה גישה לקבצים או לתיקיות בספרייה הקיימת.
לדוגמה, אם סוד בשם my-secret מותקן בנתיב /etc/app_data, כל התוכן בספרייה app_data יידרס, והקובץ היחיד שיוצג הוא /etc/app_data/my-secret.
כדי להימנע משכתוב של קבצים בספרייה קיימת, יוצרים ספרייה חדשה להרכבת הסוד, למשל /etc/app_data/secrets, כך שנתיב ההרכבה של הסוד יהיה /etc/app_data/secrets/my-secret.