In Google Distributed Cloud (GDC) Air-Gap gibt es eine Einschränkung, die Nutzer daran hindert, eine festgelegte maximale Aufbewahrungsrichtlinie GDCHRestrictAttributeRange zu überschreiten. Diese Einschränkung wird für benutzerdefinierte Bucket-Ressourcen (CRs) in den Organisationsadministratorclustern vom Policy Controller von Anthos Config Management erzwungen. Das bedeutet, dass standardmäßig nur die Systemdienstkonten, Systemnutzer und Nutzer in der Gruppe system:masters die Finalizer entfernen können. Im Folgenden wird beschrieben, wie Sie die Grenzwerte für die Aufbewahrungsrichtlinie für Bucket-CRs erhöhen.
Vorbereitung
- Tooling: kubectl-Befehlszeile
- Erforderlicher Zugriff: KUBECONFIG-Datei für den Cluster generieren
- Erforderlicher Zugriff: Rolle
Policy Adminim Cluster erhalten
KUBECONFIG-Datei für den Cluster generieren
Für kubectl-Befehle ist eine gültige KUBECONFIG-Datei erforderlich. In dieser Anleitung wird Schritt für Schritt beschrieben, wie Sie die KUBECONFIG-Datei für den Root-Administrator, den Organisationsadministrator, das Organisationssystem und die Nutzercluster generieren.
Vorbereitung
Bevor Sie fortfahren, benötigen Sie Folgendes:
gdcloudist installiert.Die
kubectl-CLI ist installiert.Ein installiertes, von einer Zertifizierungsstelle signiertes Zertifikat auf der Workstation.
Der Name der Organisation.
Die Stamm-URL (GDC). Der IT-Administrator der Organisationseinheit muss Ihnen die Stamm-URL zur Verfügung stellen.
Erforderliche Umgebungsvariablen festlegen
Folgen Sie der Anleitung in diesem Abschnitt, um die KUBECONFIG-Datei für org-admin, system oder einen beliebigen Nutzercluster zu generieren.
Führen Sie den folgenden Befehl aus, um die Umgebungsvariable
ORGfür die spätere Verwendung im aktuellen Terminal zu definieren.ORGist der Name Ihrer Organisation.export ORG=Führen Sie den folgenden Befehl aus, um die Umgebungsvariable
CONSOLE_URLfür die spätere Verwendung im aktuellen Terminal zu definieren:export CONSOLE_URL=https://console.${ORG:?}.$GDC_URL/ gdcloud config set core/organization_console_url ${CONSOLE_URL:?}Ersetzen Sie
GDC_URLdurch die Basis-URL für Ihr GDC-Projekt.
Beim Cluster anmelden
Führen Sie den folgenden Befehl aus, um sich anzumelden:
gdcloud auth login --no-browserKopieren Sie den ausgegebenen gcloud-Befehl und führen Sie ihn auf einem Computer mit Browserzugriff aus.
Kopieren Sie die ausgegebene URL und fügen Sie sie in die Adressleiste eines Webbrowsers ein.
Folgen Sie der Anleitung auf der Webseite, um die Anmeldung abzuschließen.
Nach erfolgreichem Abschluss der Anmeldung wird im Browser die Meldung Authentifizierung erfolgreich. Bitte schließen Sie dieses Fenster.
Folgen Sie der Anleitung auf dem Terminal. Nach der erfolgreichen Anmeldung wird im Terminal die Meldung You are now logged in (Sie sind jetzt angemeldet) angezeigt.
KUBECONFIG-Datei generieren
Führen Sie den folgenden Befehl aus, um die Umgebungsvariable
CLUSTERfür die spätere Verwendung im aktuellen Terminal zu definieren.CLUSTERist der gewünschte Clusternamen.export CLUSTER=In der folgenden Tabelle finden Sie den Namen des Clusters. Ersetzen Sie dazu ORGANIZATION-NAME und CLUSTER-NAME durch die entsprechenden Werte:
Cluster Clustername Root-Administrator root-admin Admin der Organisation ORGANIZATION-NAME-admin org-System ORGANIZATION-NAME-System Nutzer CLUSTER-NAME Jeder der Namen steht für Folgendes:
- Der Name des Root-Administratorclusters ist
root-admin. - Die Namen des Administratorclusters und des Systemclusters für eine Organisation mit dem Namen
amirasindamira-adminbzw.amira-system. - Die Clusternamen für Nutzercluster sind ihre Clusternamen.
- Der Name des Root-Administratorclusters ist
Führen Sie den folgenden Befehl aus, um die KUBECONFIG-Datei zu generieren und die Anmeldedaten zu validieren:
sh export KUBECONFIG=${HOME}/${CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${CLUSTER:?} [[ $(kubectl config current-context) == *${CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"Der Befehl sollte die folgende Ausgabe zurückgeben:Success. Your kubeconfig is at /usr/local/google/home/iris/kubeconfig-amira-admin.yaml
Rolle „Policy Admin“ im Cluster erhalten
Mit diesem Verfahren erhalten Sie vorübergehend erhöhten Zugriff auf einen Cluster.
Vorbereitung
Bevor Sie fortfahren, benötigen Sie Folgendes:
- Ein anderes IO, das als GitLab-Antragsgenehmiger fungiert. Der IO muss die Berechtigung haben, eine GitLab-Anfrage zu genehmigen.
- Der Name des Clusters, auf den Sie zugreifen müssen. Beispiele:
root-admin,org-1-admin. - Welche Rolle Sie einnehmen möchten. Beispiel:
RoleClusterRole,ProjectRoleoderOrganizationRole. - Die Rolle, die Sie übernehmen möchten.
- Der Namespace des erforderlichen Zugriffs. Nicht erforderlich für
ClusterRoleundOrganizationRole. - Zugriff auf eine OC IT-Workstation.
- Anmeldedaten für GitLab.
Skript mit erhöhten Berechtigungen ausführen
Führen Sie das Skript
elevated-access-script.shim Verzeichnisprivate-cloud/operations/tools/auf Ihrer Workstation aus.Beantworten Sie die Frage „Please enter the GDCH_URL of the cluster...“ (Bitte geben Sie die GDCH_URL des Clusters ein...) mit
$GDCH_URL.Beantworten Sie die Frage „Enter Gitlab username:“ (GitLab-Nutzername eingeben) mit dem Nutzernamen, mit dem Sie sich in GitLab anmelden.
Geben Sie bei der Frage „Enter Gitlab personal access token:“ (Geben Sie das persönliche Zugriffstoken für GitLab ein) das persönliche Zugriffstoken Ihres Kontos ein. So erstellen Sie ein persönliches Zugriffstoken:
Öffnen Sie
https://gitlab.$GDCH_URL/gdch/iac. Melden Sie sich in Ihrem IO Gitlab-Konto an.Wählen Sie Ihren Avatar aus.
Wählen Sie Profil bearbeiten aus.
Wählen Sie im Navigationsmenü Zugriffstokens aus.
Geben Sie einen Namen und ein Ablaufdatum für das Token ein.
Wählen Sie die gewünschten Bereiche aus.
Wählen Sie Create personal access token (Persönliches Zugriffstoken erstellen) aus.
Das Skript klont jetzt das Repository
iacin Ihr lokales Verzeichnis.Beantworten Sie die Frage „Geben Sie Ihr IdP-Präfix ein“.
IdP Prefixist ein Präfix, das für jeden Identitätsanbieter spezifisch ist und vor jedem Nutzernamen in einem GDC-Cluster vorangestellt wird. Dieses Präfix kann auf zwei Arten gefunden werden:- Watch Commander konsultieren
- Anleitungen aus der GDC-Einrichtung abrufen, insbesondere den Abschnitt „Identitäts- und Zugriffsverwaltung“ im Nutzerhandbuch für Betreiber.
In der Regel besteht dieses Präfix aus einer Reihe von Wörtern, gefolgt von einem Trennzeichen, z.B.
gdch-infra-operator-.Beantworten Sie die Frage „Geben Sie Ihren Nutzernamen ein“ mit dem Nutzernamen, mit dem Sie sich bei Ihrem Identitätsanbieter anmelden.
Beantworten Sie die Frage „Enter the cluster you need the role for“ (Geben Sie den Cluster ein, für den Sie die Rolle benötigen) mit dem Namen des Clusters, für den Sie die Rolle benötigen.
Sie werden vom Skript aufgefordert, einen Kubernetes-Rollentyp auszuwählen. Geben Sie den gewünschten Rollentyp ein.
Beantworten Sie die Frage „Geben Sie die Rolle ein, die Sie übernehmen müssen“ mit dem Namen der Rolle.
Geben Sie die Zugriffszeitdauer der Rolle ein. Die empfohlene Zugriffszeit beträgt 3 Stunden.
Das Skript generiert drei YAML-Dateien.
./iac/infrastructure/zonal/zones/ZONE_NAME/${CLUSTER}/kustomization.yaml./iac/infrastructure/zonal/zones/ZONE_NAME/${CLUSTER}/${USER}-bindings/kustomization.yaml./iac/infrastructure/zonal/zones/ZONE_NAME/${CLUSTER}/${USER}-bindings/${ROLE}-binding.yaml
Prüfen Sie, ob jede Datei korrekt ist, indem Sie
Ydrücken. Wenn Sie die Datei invimbearbeiten möchten, drücken SieN.Nachdem Sie alle Dateien bestätigt haben, überträgt das Script sie per Push in einen
elevated_access-Branch in GitLab und erstellt eine Merge-Anfrage.
Anfrage für erhöhten Zugriff prüfen und genehmigen
In der folgenden Liste sind die Maßnahmen aufgeführt, die bei der Überprüfung und Genehmigung einer Anfrage für erweiterten Zugriff ergriffen werden:
- Ein anderer IO prüft die GitLab-Anfrage, einschließlich der Richtlinienkonfigurationsdateien, um die Anfrage entsprechend zu genehmigen.
- Sobald der IO die Anfrage genehmigt hat, gewährt das System den Zugriff für den angeforderten Zeitraum.
- Das System widerruft den Zugriff nach Ablauf der festgelegten Ablaufzeit.
Patcheinschränkung
Nachdem Sie den erforderlichen Zugriff erhalten haben, führen Sie den folgenden Befehl aus, um das neue Maximum für die Aufbewahrungsrichtlinie für Buckets festzulegen. In diesem Beispiel wird ein neues Maximum von 120 Tagen festgelegt. Aktualisieren Sie den Befehl jedoch mit dem Wert, der von Ihrem Plattformadministrator angefordert wird:
kubectl patch GDCHRestrictAttributeRange restrict-bucket-retention-policy -p '{"spec":{"parameters":{"attributeMaxValue":120}}}' --type=merge
Die Ausgabe sollte so aussehen:
gdchrestrictattributerange.constraints.gatekeeper.sh/restrict-bucket-retention-policy patched