Skip to main content
Version: 3.19.0

Διαχείριση Δικαιωμάτων για SQL Storage Backend

Αυτός ο οδηγός παρέχει καθοδήγηση για τη ρύθμιση και διαχείριση δικαιωμάτων όταν χρησιμοποιείτε το SQL storage backend.

Εισαγωγή

Για τη διαχείριση δικαιωμάτων, το Helm αξιοποιεί τη λειτουργία RBAC του Kubernetes. Όταν χρησιμοποιείτε το SQL storage backend, οι ρόλοι του Kubernetes δεν μπορούν να καθορίσουν αν ένας χρήστης έχει πρόσβαση σε έναν συγκεκριμένο πόρο. Αυτός ο οδηγός εξηγεί πώς να δημιουργήσετε και να διαχειριστείτε αυτά τα δικαιώματα.

Αρχικοποίηση

Την πρώτη φορά που το Helm CLI θα συνδεθεί στη βάση δεδομένων σας, ο client θα ελέγξει αν έχει γίνει προηγούμενη αρχικοποίηση. Αν όχι, θα πραγματοποιήσει αυτόματα τις απαραίτητες ρυθμίσεις. Αυτή η αρχικοποίηση απαιτεί δικαιώματα διαχειριστή στο public schema, ή τουλάχιστον τη δυνατότητα να:

  • δημιουργήσετε έναν πίνακα
  • εκχωρήσετε δικαιώματα στο public schema

Μετά την εκτέλεση της μετάβασης στη βάση δεδομένων σας, όλοι οι άλλοι ρόλοι μπορούν να χρησιμοποιήσουν τον client.

Εκχώρηση δικαιωμάτων σε μη διαχειριστή στην PostgreSQL

Για τη διαχείριση δικαιωμάτων, ο driver του SQL backend αξιοποιεί τη λειτουργία RLS (Row Security Level) της PostgreSQL. Το RLS επιτρέπει σε όλους τους χρήστες να διαβάζουν και να γράφουν στον ίδιο πίνακα, χωρίς να μπορούν να τροποποιούν τις ίδιες γραμμές εάν δεν τους έχει δοθεί ρητά η άδεια. Από προεπιλογή, κάθε ρόλος στον οποίο δεν έχουν εκχωρηθεί ρητά τα κατάλληλα δικαιώματα θα λαμβάνει πάντα κενή λίστα όταν εκτελεί helm list και δεν θα μπορεί να ανακτήσει ή να τροποποιήσει κανέναν πόρο στο cluster.

Ας δούμε πώς να εκχωρήσετε πρόσβαση σε έναν ρόλο για συγκεκριμένα namespaces:

CREATE POLICY <name> ON releases_v1 FOR ALL TO <role> USING (namespace = 'default');

Αυτή η εντολή εκχωρεί δικαιώματα ανάγνωσης και εγγραφής όλων των πόρων που πληρούν τη συνθήκη namespace = 'default' στον ρόλο role. Μετά τη δημιουργία αυτής της πολιτικής, ο χρήστης που συνδέεται στη βάση δεδομένων για τον ρόλο role θα μπορεί να βλέπει όλα τα releases στο namespace default όταν εκτελεί helm list, καθώς και να τα τροποποιεί και να τα διαγράφει.

Τα δικαιώματα μπορούν να διαχειριστούν με λεπτομέρεια χρησιμοποιώντας το RLS. Μπορεί να σας ενδιαφέρει να περιορίσετε την πρόσβαση βάσει των διαφορετικών στηλών του πίνακα:

  • key
  • type
  • body
  • name
  • namespace
  • version
  • status
  • owner
  • createdAt
  • modifiedAt