PracticU

חתימה דיגיטלית - DTR - Image Sign

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › חתימה דיגיטלית - DTR - Image Sign
מילון מושגים:
חתימה דיגיטלית - מנגנון מבוסס הצפנה שמוכיח את מקור המידע ושלא שונה בדרך, בעזרת המפתח הפרטי של החותם.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
מפתח פרטי - המפתח הסודי בהצפנה אסימטרית, שנשמר אצל בעליו בלבד ומשמש לפענוח או לחתימה דיגיטלית.
מפתח ציבורי - המפתח הגלוי בהצפנה אסימטרית, שאפשר לחלוק עם כולם, ומשמש להצפנה או לאימות חתימה.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.

חתימה דיגיטלית - DTR - Image Sign
הרצאה על חתימה דיגיטלית על אימג'ים עם Docker Content Trust: יצירת מפתח, העלאה לשרת, חתימה על אימג', והגבלת ההרצה רק לאימג'ים חתומים.
השלבים העיקריים
1. מפתח מ-UCP: ב-UCP מורידים את ה-client bundle של המשתמש, שמכיל מפתח פרטי ומפתח ציבורי. המפתח הפרטי נשאר אצל המשתמש, והשרת שומר רק את המפתח הציבורי.
2. ייבוא מפתח לדוקר המקומי: docker trust key load מייבא את המפתח הפרטי לקליינט המקומי ומבקש סיסמה שמצפינה אותו בדיסק. כך גם אם הדיסק נגנב, המפתח לא ניתן לשימוש בלי הסיסמה.
3. רישום חותם: docker trust signer add מוסיף את המפתח הציבורי למאגר המרכזי תחת שם של חותם. זה תהליך חד-פעמי לכל תחנת עבודה.
4. חתימה: docker trust sign על תגית מסוימת חותם על האימג' ומבקש את הסיסמה של המפתח הפרטי. ב-DTR האימג' מסומן כ-signed.
5. מדיניות הרצה: ב-Admin Settings של UCP מפעילים Run only signed images ומגדירים אילו צוותים חייבים לחתום. כך קונטיינר ממאגר שלא נחתם לא ירוץ בקלאסטר.
פקודות והגדרות
docker trust key load, docker trust signer add, docker trust sign <מאגר>:<תגית>, docker trust inspect --pretty, docker trust revoke, והגדרת DOCKER_CONTENT_TRUST=1 שמפעילה חתימה אוטומטית בכל פוש.
טעויות נפוצות
ההרצאה הזהירה שאם מפתח פרטי נחשף, יש לבטל את החתימות שנעשו בו (docker trust revoke) ולהוציא את החותם מהמאגר.
שימו לב
ההרצאה הדגישה שחתימה דיגיטלית מאפשרת לקלאסטר לסרב לאימג'ים שלא נחתמו על ידי אנשים מורשים בלבד.
בסיום יודעים לחתום על אימג' ולהגדיר לקלאסטר להריץ רק אימג'ים חתומים.
השיעור הבא בקורס: DTR HA Cluster - Storage Bind

פרקי ההרצאה: חתימה דיגיטלית - DTR - Image Sign

  1. 00:00

    חתימה דיגיטלית על אימג'ים בדוקר

  2. 00:59

    יצירת מפתח חתימה מממשק UCP

  3. 01:54

    למה המפתח הפרטי נשאר אצלך בלבד

  4. 04:43

    ייבוא המפתח הפרטי למחשב המקומי

  5. 06:44

    ניהול מפתחות עם docker trust key

  6. 09:00

    יצירת זהות חותם נפרדת מהמשתמשים

  7. 10:39

    הוספת חותם מורשה לרפוזיטורי בשרת

  8. 14:02

    חתימה על אימג' ובדיקתה עם trust inspect

תמלול ההרצאה: חתימה דיגיטלית - DTR - Image Sign

