בקרת גישה באמצעות רשימות ACL של Kafka

במאמר הזה מוסבר איך להשתמש ברשימות של בקרת גישה (ACL) של Apache Kafka כדי לשלוט בגישה בשירות המנוהל של Google Cloud ל-Apache Kafka.

רשימות בקרת גישה (ACL) של Apache Kafka מספקות בקרת גישה פרטנית בתוך אשכול Kafka. השירות המנוהל ל-Apache Kafka מאפשר את StandardAuthorizer, שמאחסן רשימות ACL במטא-נתונים של אשכול Kafka שמבוסס על KRaft.

  • רשימות בקרת הגישה האלה קובעות אילו משתמשים מאומתים יכולים לבצע פעולות ספציפיות במשאבי Kafka ספציפיים, כמו יצירה או צריכה של הודעות בנושא מסוים.

  • רשימות בקרת הגישה האלה שימושיות לשליטה באינטראקציות עם האשכול באמצעות לקוחות רגילים של Apache Kafka, שחלים עליהם רק בדיקות IAM ברמת האשכול לחיבור הראשוני. מידע נוסף זמין במאמר בקרת גישה באמצעות IAM.

איך פועלת בקרת הגישה של רשימות ACL ב-Kafka

הלקוח מקיים אינטראקציה עם מנגנון ההרשאה הרגיל של Kafka ACL בתוך האשכול. הכלי לאישור הרשאות מעריך את רשימות בקרת הגישה (ACL) הרלוונטיות של Apache Kafka כדי לאשר פעולות ספציפיות שהמשתמש מבקש לבצע, כמו שליחת נתונים לנושא או צריכת נתונים מקבוצה. המשתמש שמשמש לבדיקת ה-ACL נגזר מאחת משיטות האימות הבאות:

  • ‫SASL: חשבון המשתמש ב-IAM, כמו כתובת אימייל של חשבון שירות.

  • ‫mTLS: השם המובחן (DN) מאישור הלקוח, שעבר שינוי פוטנציאלי על ידי כללי מיפוי של ישויות.

כדי להבטיח אבטחה מקיפה, צריך להגדיר את הדברים הבאים:

  • הרשאות IAM לגישת ניהול. מידע נוסף זמין במאמר בקרת גישה באמצעות IAM.

  • רשימות בקרת גישה (ACL) של Kafka לגישה לנתונים ולפעולות בתוך האשכול מלקוחות Apache Kafka בקוד פתוח, ללא קשר לשיטת האימות.

שימוש ברשימות ACL של Apache Kafka

קישורי ACL של Apache Kafka מופיעים בפורמט הבא:


Principal P is [Allowed/Denied] Operation O From Host H on any resource matching Resource Pattern RP.

בהמשך מפורט מידע חשוב על הפורמט:

  • הגורם המרכזי(P): זהות המשתמש שמקבל הרשאה. הקידומת של הכותרת היא User:.

    • באימות SASL, זהו חשבון המשתמש ב-IAM, כמו User:my-service-account@my-project.iam.gserviceaccount.com.

    • באימות mTLS, זהו השם הייחודי (DN) מאישור הלקוח, כמו User:CN=my-client,OU=my-org-unit. הפורמט המדויק תלוי בנושא האישור. כללים למיפוי עקרונות יכולים לשנות את הערך הזה.

  • סוג ההרשאה(מותרת/נדחית): האם הקישור של רשימת ה-ACL מאפשר או דוחה גישה. לקישורי דחייה יש עדיפות.

  • פעולה(O): הפעולה שבוצעה, כמו קריאה, כתיבה או יצירה. מידע על הפעולות שחלות על משאבים שונים בפרוטוקולי Kafka שונים זמין במאמר Operations and Resources on Protocols במסמכי Apache Kafka.

  • מארח(H): המכונה שממנה נשלחת הבקשה. מכיוון שהשירות המנוהל ל-Apache Kafka מתרגם כתובות רשת של לקוחות, אין תמיכה בשימוש במארחים שאינם '*'.

  • תבנית משאב(RP): תבנית שמשמשת להתאמה למשאבים ספציפיים. דפוס משאב מורכב מסוג משאב, שם משאב וסוג דפוס (LITERAL או PREFIXED).

