Zugriffssteuerung

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

  • Mit dem NFSv4.1-Protokoll (Vorschau) 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 die einzelnen Schritte beschrieben.

Exporteinstellungen für die Dateifreigabe

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

  • Die Clientliste, die die Clients identifiziert, die eine Verbindung zum Fileshare herstellen dürfen, enthält jede interne IP-Adresse im VPC-Netzwerk, die Sie für die Filestore-Instanz ausgewählt haben. Interne IP-Adressen können beliebige Bereiche sein, die in Subnetzbereichen aufgeführt sind. Wenn Sie jedoch Clients in Subnetzbereichen außerhalb von RFC 1918 haben, müssen Sie ihnen über die IP-basierte Zugriffssteuerung explizit 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 Basis-Stufe

Basic SSD- und einfache HDD-Instanzen erstellen eine exportierte Freigabe mit dem Label /config/google-prober, die zur Unterstützung interner Prüfungsprozesse verwendet wird, 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 für Prober zugänglich, die nur auf der Instanz gehostet werden oder von dieser stammen, und ist außerhalb der Instanz nicht zugänglich. Die Instanz exportiert die Freigabe unabhängig davon, ob eine IP-basierte Zugriffssteuerung angewendet wird. Nutzer können sich die exportierte Freigabe mit dem Befehl showmount -e ansehen.

IP-basierte Zugriffssteuerung

Sie können diese Exporteinstellungen ändern, indem Sie mithilfe der Google Cloud Console Zugriffssteuerungsregeln erstellen oder beim Erstellen einer Instanz über die 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-/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 Linux-Standardbefehle wie chmod und setfacl verwenden, um Berechtigungen für Datei- und Dateifreigabe festzulegen. 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 (zuvor hochskalierte SSDs) und Unternehmensinstanzen unterstützen jetzt überlappende Berechtigungen.

Wenn zwei separate Zugriffssteuerungsregeln für sich überschneidende IP-Adresssubnetze definiert sind, hat die für das kleinere Subnetz definierte Regel 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 Lesezugriff für das IPv4-Adresssubnetz 10.0.0.0/28 gewährt, erkennt Filestore die Regel zuerst 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 mit der IPv4-Adresse 10.0.0.20 Lese- und Schreibberechtigungen gewährt, während einem Client, der 10.0.0.12 verwendet, nur Leseberechtigungen erteilt 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 Einschränkungen:

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

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

Nächste Schritte