RBAC und PIM für spokes¶
Ein spoke bekommt vier Entra-ID-Gruppen (Owners, Contributors, Readers, Support) und einen Service Principal. Diese Seite erklärt, wie diese Gruppen ihre Azure-Rechte erhalten, welche Rechte dauerhaft sind und welche über Privileged Identity Management (PIM) aktiviert werden, und wie du das änderst. Die Sicht der Nutzer steht unter Zugriff, Gruppen und PIM.
Zwei Ebenen des Zugriffs¶
| Ebene | Scope | Gesteuert durch |
|---|---|---|
| Subscription-Rollen | Die gesamte subscription | Vom spoke canvas festgelegt: Owners = Owner, Contributors = Contributor, Readers = Reader. Der Service Principal des spokes ist dauerhaftes Mitglied von Owners. |
| Role map | Die gesamte subscription, für bestimmte Rollen | Eine eingebaute role map, die du überschreiben kannst. Wird für Rollen wie die Data-plane-Rollen von Key Vault und Storage verwendet. |
Die Mitgliedschaft des Teams in jeder Gruppe kommt aus ProductTeamGroupNames, das PIM-Profil aus PIMGroupConfig
(Spoke-JSON-Referenz).
PIM-Profile¶
Ein Profil bestimmt, wie die Team-Gruppe Mitglied einer spoke-Gruppe wird. Profile sind in pim_configurations definiert
(Gemeinsame Spoke-Einstellungen) und werden über ihren Namen referenziert.
| Profil | Mitgliedschaft der Team-Gruppe | Genehmigung |
|---|---|---|
nopim |
Dauerhaft (aktive Zuweisung). Keine Anfrage nötig. | Keine |
self-approve |
Eligible. Der Benutzer aktiviert sie in PIM. | Keine |
approval |
Eligible. Der Benutzer aktiviert sie in PIM. | Erforderlich |
PIMGroupConfig legt je ein Profil für Readers, Contributors und Owners fest. Die Support-Gruppe ist nicht
konfigurierbar: Die Deployment-Logik setzt sie.
Ein typisches Muster, wie es in einer Implementierung verwendet wird (ein Beispiel, keine Regel):
| Gruppe | Dev und Test | Abnahme und Produktion |
|---|---|---|
| Owners | Eligible, mit Genehmigung | Eligible, mit Genehmigung |
| Contributors | Eligible, automatische Genehmigung | Eligible, mit Genehmigung |
| Readers | Dauerhaft | Dauerhaft |
Support-Gruppe¶
Die Support-Gruppe hat keine eigenen Rechte. Während der Support-Zeiten (außerhalb der Bürozeiten) wird sie Mitglied der Owners-Gruppe. Personen in der Support-Gruppe können dann über PIM Owner aktivieren, aber nur außerhalb der Bürozeiten.
Die role map¶
Die role map vergibt Azure-Rollen über eine dauerhafte oder PIM-eligible Zuweisung auf subscription-Ebene. Eine Zuweisung deckt jede passende Ressource in der subscription ab, egal ob die Ressource schon existiert. Sie hängt nicht von den obigen Subscription-Rollen ab. Jede eingebaute Azure-Rolle kann verwendet werden, nicht nur Data-plane-Rollen.
Standardmäßig gilt:
| Gruppe | Data plane von Key Vault und Storage Account |
|---|---|
| Readers, Contributors, Owners | Dauerhafter Lesezugriff (Key Vault Reader, Storage Blob Data Reader) |
| Contributors | PIM-eligible Lese-/Schreibrollen (Key Vault Secrets, Certificate und Crypto User-Rollen sowie Storage Blob Data Contributor), Profil self-approve |
| Owners | PIM-eligible Rollen mit voller Kontrolle (Key Vault Secrets, Certificates und Crypto Officer-Rollen sowie Storage Blob Data Owner), Profil approval |
Der Service Principal des spokes erhält außerdem Key Vault Administrator auf dem Key Vault und Blob-Owner-Rechte auf dem Storage
Account, wenn diese deployt sind.
Subscription-Scope, nicht pro Ressource
Die Zuweisung gilt auf der subscription. Ein Contributor, der Storage Blob Data Contributor aktiviert, kann Blobs in jedem
Storage Account dieser subscription lesen und schreiben, auch in solchen, die das Team später erstellt hat. Denke daran, wenn du
entscheidest, welches Profil eine Rolle bekommt.
Die role map überschreiben¶
Du kannst die Map für alle spokes oder für einen spoke ändern. Eine spoke-Einstellung hat Vorrang vor der gemeinsamen Einstellung.
| Wo | Einstellung | Gilt für |
|---|---|---|
| Gemeinsame Einstellungen | override_defaults.pim_assignments |
Alle spokes |
| Spoke-Datei | adInfo.PIMAssignments |
Ein spoke |
Beides sind Maps mit dem exakten Azure-Rollennamen als Key, zum Beispiel Storage Blob Data Contributor. Jeder Eintrag hat zwei Felder:
| Feld | Bedeutung |
|---|---|
levels |
Die Ebenen der spoke-Gruppen, die die Rolle erhalten, zum Beispiel ["Owner"]. |
pim_profile |
Der Name eines Profils aus pim_configurations, das bestimmt, wie die Rolle vergeben wird. |
Regeln:
- Setze ein Feld, um nur dieses Feld zu ändern. Ein Feld, das du weglässt, behält seinen eingebauten Wert.
levels: []entfernt die Rolle komplett (für diesen spoke, oder für alle spokes, wenn es in den gemeinsamen Einstellungen steht).- Eine Rolle, die nicht in der eingebauten Map steht, muss beide Felder setzen.
- Um eine Rolle hinzuzufügen, etwa eine SQL- oder Cosmos-DB-Data-Rolle, ist keine Änderung an den Terraform-Modulen nötig.
Beispiel in einer spoke-Datei: Storage Blob Data Owner nur für diesen spoke genehmigungspflichtig machen.
"adInfo": {
"PIMAssignments": {
"Storage Blob Data Owner": { "pim_profile": "approval" }
}
}
Beispiel, das eine Rolle hinzufügt, die nicht eingebaut ist. Beide Felder sind erforderlich:
"PIMAssignments": {
"<exact role name>": { "levels": ["Contributor"], "pim_profile": "self-approve" }
}
Zugriff sicher ändern¶
| Ich möchte | Mach das |
|---|---|
| Einem weiteren Team Zugriff geben | Füge die Gruppe zu ProductTeamGroupNames hinzu (Spoke ändern) |
| Den Zugriff einer Gruppe genehmigungspflichtig machen | Ändere das Profil in PIMGroupConfig |
| Dauerhaften Data-plane-Zugriff für einen spoke entfernen | "<role>": { "levels": [] } in adInfo.PIMAssignments |
| Einen Default für jeden spoke ändern | override_defaults.pim_assignments in den gemeinsamen Einstellungen. Behandle es als Plattformänderung mit Review. |
Lies nach jeder Änderung den Plan. Das Entfernen einer dauerhaften Zuweisung entzieht den Personen den Zugriff, die heute damit arbeiten.