הרשאות גישה המוגדרות כברירת מחדל

אשכולות של שירות מנוהל ל-Apache Kafka פועלים עם הנכס Apache Kafka allow.everyone.if.no.acl.found שמוגדר לערך true. הימצאות או היעדר של Kafka ACLs קובעות ישירות את רמת הגישה למשאבים:

  • אם לא מוגדרות רשימות ACL של Kafka למשאב ספציפי כמו נושא, כל החשבונות המאומתים מקבלים גישה אליו. ההגדרה הזו מאפשרת להפעיל מיד אשכולות של שירות מנוהל ל-Apache Kafka, בלי שצריך להגדיר רשימות ACL.

  • ברגע שמגדירים ACL של Kafka למשאב, הגישה אליו מוגבלת. רק חשבונות משתמשים שקיבלו הרשאה במפורש באמצעות רשומה ALLOW ברשימת ACL של Kafka יכולים לגשת למשאבים תואמים (אלא אם הם נחסמו ספציפית על ידי רשומה DENY).

השירות המנוהל ל-Apache Kafka מעניק לסוכן השירות שלו גישת אדמין לאשכול. הגישה הזו מאפשרת לסוכן השירות לבצע פעולות שמתבקשות על ידי ה-API של השירות המנוהל ל-Apache Kafka, ללא קשר לרשימות בקרת גישה אחרות שהוגדרו באשכול. השירות המנוהל ל-Apache Kafka עושה זאת על ידי שינוי ההטמעה של StandardAuthorizer. השינוי מעניק לסוכן השירות הרשאות דומות לאלה של משתמשי-על, מלבד פעולות קריאה וכתיבה. אי אפשר לשנות את ההגדרה הזו.

ישויות ב-Kafka

חשבונות המשתמשים ב-Kafka באשכולות של שירות מנוהל ל-Apache Kafka מצוינים עם הקידומת של Kafka StandardAuthorizer‏ "User:".

  • ב-SASL/IAM: החשבון הראשי הוא חשבון Google Cloud. לדוגמה, כדי להעניק גישה לחשבון השירות test-kafka-client@test-project.iam.gserviceaccount.com, משתמשים בחשבון המשתמש של Kafka‏ "User:test-kafka-client@test-project.iam.gserviceaccount.com". בחשבונות משתמשים של Kafka ACL צריך לציין משתמש, חשבון שירות או חשבון משתמש ב-IAM, אבל לא קבוצה או קבוצת חשבונות משתמשים. רשימות בקרת גישה (ACL) של Kafka לא תומכות בהרשאות של משתמשים ב- Google Cloud .

  • ב-mTLS: העיקרון נגזר מהשם המובחן (DN) של הנושא באישור הלקוח. לדוגמה, User:CN=client1,OU=dev,O=MyOrg,L=City,ST=State,C=US. אתם יכולים להשתמש בכללי מיפוי של mTLS principal כדי להמיר את ה-DN למחרוזת principal ידידותית יותר למשתמש עבור רשימות ACL.

כדי ליצור ACL שחל על כל החברים בקבוצת Google או על קבוצת חשבונות משתמש, אפשר להשתמש בחשבון משתמש של שרת proxy ולהתחזות לחשבון שירות:

  1. יוצרים חשבון שירות לשימוש כפרוקסי לקבוצה.

  2. מקצים לקבוצת Google או לחשבון המשתמש את התפקיד 'יצירת אסימונים בחשבון שירות' בחשבון השירות. ניהול הגישה לחשבונות שירות

  3. מוסיפים רשימות ACL של Kafka לחשבון השירות של שירות ה-proxy. דוגמה לישות ראשית: User:group-proxy@test-project.iam.gserviceaccount.com.

  4. להשתמש בהתחזות לחשבון שירות בלקוחות Kafka כדי לבצע אימות ב-Kafka בתור חשבון השירות. ‫Google Cloud IAM מאשר לישות מורשית ספציפית להיות גורם בקבוצה שמורשית להתחזות לחשבון השירות של שירות ה-proxy. מערכת Kafka מאשרת את חשבון השירות של שרת ה-proxy מול רשימות בקרת הגישה (ACL) הקיימות באשכול.

