אבטחת הגישה למשאבים באמצעות IAM
משתמשים וחשבונות שירות ב-Kubernetes צריכים הרשאות לניהול משאבי Config Connector. באמצעות Config Connector, אפשר לנהל את מישור הבקרה של הפרויקט באמצעות זהויות שמשתמשות בבקרת גישה מבוססת-תפקידים (RBAC) של Kubernetes. אפשר גם להפנות לכללי מדיניות של ניהול זהויות והרשאות גישה (IAM).
בהפניה למשאבים מפורטים המשאבים שיכולים להפנות אל IAMPolicy ואל IAMPolicyMember. למשאבים האלה יש את המאפיין Can Be Referenced by IAMPolicy/IAMPolicyMember.
במאמר הזה מוסבר איך לאבטח את הגישה ל Google Cloud משאבים באמצעות ניהול זהויות והרשאות גישה (IAM).
לפני שמתחילים
מתקינים את Config Connector באשכול.
אבטחת הגישה למישור הבקרה באמצעות RBAC
בדוגמה הזו, תיצרו חשבון שירות ותעניקו לו הרשאות לניהול PubSubTopic. חשבון השירות הזה לא יכול לנהל סוגים אחרים של משאבי Config Connector.
יוצרים קובץ בשם
pubsub-topic-service-account.yamlעם התוכן הבא:apiVersion: v1 kind: ServiceAccount metadata: name: pubsub-topic-service-account namespace: defaultמריצים את הפקודה הבאה כדי ליצור את חשבון השירות
pubsub-topic-service-account:kubectl apply -f pubsub-topic-service-account.yaml --namespace CC_NAMESPACE
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.כדי לוודא ש-
pubsub-topic-service-accountלא יכול ליצור משאביPubSubTopic, בודקים שהפלט של הפקודה הבאה מכיל אתno:kubectl auth can-i get pubsubtopics --as=system:serviceaccount:default:pubsub-topic-service-account
לאחר מכן יוצרים
ClusterRoleשמאפשר ליצור נושא Pub/Sub.ה-ClusterRole יכול לנהל רק משאבים שצוינו בהם ערכים ב-
rules.apiGroupsוב-rules.resources. כדי למצוא ערכים ל-apiGroupsול-resources, אפשר לעיין במאמר העזרה בנושא המשאבים שלכם.יוצרים קובץ בשם
pubsub-topic-editor-role.yamlעם התוכן הבא:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null name: pubsub-topic-editor rules: - apiGroups: - pubsub.cnrm.cloud.google.com resources: - pubsubtopics verbs: - get - list - watch - create - update - patch - deleteלהגשת בקשה ליצירת
pubsub-topic-editor.yaml:ClusterRolekubectl apply -f pubsub-topic-editor-role.yaml --namespace CC_NAMESPACE
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.לאחר מכן, יוצרים RoleBinding בין ClusterRole לבין חשבון השירות. יוצרים קובץ בשם
pubsub-topic-editor-rolebinding.yamlעם התוכן הבא:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: pubsub-topic-editor-rolebinding. subjects: - kind: ServiceAccount name: pubsub-topic-service-account roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: pubsub-topic-editorהחלת
pubsub-topic-editor-rolebinding.yamlעל האשכול.kubectl apply -f pubsub-topic-editor-rolebinding.yaml --namespace CC_NAMESPACE
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.כדי לוודא של-
pubsub-topic-service-accountיש הרשאה ליצור משאביPubSubTopic, בודקים שהפלט של הפקודה הבאה הואyes:kubectl auth can-i get pubsubtopics \ --as=system:serviceaccount:default:pubsub-topic-service-account
סידור וארגון
משתמשים ב-kubectl delete כדי להסיר את חשבון השירות, תפקיד ה-IAM והקצאת התפקיד.
kubectl delete -f pubsub-topic-editor-rolebinding.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-editor-role.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-service-account.yaml --namespace CC_NAMESPACE
מחליפים את CC_NAMESPACE במרחב השמות ש-Config Connector מנהל ממנו משאבים.
אבטחת מישור הנתונים באמצעות מדיניות IAM
בדוגמה הזו, אתם משתמשים בהרשאות שניתנו קודם כדי ליצור PubSubTopic ולהגביל את הגישה אליו באמצעות משאב IAMPolicyMember.
יוצרים קובץ בשם
pubsub-topic-sample.yamlעם התוכן הבא:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: pubsubtopic-sampleשימוש ב-
pubsub-topic-sample.yamlעםkubectl:kubectl apply -f pubsub-topic-sample.yaml --namespace CC_NAMESPACE
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.יוצרים קובץ בשם
iampolicymember.yamlעם התוכן הבא, ומחליפים אתEMAIL_ADDRESSבכתובת האימייל של החשבון Google Cloud :apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-sample spec: resourceRef: apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic name: pubsubtopic-sample role: roles/pubsub.admin member: "user:EMAIL_ADDRESS"מחילים את
iampolicymember.yaml.kubectl apply -f iampolicymember.yaml --namespace CC_NAMESPACE
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.כדי לוודא שהמדיניות הוחלה על Google Cloud מריצים את הפקודה הבאה ומחפשים את כתובת האימייל בפלט, ומחליפים את
PROJECT_IDבמזהה הפרויקט:gcloud beta pubsub topics get-iam-policy projects/PROJECT_ID/topics/pubsubtopic-sample
הגישה לנושאים ב-Pub/Sub מוגנת עכשיו באמצעות IAMPolicyMember.
סידור וארגון
משתמשים ב-kubectl delete כדי להסיר את נושא ה-Pub/Sub ואת IAMPolicyMember מהפרויקט Google Cloud .
kubectl delete -f iampolicymember.yaml --namespace CC_NAMESPACE
kubectl delete -f pubsub-topic-sample.yaml --namespace CC_NAMESPACE
המאמרים הבאים
משתמשים בסודות כדי להעביר מידע בצורה מאובטחת למשאבי Google Cloud .