Zugriffssteuerung

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

  • Mit dem NFSv4.1-Protokoll (Vorabversion) können Sie Kerberos verwenden, um den Zugriff auf Filestore-Instanzen zu sichern. Weitere Informationen finden Sie unter Unterstützte Protokolle.

  • Alternativ können Sie die Linux-Optionen verwenden, um den NFS-Zugriff zu steuern, und Identity and Access Management (IAM), um den Zugriff auf Instanzvorgänge wie das Erstellen, Bearbeiten, Anzeigen und Löschen von Instanzen zu steuern. In der folgenden Anleitung werden Sie durch die einzelnen Schritte geführt.

Exporteinstellungen für die Dateifreigabe

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

  • Die Clientliste, in der die Clients identifiziert werden, die eine Verbindung zur Dateifreigabe herstellen dürfen, enthält jede interne IP-Adresse im VPC-Netzwerk, das Sie für die Filestore-Instanz ausgewählt haben. Interne IP-Adressen können ein beliebiger Bereich sein, der in Subnetzbereichen aufgeführt ist. Wenn Sie jedoch Clients in Subnetzbereichen außerhalb von RFC 1918 haben, müssen Sie diesen mithilfe der IP-basierten Zugriffssteuerung explizit Zugriff auf die Filestore-Instanz gewähren.
  • Die Option rw wird verwendet, damit die Dateifreigabe sowohl Lese- als auch Schreibvorgänge ermöglicht.
  • 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

Basic SSD- und einfache HDD-Instanzen erstellen eine exportierte Freigabe mit dem Label /config/google-prober. Sie wird zur Unterstützung interner Prüfungsprozesse verwendet, die wiederum den Zugriff, die Langlebigkeit oder die Leistung prüfen. Die Freigabe wird in eine Clientliste exportiert, die nur für die IP-Adresse der Instanz zugänglich ist. Dabei werden dieselben Einstellungen wie im vorherigen Abschnitt verwendet. Die Freigabe ist nur für Prober zugänglich, die auf der Instanz gehostet werden oder von dieser stammen. Außerhalb der Instanz ist kein Zugriff auf die Freigabe 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 mithilfe der Google Cloud Console Zugriffssteuerungsregeln erstellen oder beim Erstellen der Instanz 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 auf einer Filestore-Instanz nur Root-Nutzer auf verbundenen Clients Lese- und Schreibzugriff auf 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. Nach dem Bereitstellen der Dateifreigabe können Sie mit Standard-Linux-Befehlen wie chmod und setfacl Datei- und Dateifreigabeberechtigungen 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".

Sich überschneidende Berechtigungen

Zonale, regionale und Unternehmensinstanzen unterstützen jetzt sich überschneidende Berechtigungen.

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

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

   {
  "--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 einige Einschränkungen:

  • Sich überschneidende Berechtigungen für identische IPv4-Subnetze werden nicht unterstützt und geben einen Fehler zurück.

  • Sich überschneidende Berechtigungen werden für einfache SSD- oder einfache HDD-Instanzen nicht unterstützt.

Nächste Schritte