פעולות Kafka עבור יוצרים וצרכנים

פעולה היא פעולה שמבוצעת במשאב. לכל משאב, פעולה ממופה לבקשה אחת או יותר של פרוטוקול Kafka עבור אותו משאב. לדוגמה, פעולה READ עבור סוג המשאב topic ממופה לפרוטוקולים Fetch, OffsetCommit ו-TxnOffsetCommit של Apache Kafka.

כדי להעניק לחשבון ראשי גישה לנושא, מבצעים את השלבים הבאים:

  1. במשאב הנושא, מאשרים את הפעולות WRITE ו-CREATE.

  2. אם משתמשים במזהי עסקאות, במשאב של מזהה העסקה צריך לאפשר את הפעולה WRITE.

כדי להעניק לחשבון ראשי צרכן גישה לנושא, מבצעים את השלבים הבאים:

  1. במשאב הנושא, מאשרים את הפעולה READ.

  2. במשאב של קבוצת הצרכנים, מאשרים את הפעולה READ.

מידע נוסף על הפעולות התקפות במשאבים שה-Kafka API תומך בהן זמין במאמר Operations and Resources on Protocols במסמכי העזרה של Apache Kafka.

הגדרת רשימות ACL להתנהגות של דחייה כברירת מחדל

אשכולות מנוהלים של Kafka מוגדרים עם allow.everyone.if.no.acl.found = true. לכן, כברירת מחדל, אם לא מוגדרות רשימות ACL במשאב, כל חשבונות המשתמשים יכולים לגשת למשאב.

כדי להגדיר התנהגות של default-deny שדומה לזו של IAM, אפשר קודם להגדיר גישה למשתמש אדמין בכל המשאבים באשכול. כתוצאה מכך, לכל משאב מוגדר ACL, וההתנהגות של allow.everyone.if.no.acl.found מבוטלת. כברירת מחדל, לכל גורם (principal) שלא קיבל הרשאה מפורשת מרשימת ACL של ALLOW, הגישה נדחית.

לדוגמה, כדי להגדיר רשימות ACL בכל המשאבים באשכול עבור חשבון השירות clusterAdmin@test-project.iam.gserviceaccount.com, צריך ליצור את רשומות ה-ACL הבאות.

הפקודה הבאה ב-CLI של gcloud מעניקה לחשבון שירות בשם clusterAdmin@test-project.iam.gserviceaccount.com גישת אדמין מלאה (--operation=ALL) לאשכול Kafka ספציפי שנמצא באזור מסוים. ההרשאה הזו מאפשרת לחשבון השירות לבצע כל פעולה באשכול מכל מארח.

gcloud managed-kafka acls add-acl-entry cluster \
    --principal=`User:clusterAdmin@test-project.iam.gserviceaccount.com` \
    --operation=ALL \
    --permission-type=ALLOW \
    --host=* \
    --cluster=CLUSTER_ID \
    --location=LOCATION

הפקודה הבאה ב-CLI של gcloud מעניקה לחשבון שירות בשם clusterAdmin@test-project.iam.gserviceaccount.com גישת אדמין מלאה (--operation=ALL) לכל הנושאים באשכול Kafka ספציפי שנמצא באזור מסוים. ההרשאה הזו מאפשרת לחשבון השירות לבצע כל פעולה בכל הנושאים מכל מארח.

gcloud managed-kafka acls add-acl-entry allTopics \
    --principal=`User:clusterAdmin@test-project.iam.gserviceaccount.com` \
    --operation=ALL \
    --permission-type=ALLOW \
    --host=* \
    --cluster=CLUSTER_ID \
    --location=LOCATION

הפקודה הבאה של ה-CLI של gcloud מעניקה לחשבון שירות בשם clusterAdmin@test-project.iam.gserviceaccount.com גישת אדמין מלאה (--operation=ALL) לכל קבוצות הצרכנים באשכול Kafka ספציפי שנמצא באזור מסוים. ההרשאה הזו מאפשרת לחשבון השירות לבצע כל פעולה בכל קבוצות הצרכנים מכל מארח.

