Blog
Eingeschränkte organisatorische Einschränkungen Verwaltung

Sie benötigen eine Berechtigung auf Organisationsebene, um GCP-Ressourcenbeschränkungen zu konfigurieren. Glücklicherweise können Sie diese Berechtigungen mit Hilfe von
Organisationspolitische Beschränkungen
IAM schränkt nur die erlaubten Aktionen ein. Es hindert Sie nicht daran, Ressourcen mit bestimmten Attributen wie nicht abgeschirmte VMs oder externe IP-Adressen einzusetzen. Diese Einschränkungen werden mit Organisationsrichtlinieneinschränkungen konfiguriert.
Um Ressourcenbeschränkungen zu konfigurieren, benötigen Sie die Rolle Administrator für Organisationsrichtlinien. Leider wird diese Berechtigung auf der
Sie können IAM-Bedingungen verwenden, um IAM-Berechtigungen auf bestimmte Ressourcen zu übertragen. In diesem Fall beschränken wir die Rolle Organisationsrichtlinien-Admin auf Ressourcen , die mit einem bestimmten Schlüssel gekennzeichnet sind.
Organisation, die für die Verwaltung von Richtlinien zuständig ist
In diesem Beispiel erhält ein Workload-CI/CD-Service-Konto die Berechtigung, Ressourcenbeschränkungen für Ordner und Projekte zu konfigurieren, die mit dem org-policy-scope/my-scope-Tag versehen sind. Dadurch kann das Workload-Team Ressourcenbeschränkungen für seine Projekte konfigurieren, ohne das Risiko einzugehen, dass Ressourcenbeschränkungen für andere Projekte konfiguriert werden.
Sehen Sie sich die Quellen auf GitHub an.
Mit den nächsten Schritten wird die Infrastruktur konfiguriert:
- Definieren Sie Ressourcen-Tags
- Ressourcen-Tags binden
- Bedingte IAM-Berechtigungen zuweisen
- Organisationsrichtlinieneinschränkungen konfigurieren
Anmerkung: Schritt 1, 2 und 3 erfordern die Berechtigungen der IAM-Richtlinie für Organisationen.
1. Definieren Sie Ressourcen-Tags
Definieren Sie den Tag org-policy-scope-Ressource als Schlüssel und den my-scope-Wert als Bereich.
resource "google_tags_tag_key" "org_policy_scope" {
parent = data.google_organization.org.name
short_name = "org-policy-scope"
description = "Scoping tag for organization policy constraint management."
}
resource "google_tags_tag_value" "org_policy_scope_my_scope" {
parent = google_tags_tag_key.org_policy_scope.id
short_name = "my-scope"
description = "Org policy scope (my-scope) tag."
}
2. Ressourcen-Tags binden
Binden Sie das Tag org-policy-scope/my-scope-resource an die entsprechenden Ressourcen.
resource "google_project" "example" {
project_id = "org-pol-admin-example"
name = "org-pol-admin-example"
}
resource "google_tags_tag_binding" "scope_my_scope_allow_project_example" {
tag_value = google_tags_tag_value.org_policy_scope_my_scope.id
parent = "//cloudresourcemanager.googleapis.com/projects/${google_project.example.number}"
}
3. Bedingte IAM-Berechtigungen zuweisen
Weisen Sie dem CI/CD-Service-Konto bedingt die Rolle Administrator der Organisationsrichtlinie zu.
resource "google_organization_iam_member" "cicd_org_policy_admin_scope_my_scope" {
org_id = data.google_organization.org.org_id
role = "roles/orgpolicy.policyAdmin"
member = "serviceAccount:${google_service_account.cicd_org_policy_admin.email}"
condition {
title = "my-scope"
expression = "resource.matchTagId('${google_tags_tag_key.org_policy_scope.id}', '${google_tags_tag_value.org_policy_scope_my_scope.id}')"
}
}
4. Organisationsrichtlinieneinschränkungen konfigurieren
Verteilen Sie schließlich Ihre Ressourcenbeschränkungen über das CI/CD-Servicekonto.
resource "google_org_policy_policy" "scope_my_scope_require_shielded_vm" {
parent = google_project.example.id
name = "${google_project.example.id}/policies/compute.requireShieldedVm"
spec {
inherit_from_parent = false
rules {
enforce = "TRUE"
}
}
timeouts {
create = "1m"
}
}
Bemerkung Wenn Sie versuchen, eine Ressourcenbeschränkung für eine Ressource außerhalb des Geltungsbereichs zu erstellen, tritt eine Zeitüberschreitung auf. Die Zeitüberschreitung tritt auf, weil der Terraform-Anbieter versucht, die aktuelle Konfiguration zu lesen, was aber nicht möglich ist.
Fazit
Organisationsrichtlinieneinschränkungen sind eine wertvolle Ergänzung zu den IAM-Berechtigungen. Durch die Verwendung von
Verfasst von
Laurens Knoll
As a cloud consultant I enjoy improving what your company does best. I enable your business using cloud technology and enable your engineers by applying software engineering practices to your infrastructure domain.
Unsere Ideen
Weitere Blogs
Contact