הטקסט המלא של הדקות הראשונות בהרצאה «חתימה דיגיטלית - DTR - Image Sign» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:19

    אז בואו נפתח את האתר של דוקר, content trust in docker, content trust in docker, זה בדיוק הסיפור של החתימה הדיגיטלית על אימג'ים.

  3. 00:55

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

  4. 01:15

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

  5. 01:46

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

  6. 02:19

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

  7. 03:11

    את הכי והסרטיפיקייט שזה הפרייבט קי שלי וזה הפאבליקי שלי מי שרוצה לדעת זה אותו דבר כמו לקחת סרטיפיקייט מפה והפרייבט שלי זה זה כי זה הפרייבט סרטיפיקייט זה התעודה הציבורית זה ה-CA שהנפיק לי אותה שזה ה-CA המובנה בתוך סוורב הוא מנפיק לי את התעודות זה התעודה של האבא שלו סרט פאב זה למעשה אותו אחד רק פה יש רק את הפאבליקי ופה פאבליקי בתוך הסרטיפיקייט

  8. 03:49

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

  9. 04:35

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

  10. 05:00

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

  11. 05:16

    אז ככה, כל המידע על הדוקר הלוקאלי שלי, על הדוקר קליינט שלי, נשמר בתיקיית הבית שלי /.dokr. ואם אני אעשה טרי, אני אראה שכרגע בתוך התיקייה הזאת יש תיקיית טמפלייט ותיקיית קונפיג, אוקיי?

  12. 05:38

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

  13. 06:05

    זאת אומרת, את ה-private key שלי אני רוצה לייבא, docker trust keyload. עכשיו, לפני שאנחנו עושים את הפקודה הזאת, בואו נראה מה יש לנו בדוקר trust.

  14. 06:17

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

  15. 06:49

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

  16. 07:23

    אותי לזהות לא מעניין אותו שזה היה אדמיניסטרטור או לא אדמיניסטרטור זה לא מעניין אותי זה לא מעניין אותו אני יכול לתת כל שם למפתח זה כמו ישות נפרדת היא לא קשורה באמת ליוזרנרים שלי prodadmins בוא נקרא לזה prodadmins יש לנו דבר כזה prodadmins כאן בוא נראה ב-access control ב-organization

  17. 07:56

    לא אין לנו prodadmins בוא נוסיף prodadmins קבוצה שנקראת prodadmins יופי ונכניס לתוכה יוזר שקוראים לו יוני בוא נכניס לתוכה את היוזר של הדמיניסט עכשיו זה קבוצות לא קשורות בכלל למה שהולך עם המפתחות אני בכוונה אעשה שם אחר, כל שם יתאים לי, לדוגמה prod admin 1,

  18. 08:43

    או prod admin yoni. שימו לב, אחד לא קשור לשני, אין שום קשר בין התעודות הדיגיטליות ללוגינים וליוזרים.

  19. 09:00

    זה מאוד מאוד חשוב להסביר לכם, נקרא לזה image admin, אוקיי? image admin, אני בכוונה עושה image, ככה אני ממציא, ועכשיו אני עושה key load, אני מייבא את ה-private key שלי, והוא מבקש סיסמה כדי להצפין את זה כדי שאם מישהו יפרוץ לדוקר הלוקאלי שלי שלא יוכל לגנוב לי את המפתח.

  20. 09:37

    עכשיו, אתם זוכרים, יש לי את הכי הזה שאני אמור לשמור עליו או להשמיד אותו, ודוקר שומר לי את המפתח בתוך התיקייה החדשה שנקראת Trust ו-Private, וה-Private Key שלי מוצפן עם הסיסמה שהבאתי לו פה.

  21. 09:54

    נכון שהבאתי לו פה את הסיסמה פעמיים? נכון, הכנסתי לו פה סיסמה, אז הוא עשה אימפורט לכאן עם הצפנה של ה-private key עם הסיסמה הזאת.

  22. 10:04

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

  23. 10:17

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

  24. 10:40

    אנחנו מוסיפים את הכי, עוד פעם את הכי הזה, רק הפעם אנחנו מוסיפים אותו לשרת ואומרים לו בדיוק לאיזה רפוזיטורים מוסיפים אותו. אז בואו נראה את זה, דוקר טראסט סיינר. אז עוד פעם, דוקר טראסט, אמרנו שפה יש לנו לייצר מפתח חדש או לייבא קיים לוקאלית לווינדוס שלי, תחנה שלי ו-Docker Trust Signer, אם אנחנו נעשה Help, נוכל לעשות Add Siner

  25. 11:24

    ו-Remove Siner חותמים, Manage Entities Who Can Sign Docker Images, כאילו זה כבר קשור לשרת. ואיך הולכת הפקודה?

  26. 11:37

    Docker Siner ו-Command Add, בוא נעשה Add, Docker Trust Siner Add ברפוזיטורי מרוחק. אוקיי, Options זה Key, זאת אומרת אנחנו נותנים לו Docker Key ו-List, ונותנים לו שם ורפוזיטורי בואו נעשה את זה אז נעשה את זה ככה שימו לב עכשיו אני צריך לתת לו את השם שיהיה לו בשרת כמובן שעדיף שכל השמות יהיו זהים אז נשתמש באותו שם שהוא גם

  27. 12:21

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

  28. 12:52

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

  29. 13:21

    זה מאוד חשוב, זה פאבליקי. זאת אומרת שאצלי לוקאלית טעון הפריביטקי ואני מעלה לשרת את הפאבליקי. יש?

  30. 13:34

    יש. עכשיו הוא שואל אותי מה הסיסמה בשביל מאגר בשרת, הוא צריך כל מיני מפתחות לייצר בשרת. ו-successfully initialized, הוא התחיל את המאגר של המפתחות והוסיף את הבן אדם הזה בתור חותם מורשה.

  31. 14:02

    מורשה. יפה מאוד. ועכשיו, מה אנחנו עושים אחרי שיש לנו את זה בשרת? אנחנו יכולים לעשות docker trust sign, אנחנו יכולים כבר להתחיל לחתום על אימג'ים.

  32. 14:16

    בואו נחתום על אימג' כלשהו. לפני שאני אחתום על אימג' אני רוצה להראות לכם שהפקודה אכן עבדה. אחרון שהרצנו docker trust sign erad, עכשיו docker trust inspect.

  33. 14:39

    אנחנו בודקים מציגים בצורה יפה מה קורה בתוך

לקורס המלא: קורס Docker עם Swarm Cluster

ההרצאה הקודמת: התקנה של תעודה דיגיטלית - UCP SSL Certificate

ההרצאה הבאה: DTR HA Cluster - Storage Bind

הרצאות קשורות מקורסים אחרים

  • איך פועלת חתימה דיגיטלית?
  • חתימה דיגיטלית על קובץ APK עם jarSigner
  • שינוי חתימה של Payload
  • Download Image

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio