Managed Lustre bietet IP-basierte Zugriffssteuerung über die Funktion „Root Squash“.
Root Squash ist eine Sicherheitsfunktion, die verhindert, dass ein Root-Nutzer auf einer Client-VM Root-Berechtigungen für ein Managed Lustre-Dateisystem hat. Wenn ein Root-Nutzer auf das Managed Lustre-Dateisystem zugreift, werden seine Berechtigungen auf die eines weniger privilegierten Nutzers reduziert.
Root Squash kann für eine neue oder eine vorhandene Managed Lustre-Instanz konfiguriert werden. Sie können eine Standardeinstellung für Root Squash auf alle Clients anwenden oder benutzerdefinierte Regeln für bestimmte Clients festlegen.
Standardmäßig ist Root Squash für eine Managed Lustre-Instanz nicht konfiguriert.
Sicherheitseinschränkungen und ‑empfehlungen
Root-Zugriff auf Client-VMs einschränken
Der beste Mechanismus zum Einschränken des Root-Zugriffs besteht darin, zu verhindern, dass Nutzer überhaupt Root-Berechtigungen haben. Wenn Sie Nutzern Root-Berechtigungen auf einer VM gewähren, können Sie Persistenzrisiken verursachen: Nutzer können diese Berechtigungen missbrauchen, um neue Nutzerkonten zu erstellen oder Backdoors zu installieren, um den persistenten Zugriff auf die VM beizubehalten. Eine Anleitung zum Einschränken des Root-Zugriffs finden Sie unter Best Practices für die Steuerung des SSH-Anmeldezugriffs.
Wenn Sie nicht verhindern können, dass Nutzer Root-Berechtigungen auf VMs haben, kann die IP-basierte Zugriffssteuerung von Managed Lustre die Berechtigungen von Root-Nutzern beim Zugriff auf Managed Lustre-Instanzen einschränken. Diese Zugriffsprüfungen sind jedoch nicht garantiert und diese Funktion ist nicht als Sicherheitsgarantie gedacht. Sie sollten sich auf VPC-Firewallregeln als primären Sicherheits bereich verlassen und dafür sorgen, dass nur vertrauenswürdige Client-VMs mit vertrauenswürdigen VM-Images Netzwerkzugriff auf Ihre Managed Lustre-Instanzen haben. Weitere Informationen finden Sie unter Best Practices für die Sicherheit in Google Cloud.
IP-Weiterleitung deaktivieren
Die Standardkonfiguration von Compute Engine ermöglicht es Instanzen, die IP-Weiterleitung zu aktivieren. Um zu verhindern, dass Nutzer Root Squash-Richtlinien umgehen, indem sie eine andere Quell-IP-Adresse verwenden, sollten Sie die IP-Weiterleitung mit der Organisationsrichtlinie constraints/compute.vmCanIpForward deaktivieren. Eine Anleitung finden Sie unter
Organisationsrichtlinien erstellen und verwalten.
Standard-Root Squash konfigurieren
Wenn Sie Root Squash auf alle Clients anwenden möchten, die eine Verbindung zur Instanz herstellen, geben Sie eine Standard-Squash-UID und ‑GID an und legen Sie den Squash-Modus auf ROOT_SQUASH fest. Ein häufig verwendeter Wert für UID und GID ist 65534, was dem Nutzer nobody entspricht.
Standardmäßig hat ein nobody-Nutzer nur Lese- und Ausführungszugriff.
Nur Root-Nutzer und Mitglieder der Gruppe Owner haben Schreibzugriff auf das Dateisystem.
Instanz erstellen
So erstellen Sie eine Instanz mit Standard-Root Squash:
gcloud
Verwenden Sie die Flags --default-squash-mode, --default-squash-uid und --default-squash-gid, um die Standardwerte festzulegen:
gcloud lustre instances create INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION \
--network=NETWORK_NAME \
--per-unit-storage-throughput=PER_UNIT_STORAGE_THROUGHPUT \
--capacity-gib=CAPACITY \
--filesystem=FS_NAME \
--default-squash-mode=ROOT_SQUASH \
--default-squash-uid=UID \
--default-squash-gid=GID
Wobei:
--default-squash-modeistROOT_SQUASH.--default-squash-uidund--default-squash-gidgeben die Standard-IDs an, in die Root-Nutzer konvertiert werden sollen.
Eine vollständige Liste und Beschreibung der verfügbaren Felder beim Erstellen einer Instanz,
siehe die gcloud lustre instances create Referenz.
REST
Wenn Sie eine Instanz mit der REST API erstellen möchten, senden Sie eine Anfrage an den folgenden Endpunkt und fügen Sie ein accessRulesOptions-Objekt ein:
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
"filesystem": "FS_NAME",
"perUnitStorageThroughput": "PER_UNIT_STORAGE_THROUGHPUT",
"capacityGib": "CAPACITY_GIB",
"network": "NETWORK",
"accessRulesOptions": {
"defaultSquashMode": "SQUASH_MODE",
"defaultSquashUid": UID,
"defaultSquashGid": GID
}
}
Wobei:
defaultSquashModeistROOT_SQUASH.defaultSquashUidunddefaultSquashGidsind die Nutzer- und Gruppen-ID-Werte, in die Root-Nutzer konvertiert werden sollen.
Weitere Informationen zum Erstellen einer Instanz mit der REST API finden Sie in der
projects.locations.instances.create API-Referenz.
Google Cloud Console
Root Squash kann nicht über die Google Cloud Console konfiguriert werden.
Instanz aktualisieren
So aktualisieren Sie eine vorhandene Instanz, um Standard-Root Squash zu verwenden:
gcloud
Verwenden Sie die Flags --default-squash-mode, --default-squash-uid und --default-squash-gid, um die Standardwerte festzulegen:
gcloud lustre instances update INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION \
--default-squash-mode=ROOT_SQUASH \
--default-squash-uid=UID \
--default-squash-gid=GID
Wobei:
--default-squash-modeistROOT_SQUASH.--default-squash-uidund--default-squash-gidgeben die Standard-IDs an, in die Root-Nutzer reduziert werden sollen.
REST
Wenn Sie eine Instanz mit der REST API aktualisieren möchten, senden Sie eine PATCH-Anfrage an den entsprechenden Endpunkt. Sie müssen accessRulesOptions in updateMask angeben:
PATCH https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances/INSTANCE_NAME?updateMask=accessRulesOptions
Authorization: Bearer AUTH_TOKEN
{
"accessRulesOptions": {
"defaultSquashMode": "ROOT_SQUASH",
"defaultSquashUid": UID,
"defaultSquashGid": GID
}
}
Wobei:
defaultSquashModeistROOT_SQUASH.defaultSquashUidunddefaultSquashGidsind die Nutzer- und Gruppen-ID-Werte, in die Root-Nutzer konvertiert werden sollen.
Weitere Informationen zum Aktualisieren einer Instanz finden Sie unter Instanzen verwalten.
Google Cloud Console
Root Squash kann nicht über die Google Cloud Console konfiguriert werden.
Root Squash mit Ausnahmen konfigurieren
Wenn Sie Root Squash auf alle Clients außer einer bestimmten Gruppe vertrauenswürdiger Clients anwenden möchten, geben Sie eine Zugriffsregel an. Diese Regel gibt die Standard-UID und ‑GID an, in die Root-Nutzer reduziert werden sollen, sowie eine Regel, die bestimmte Clients basierend auf ihrer IP-Adresse oder ihren Adressbereichen von der Reduzierung ausnimmt.
Ein häufig verwendeter Wert für die Squash-UID und ‑GID ist 65534, was dem Nutzer nobody entspricht.
Der Nutzer nobody hat keinen Schreibzugriff auf das Dateisystem. Nur Root-Nutzer und Mitglieder der Gruppe Owner haben Lese-, Schreib- und Ausführungszugriff.
Andere Nutzer haben nur Lese- und Ausführungszugriff.
Instanz erstellen
gcloud
So erstellen Sie eine Instanz:
gcloud lustre instances create INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION \
--network=NETWORK_NAME \
--per-unit-storage-throughput=PER_UNIT_STORAGE_THROUGHPUT \
--capacity-gib=CAPACITY \
--filesystem=FS_NAME \
--default-squash-mode=ROOT_SQUASH \
--default-squash-uid=UID \
--default-squash-gid=GID \
--access-rules=name="ACCESS_RULE_NAME",ipAddressRanges="IP_ADDRESS_OR_CIDR_RANGE",squashMode=NO_SQUASH
Wobei:
--default-squash-modeistROOT_SQUASH.--default-squash-uidund--default-squash-gidgeben die Standard-IDs an, in die Root-Nutzer reduziert werden sollen.--access-rulesgibt die Ausnahmen für Root Squash an. Die folgenden Werte müssen angegeben werden:nameist der Name dieser Zugriffsregel.ipAddressRangesist eine durch Kommas getrennte Liste mit einer oder mehreren IP-Adressen oder nicht überlappenden CIDR-Bereichen. Bereiche werden im folgenden Format angegeben:192.168.0.0/24.squashModemussNO_SQUASHsein.
Eine vollständige Liste und Beschreibung der verfügbaren Felder finden Sie unter Managed Lustre-Instanz erstellen.
REST
Wenn Sie eine Instanz mit der REST API erstellen möchten, senden Sie eine Anfrage an den folgenden Endpunkt und fügen Sie ein accessRulesOptions-Objekt ein:
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
"filesystem": "FS_NAME",
"perUnitStorageThroughput": "PER_UNIT_STORAGE_THROUGHPUT",
"capacityGib": "CAPACITY_GIB",
"network": "NETWORK",
"accessRulesOptions": {
"accessRules": [
{
"name": "ACCESS_RULE_NAME",
"ipAddressRanges": [
"IP_ADDRESS_OR_CIDR_RANGE_1",
"IP_ADDRESS_OR_CIDR_RANGE_2"
],
"squashMode": "NO_SQUASH"
}
],
"defaultSquashMode": "SQUASH_MODE",
"defaultSquashUid": UID,
"defaultSquashGid": GID
}
}
Beim Festlegen einer bestimmten Zugriffsregel sind die folgenden Felder erforderlich:
nameist ein benutzerdefinierter Name für diese Regel. Er darf nur alphanumerische Zeichen und Unterstriche (_) enthalten und muss 16 Zeichen oder weniger umfassen.ipAddressRangesist eine Liste mit einer oder mehreren IP-Adressen oder nicht überlappenden CIDR-Bereichen. Bereiche werden im folgenden Format angegeben:192.168.0.0/24.squashModeist immerNO_SQUASH.defaultSquashModeistROOT_SQUASH.defaultSquashUidunddefaultSquashGidsind die Nutzer- und Gruppen-ID-Werte, in die Root-Nutzer konvertiert werden sollen, die mit keiner bestimmten Zugriffsregel übereinstimmen.
Wenn Sie beispielsweise einen Standard-Root Squash mit einer Ausnahme für Root-Nutzer aus einem bestimmten IP-Adressbereich und einer bestimmten IP-Adresse festlegen möchten, sieht das accessRulesOptions-Objekt so aus:
{
"accessRulesOptions": {
"accessRules": [
{
"name": "dont_squash",
"ipAddressRanges": [
"192.100.1.10",
"192.168.0.0/24"
],
"squashMode": "NO_SQUASH"
}
],
"defaultSquashMode": "ROOT_SQUASH",
"defaultSquashUid": 65534,
"defaultSquashGid": 65534
}
}
Weitere Informationen zum Erstellen einer Instanz mit der REST API finden Sie unter Managed Lustre-Instanz erstellen.
Google Cloud Console
Root Squash kann nicht über die Google Cloud Console konfiguriert werden.
Instanz aktualisieren
gcloud
So aktualisieren Sie eine Instanz:
gcloud lustre instances update INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION \
--default-squash-mode=ROOT_SQUASH \
--default-squash-uid=UID \
--default-squash-gid=GID \
--access-rules=name="ACCESS_RULE_NAME",ipAddressRanges="IP_ADDRESS_OR_CIDR_RANGE",squashMode=NO_SQUASH
Wobei:
--default-squash-modeistROOT_SQUASH.--default-squash-uidund--default-squash-gidgeben die Standard-IDs an, in die Root-Nutzer reduziert werden sollen.--access-rulesgibt die Ausnahmen für Root Squash an. Die folgenden Werte müssen angegeben werden:nameist der Name dieser Zugriffsregel.ipAddressRangesist eine durch Kommas getrennte Liste mit einer oder mehreren IP-Adressen oder nicht überlappenden CIDR-Bereichen. Bereiche werden im folgenden Format angegeben:192.168.0.0/24.squashModemussNO_SQUASHsein.
Weitere Informationen zum Aktualisieren einer Instanz finden Sie unter Instanzen verwalten.
REST
Wenn Sie eine Instanz mit der REST API aktualisieren möchten, senden Sie eine PATCH-Anfrage an den entsprechenden Endpunkt. Sie müssen accessRulesOptions als Wert von updateMask in der Endpunkt-URL angeben:
PATCH https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances/INSTANCE_NAME?updateMask=accessRulesOptions
Authorization: Bearer AUTH_TOKEN
{
"accessRulesOptions": {
"accessRules": [
{
"name": "ACCESS_RULE_NAME",
"ipAddressRanges": [
"IP_ADDRESS_OR_CIDR_RANGE_1",
"IP_ADDRESS_OR_CIDR_RANGE_2"
],
"squashMode": "NO_SQUASH"
}
],
"defaultSquashMode": "SQUASH_MODE",
"defaultSquashUid": UID,
"defaultSquashGid": GID
}
}
Weitere Informationen zum Aktualisieren einer Instanz finden Sie unter Instanzen verwalten.
Google Cloud Console
Root Squash kann nicht über die Google Cloud Console konfiguriert werden.
Root Squash aus einer Instanz entfernen
Wenn Sie alle Root Squash-Einstellungen aus einer Instanz entfernen möchten, aktualisieren Sie die Instanz, um die Zugriffsregeln zu löschen und den Standardmodus auf NO_SQUASH festzulegen.
gcloud
gcloud lustre instances update INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION \
--default-squash-mode=NO_SQUASH \
--clear-access-rules \
--default-squash-uid=0 --default-squash-gid=0
REST
PATCH https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances/INSTANCE_NAME?updateMask=accessRulesOptions
Authorization: Bearer AUTH_TOKEN
{
"accessRulesOptions": {
"defaultSquashMode": "NO_SQUASH"
}
}
Google Cloud Console
Root Squash kann nicht über die Google Cloud Console konfiguriert werden.