gcloud managed-kafka acls add-acl-entry allConsumerGroups \
    --principal=`User:clusterAdmin@test-project.iam.gserviceaccount.com` \
    --operation=ALL \
    --permission-type=ALLOW \
    --host=* \
    --cluster=CLUSTER_ID \
    --location=LOCATION

הפקודה הבאה ב-CLI של gcloud מעניקה לחשבון שירות בשם clusterAdmin@test-project.iam.gserviceaccount.com גישת אדמין מלאה (--operation=ALL) לכל מזהי העסקאות באשכול Kafka ספציפי שנמצא באזור מסוים. ההרשאה הזו מאפשרת לחשבון השירות לבצע כל פעולה על כל מזהי העסקאות מכל מארח.

gcloud managed-kafka acls add-acl-entry allTransactionalIds \
    --principal=`User:clusterAdmin@test-project.iam.gserviceaccount.com` \
    --operation=ALL \
    --permission-type=ALLOW \
    --host=* \
    --cluster=CLUSTER_ID \
    --location=LOCATION

בהמשך מופיעה רשימה של פרטים חשובים על הפקודות:

  • ‫--principal='User:test-kafka-client@test-project.iam.gserviceaccount.com': חשבון המשתמש שעליו חלה רשימת ה-ACL. החשבון הראשי הוא חשבון Google Cloud עם הקידומת Kafka StandardAuthorizer User:.

  • ‫--operation=all: פעולת Kafka שההרשאה ניתנת עבורה, שהיא גישה מלאה במקרה הזה.

  • ‫--permission-type=ALLOW: רשומת ה-ACL הזו מעניקה גישה.

  • ‫--host='*': המארח שממנו לחשבון המשתמש יש גישה למשאב. '*' מאפשר גישה מכל מארח. שירות מנוהל ל-Apache Kafka תומך רק ב-ACL עם מארח '*'.

  • ‫CLUSTER_ID: השם של האשכול שלכם בשירות המנוהל ל-Apache Kafka.

  • ‫LOCATION: האזור Google Cloud שבו נמצא האשכול של שירות מנוהל ל-Apache Kafka, כמו us-central1.

הגדרת רשימות ACL

אפשר להגדיר ACLs של Apache Kafka באמצעות ממשקי ה-API של ACLs של השירות המנוהל ל-Apache Kafka, או באמצעות כלים של Apache Kafka בקוד פתוח, כמו Apache Kafka authorizer cli‏ kafka-acls.sh או Admin Client.

שירות מנוהל ל-Apache Kafka מארגן את רשימות בקרת הגישה לפי דפוסי משאבים של Kafka. תבנית המשאב מוגדרת לפי:

  • סוג המשאב: אשכול, נושא, קבוצת צרכנים או מזהה טרנזקציה

  • סוג התבנית: מילולי או עם קידומת (כל המשאבים שהשם שלהם מתחיל במחרוזת שצוינה)

  • שם המשאב: שם המשאב או הקידומת שעליהם חלות רשומות ה-ACL.

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

אפשר לנהל רשימות ACL של שירות מנוהל ל-Apache Kafka ברמת משאב ה-ACL (כל רשומות ה-ACL של תבנית משאב), או באופן מצטבר על ידי הוספה והסרה של רשומות ACL בודדות של תבנית משאב ACL.

מידע נוסף זמין במאמרים בנושא יצירה של רשימת ACL מנוהלת ב-Kafka והוספה של רשומה לרשימת ACL מנוהלת ב-Kafka.

מתן הרשאה לקריאה מנושא

כדי לאפשר ללקוחות Apache Kafka בקוד פתוח שפועלים בתור חשבון השירות test-kafka-client@test-project.iam.gserviceaccount.com לקרוא מהנושא topic-name, יוצרים רשומה של רשימת בקרת גישה (ACL) בשירות המנוהל ל-Apache Kafka באמצעות הפקודה managed-kafka acls add-acl-entry:

gcloud managed-kafka acls add-acl-entry topic/topic-name \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=READ \
    --permission-type=ALLOW \
    --host='*'

