Zugriffssteuerung

Auf dieser Seite wird beschrieben, wie Sie den Zugriff auf Filestore-Instanzen steuern.

Exporteinstellungen für die Dateifreigabe

Einer Filestore-Dateifreigabe werden die folgenden Standardeinstellungen für /etc/exports zugewiesen:

  • Die Clientliste, in der die Clients aufgeführt sind, die eine Verbindung zum Fileshare herstellen dürfen, enthält alle internen IP-Adressen im VPC-Netzwerk, das Sie für die Filestore-Instanz ausgewählt haben. Interne IP-Adressen können ein beliebiger Bereich sein, der unter Subnetzbereiche aufgeführt ist. Wenn Sie jedoch Clients in Subnetzbereichen außerhalb des RFC 1918-Bereichs haben, müssen Sie ihnen explizit über IP-basierte Zugriffssteuerung Zugriff auf die Filestore-Instanz gewähren.
  • Die Option rw wird verwendet, damit die Dateifreigabe sowohl Lese- als auch Schreibvorgänge zulässt.
  • Die Nutzer-ID-Zuordnungsoption no_root_squash wird verwendet, daher wird erwartet, dass alle Nutzer und Gruppen, einschließlich des Root-Nutzers, sowohl auf der Filestore-Instanz als auch auf dem Client gleich sind.
  • Alle anderen Optionen verwenden die Standardeinstellungen von /etc/exports.

Instanzen der Basisstufe

Bei Basic SSD- und Basic HDD-Instanzen wird eine exportierte Freigabe mit dem Label /config/google-prober erstellt. Diese wird für interne Prüfprozesse verwendet, die wiederum Zugriff, Zuverlässigkeit oder Leistung überprüfen. Die Freigabe wird mit denselben Einstellungen wie im vorherigen Abschnitt in eine Clientliste exportiert, die nur für die Instanz-IP-Adresse zugänglich ist. Der Zugriff auf die Freigabe ist nur für Prüfprogramme möglich, die auf der Instanz gehostet werden oder von ihr stammen. Außerhalb der Instanz ist kein Zugriff möglich. Die Instanz exportiert die Freigabe unabhängig davon, ob die IP-basierte Zugriffssteuerung angewendet wird. Nutzer können die exportierte Freigabe mit dem Befehl showmount -e aufrufen.

IP-basierte Zugriffssteuerung

Sie können diese Exporteinstellungen ändern, indem Sie in der Google Cloud Console Zugriffssteuerungsregeln erstellen oder bei der Instanzerstellung mit der gcloud CLI eine JSON-Konfigurationsdatei angeben. Weitere Informationen finden Sie unter IP-basierte Zugriffssteuerung konfigurieren.

Sie können auch neue Zugriffssteuerungsregeln hinzufügen oder vorhandene ändern, nachdem eine Instanz erstellt wurde. Weitere Informationen finden Sie unter Instanzen bearbeiten.

Fileshare-Berechtigungen

Wenn Sie eine Filestore-Instanz erstellen, verfügt die Dateifreigabe für diese Instanz über die Standard-POSIX-Dateiberechtigungen rwxr-xr-x. Diese Berechtigungen bedeuten, dass in einer Filestore-Instanz nur Root-Nutzer auf verbundenen Clients Lese- und Schreibzugriff für die Dateifreigabe haben. Andere Nutzer haben standardmäßig nur Lesezugriff. Root-Nutzer können die Berechtigungen und Inhaber ändern.

Zugriff auf eine Dateifreigabe konfigurieren

Wenn Sie eine Dateifreigabe bereitstellen, können Sie mit den Bereitstellungsoptionen und den /etc/fstab-Einstellungen bestimmen, ob die Dateifreigabe schreibbar ist und ob darauf Dateien ausgeführt werden können. Nachdem Sie die Dateifreigabe bereitgestellt haben, können Sie mit Standard-Linux-Befehlen wie chmod und setfacl die Datei- und Dateifreigabe-Berechtigungen festlegen. setfacl wird nur von Basisstufen unterstützt.

Einheitliche Berechtigungen festlegen

Es wird dringend empfohlen, dass Sie konsistente Berechtigungen für jeden Nutzer auf allen Clients festlegen, die eine Verbindung zur selben Filestore-Instanz herstellen, um eine Rechteausweitung zu verhindern. Wenn eine Dateifreigabe auf mehr als einem Client bereitgestellt wird und ein Nutzer Root-Berechtigungen für einen Client, aber nicht für die anderen hat, ist das folgende Szenario der Rechteausweitung möglich:

  • Ein Nutzer legt das Attribut setuid für eine ausführbare Datei vom Client fest, für den der Nutzer Root-Zugriff hat.
  • Der Nutzer lädt dann die ausführbare Datei in die Dateifreigabe hoch.
  • Der Nutzer führt die hochgeladene Datei als Root auf jedem Client aus, bei dem der Nutzer mindestens Leseberechtigung hat.

Dieses Szenario ist möglich, da der Nutzer mit dem setuid-Bit eine Datei mit den Berechtigungen des Dateieigentümers ausführen kann, in diesem Fall "root".

Überlappende Berechtigungen

Für zonale, regionale und Unternehmensinstanzen werden jetzt sich überschneidende Berechtigungen unterstützt.

Wenn für sich überschneidende IP‑Adress-Subnetze zwei separate Zugriffssteuerungsregeln definiert sind, hat die Regel für das kleinere Subnetz Vorrang.

Wenn eine JSON-Konfigurationsdatei beispielsweise eine Regel enthält, die Lese- und Schreibzugriff für das IPv4-Adresssubnetz 10.0.0.0/24 gewährt, und eine separate Regel, die Lesezugriff für das IPv4-Adresssubnetz 10.0.0.0/28 gewährt, erkennt Filestore zuerst die Regel für das kleinere Subnetz und wendet sie an. Die andere Regel wird dann auf die verbleibenden Teile des definierten IP‑Adress-Subnetzes angewendet. In diesem Beispiel erhält ein Client mit der IPv4-Adresse 10.0.0.20 Lese- und Schreibberechtigungen, während ein Client mit 10.0.0.12 Lesezugriff erhält:

   {
  "--file-share":
    {
      "capacity": "2048",
      "name": "my_vol",
      "nfs-export-options": [
        {
          "access-mode": "READ_WRITE",
          "ip-ranges": [
            "10.0.0.0/24"
          ],
          "squash-mode": "ROOT_SQUASH",
          "anon_uid": 1003,
          "anon_gid": 1003
        },
         {
          "access-mode": "READ_ONLY",
          "ip-ranges": [
            "10.0.0.0/28"
          ],
          "squash-mode": "NO_ROOT_SQUASH"
        }
      ]
    }
}

Es gelten jedoch Einschränkungen:

  • Überlappende Berechtigungen für identische IPv4-Subnetze werden nicht unterstützt und es wird ein Fehler zurückgegeben.

  • Überlappende Berechtigungen werden für Basic SSD- oder Basic HDD-Instanzen nicht unterstützt.

Nächste Schritte