אימות חתימה של בקשה שאושרה
כל בקשה שאושרה לאישורי גישה נחתמת באמצעות מפתח קריפטוגרפי אסימטרי כדי לאמת את האישור. אפשר לחתום על בקשות שאושרו באמצעות Google-owned and managed key או מפתח Cloud KMS שסופק על ידי הלקוח.
כשמאמתים חתימה, אפשר להיות בטוחים שמחרוזת הבייטים של הבקשה המאושרת שעברה סריאליזציה היא תקפה. כדי לסיים את אימות התוכן של האישור, צריך לבצע דה-סריאליזציה של ההודעה ולהשוות את ההודעה שעברה דה-סריאליזציה לתוכן של הבקשה שאושרה.
לפני שמתחילים
כדי לוודא שלחשבון השירות של אישור הגישה למשאב יש את ההרשאות הנדרשות לאימות החתימות של הבקשות שאושרו, צריך לבקש מהאדמין להקצות לחשבון השירות של אישור הגישה למשאב את תפקיד ה-IAM Cloud KMS CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier) במפתח, בצרור המפתחות או בפרויקט המפתח.
יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של אישור הגישה למשאב את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אימות בקשה שנחתמה באמצעות Google-owned and managed key
נכנסים לדף Access Approval במסוף Google Cloud .
מאתרים את הבקשה שאושרה לאישור גישה שרוצים לאמת ובוחרים אותה. ייפתח הדף פרטי הבקשה.
בקטע מפתח ציבורי בניהול Google, לוחצים על content_copy העתקה.
פותחים את Cloud Shell ושומרים את המפתח הציבורי כקובץ חדש בשם
public_key:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_keyמחליפים את
GOOGLE_MANAGED_PUBLIC_KEYבתוכן של השדה מפתח ציבורי בניהול Google.במסוף Google Cloud , בדף Request details (פרטי הבקשה), בקטע Signature (חתימה), לוחצים על content_copy Copy (העתקה).
פותחים את Cloud Shell ושומרים את החתימה כקובץ חדש בשם
signature.txt:echo SIGNATURE > ./signature.txtמחליפים את
SIGNATUREבתוכן של השדה Signature.מפענחים את החתימה באמצעות הפקודה
base64ושומרים את התוצאה כ-decoded_signature:base64 ./signature.txt -d > ./decoded_signatureבמסוף Google Cloud , בדף Request details, בקטע Serialized Approval Request, לוחצים על content_copy Copy.
פותחים את Cloud Shell ושומרים את בקשת האישור הסדרתית כקובץ חדש בשם
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtמחליפים את
SERIALIZED_APPROVAL_REQUESTבתוכן של השדה Serialized Approval Request.מפענחים את בקשת האישור שעברה סריאליזציה ושומרים את התוצאה כ-
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestכדי לאמת את החתימה, משתמשים ב-
openssl:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestאם החתימה תקינה, הפלט צריך להיות
Verified OK. ההודעה הזו מאשרת שהבקשה לאישור שסודרה בפורמט סדרתי היא תקפה.
אימות בקשה שנחתמה באמצעות מפתח שסופק על ידי הלקוח
נכנסים לדף Access Approval במסוף Google Cloud .
מאתרים את הבקשה שאושרה לאישור גישה שרוצים לאמת ובוחרים אותה. ייפתח הדף פרטי הבקשה.
במסוף Google Cloud , בדף Request details (פרטי הבקשה), בקטע Signature (חתימה), לוחצים על content_copy Copy (העתקה).
פותחים את Cloud Shell ושומרים את החתימה כקובץ חדש בשם
signature.txt:echo SIGNATURE > ./signature.txtמחליפים את
SIGNATUREבתוכן של השדה Signature.מפענחים את החתימה ושומרים את התוצאה כ-
decoded_signature:base64 ./signature.txt -d > ./decoded_signatureבמסוף Google Cloud , בדף Request details, בקטע Serialized Approval Request, לוחצים על content_copy Copy.
פותחים את Cloud Shell ושומרים את בקשת האישור הסדרתית כקובץ חדש בשם
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtמחליפים את
SERIALIZED_APPROVAL_REQUESTבתוכן של השדה Serialized Approval Request.מפענחים את בקשת האישור שעברה סריאליזציה ושומרים את התוצאה כ-
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestבקטע מפתח מנוהל של לקוח, רושמים את מזהה המשאב של המפתח.
מאחזרים את המפתח הציבורי של המפתח שזיהיתם בשלב הקודם. שומרים את המפתח הציבורי שהורדתם בפורמט PEM בשם
./public_key.כדי לאמת את החתימה, משתמשים ב-
openssl:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestאם החתימה תקינה, הפלט צריך להיות
Verified OK. ההודעה הזו מאשרת שהבקשה לאישור שסודרה בפורמט סדרתי היא תקפה.