בהמשך מפורט מידע חשוב על הפקודה:

  • ‫topic/topic-name: מציין את הנושא בשירות המנוהל ל-Apache Kafka שרוצים לתת לו גישה. מחליפים את topic-name בשם הנושא בפועל. הקידומת topic/ מציינת שהרשומה הזו ברשימת ה-ACL חלה על תבנית ספציפית (מילולית) של משאב נושא.

  • ‫LOCATION: ה Google Cloud אזור שבו נמצא האשכול שלכם בשירות המנוהל ל-Apache Kafka, כמו us-central1.

  • ‫CLUSTER_ID: השם של האשכול שלכם בשירות המנוהל ל-Apache Kafka.

  • ‫--principal='User:test-kafka-client@test-project.iam.gserviceaccount.com': חשבון המשתמש שעליו חלה רשימת ה-ACL. החשבון הראשי הוא חשבון Google Cloud עם הקידומת Kafka StandardAuthorizer User:.

  • ‫--operation=READ: פעולת Kafka שניתנת, שהיא READ במקרה הזה.

  • ‫--permission-type=ALLOW: מציין שהרשומה הזו ברשימת ה-ACL מעניקה גישה.

  • ‫--host='*': מציין את המארח שממנו לחשבון המשתמש יש גישה למשאב. '*' מאפשר גישה מכל מארח. השירות המנוהל ל-Apache Kafka תומך רק ברשימות ACL עם מארח '*'.

כדי להסיר את הרשאת הגישה לקריאה, אפשר להשתמש בפקודה remove-acl-entry עם אותם פרמטרים.

gcloud managed-kafka acls remove-acl-entry topic/topic-name \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=READ \
    --permission-type=ALLOW \
    --host='*'

אפשר לכתוב לכל הנושאים עם קידומת משותפת

כדי לאפשר ללקוחות Apache Kafka בקוד פתוח שפועלים כחשבון השירות test-kafka-client@test-project.iam.gserviceaccount.com לכתוב לכל הנושאים שהשם שלהם מתחיל בקידומת topic-prefix, מוסיפים רשומה של ACL מנוהל של Kafka באופן הבא:

gcloud managed-kafka acls add-acl-entry topicPrefixed/topic-prefix \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=WRITE \
    --permission-type=ALLOW \
    --host='*'

בהמשך מפורט מידע חשוב על הפקודה:

  • ‫topicPrefixed/topic-prefix: מציין את תבנית המשאבים של השירות המנוהל ל-Apache Kafka שרוצים להעניק לה גישה. מחליפים את topic-prefix בקידומת בפועל של הנושאים. הקידומת topicPrefixed/ מציינת שהרשומה הזו ברשימת ה-ACL חלה על תבנית משאב עם קידומת: כל הנושאים שתואמים לקידומת הנתונה.

  • ‫PROJECT: מזהה הפרויקט ב- Google Cloud שבו נמצא האשכול של השירות המנוהל ל-Apache Kafka.

  • ‫LOCATION: האזור Google Cloud שבו נמצא האשכול של שירות מנוהל ל-Apache Kafka, כמו us-central1.

  • ‫CLUSTER_ID: השם של האשכול שלכם בשירות המנוהל ל-Apache Kafka.

  • ‫--principal='User:test-kafka-client@test-project.iam.gserviceaccount.com': חשבון המשתמש שעליו חלה רשימת ה-ACL. החשבון הראשי הוא חשבון Google Cloud עם הקידומת Kafka StandardAuthorizer User:.

  • ‫--operation=WRITE: פעולת Kafka שניתנת, שהיא WRITE במקרה הזה.

  • ‫--permission-type=ALLOW: רשומת ה-ACL הזו מעניקה גישה.

  • ‫--host='*': המארח שממנו לחשבון המשתמש יש גישה למשאב. '*' מאפשר גישה מכל מארח. שירות מנוהל ל-Apache Kafka תומך רק ב-ACL עם מארח '*'.

כדי להסיר את הרשאת הכתיבה לחשבון השירות הזה, מסירים את הרשומה ב-ACL:

gcloud managed-kafka acls remove-acl-entry topicPrefixed/topic-prefix \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=WRITE \
    --permission-type=ALLOW \
    --host='*'

דחיית השינוי של כל הנושאים

כדי למנוע מלקוחות Apache Kafka בקוד פתוח שפועלים כחשבון השירות test-kafka-client@test-project.iam.gserviceaccount.com לשנות את כל הנושאים באשכול, אפשר ליצור משאב ACL של שירות מנוהל ל-Apache Kafka עם רשימה של משאבי AclEntry כדי לדחות את הפעולות ALTER, ALTER_CONFIGS ו-DELETE בכל הנושאים. בגישה הזו, המצב הנדרש מוגדר בהגדרה אחת.

אפשרות אחרת היא להוסיף שלוש רשומות נפרדות של ACL באופן אימפרטיבי באמצעות הפקודה gcloud managed-kafka acls add-acl-entry. בשיטה הזו מריצים את הפקודה כדי לדחות את הגישה לכל אחת מהפעולות ALTER, ALTER_CONFIGS ו-DELETE, באופן הבא:

gcloud managed-kafka acls add-acl-entry allTopics \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=ALTER \
    --permission-type=DENY \
    --host='*'
gcloud managed-kafka acls add-acl-entry allTopics \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=ALTER_CONFIGS \
    --permission-type=DENY \
    --host='*'
gcloud managed-kafka acls add-acl-entry allTopics \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=DELETE \
    --permission-type=DENY \
    --host='*'

המידע הבא רלוונטי לכל אחת מהפקודות add-acl-entry:

  • ‫allTopics: מציין שה-ACL הזה חל על כל הנושאים באשכול של שירות מנוהל ל-Apache Kafka.

  • ‫LOCATION: ה Google Cloud אזור שבו נמצא האשכול של שירות מנוהל ל-Apache Kafka, כמו us-central1.

  • ‫CLUSTER_ID: השם של האשכול שלכם בשירות המנוהל ל-Apache Kafka.

  • ‫--principal='User:test-kafka-client@test-project.iam.gserviceaccount.com': מציין את חשבון המשתמש שה-ACL חל עליו. חשבון המשתמש הוא חשבון Google Cloud , עם הקידומת StandardAuthorizer של Kafka‏ User:.

  • ‫--operation: מציין את פעולת Kafka שנמנעת:

    • ‫ALTER: כולל פעולות כמו שינוי מספר המחיצות או גורם השכפול.

    • ‫ALTER_CONFIGS: כולל שינוי של הגדרות ברמת הנושא.

    • ‫DELETE: כולל מחיקת נושאים.

  • ‫--permission-type=DENY: מציין שרשומות ה-ACL האלה חוסמות את הגישה לפעולות שצוינו.

  • ‫--host='*': מציין שהדחייה הזו חלה בלי קשר למארח שממנו מגיעה הבקשה. שירות מנוהל ל-Apache Kafka תומך רק ב-ACL עם מארח '*'.

כדי להסיר את ההגבלות האלה, משתמשים בפקודה remove-acl-entry לכל אחת מהרשומות שנוספו, עם אותם פרמטרים. לדוגמה, כדי לאפשר מחדש מחיקה של נושא:

gcloud managed-kafka acls remove-acl-entry allTopics \
    --cluster=CLUSTER_ID \
    --location=LOCATION
    --principal='User:test-kafka-client@test-project.iam.gserviceaccount.com' \
    --operation=DELETE \
    --permission-type=DENY \
    --host='*'

פתרון בעיות שקשורות לרשימות ACL

כברירת מחדל, כלי ההרשאה הרגיל של Apache Kafka כותב יומני ביקורת על דחיות הרשאה. אם מופיעה שגיאת הרשאה של Kafka, אפשר לחפש ביומני האשכול את StandardAuthorizerData logAuditMessage כדי לאשר את העיקרון, המשאב והפעולה שנדחו.

לדוגמה, הנה יומן של אשכול לדוגמה.

org.apache.kafka.metadata.authorizer.StandardAuthorizerData logAuditMessage\n
INFO: Principal = User:556291496362-compute@developer.iam.gserviceaccount.com is
Denied operation = DESCRIBE from host = 172.16.0.20 on resource = Topic:LITERAL:t1
for request = Metadata with resourceRefCount = 1 based on rule DefaultDeny

המאמרים הבאים

‫Apache Kafka®‎ הוא סימן מסחרי רשום של The Apache Software Foundation או של השותפים העצמאיים שלה בארצות הברית או במדינות אחרות.