Controllo dell'accesso

Questa pagina descrive come controllare l'accesso alle istanze Filestore.

  • Con il protocollo NFSv4.1 (anteprima), puoi utilizzare Kerberos per proteggere l'accesso alle istanze Filestore. Per ulteriori informazioni, consulta Informazioni sui protocolli supportati.

  • In alternativa, puoi utilizzare le opzioni Linux per controllare l'accesso NFS e Identity and Access Management (IAM) per controllare l'accesso alle operazioni delle istanze, come la creazione, la modifica, la visualizzazione e l'eliminazione delle istanze. La seguente guida illustra come completare ciascuna di queste attività.

Impostazioni di esportazione della condivisione file

A una condivisione file di Filestore vengono assegnate le seguenti impostazioni predefinite di /etc/exports:

  • L'elenco dei client, che identifica i client autorizzati a connettersi alla condivisione file, contiene tutti gli indirizzi IP interni della rete VPC selezionata per l'istanza Filestore. Gli indirizzi IP interni possono essere qualsiasi intervallo elencato negli intervalli di subnet. Tuttavia, se hai client in intervalli di subnet non RFC 1918, devi concedere esplicitamente l'accesso all'istanza Filestore utilizzando il controllo dell'accesso basato su IP.
  • Poiché viene utilizzata l'opzione rw, la condivisione file consente sia operazioni di lettura che di scrittura.
  • Viene utilizzata l'opzione di mappatura degli ID utente no_root_squash; di conseguenza, tutti gli utenti e i gruppi, incluso l'utente root, devono essere uguali sia sull'istanza Filestore sia sul client.
  • Tutte le altre opzioni utilizzano i valori predefiniti di /etc/exports.

Istanze di livello base

Le istanze SSD base e HDD di base creano una condivisione esportata con l'etichetta /config/google-prober, utilizzata per supportare i processi di probe interni, che a loro volta verificano l'accesso, la durabilità o le prestazioni. La condivisione viene esportata in un elenco client reso accessibile solo all'indirizzo IP dell'istanza, utilizzando le stesse impostazioni indicate nella sezione precedente. La condivisione è accessibile solo ai prober ospitati su o provenienti dall'istanza e non è accessibile al di fuori dell'istanza. L'istanza esporta la condivisione indipendentemente dall'applicazione o meno del controllo dell'accesso basato su IP. Gli utenti possono visualizzare la condivisione esportata utilizzando il comando showmount -e.

Controllo dell'accesso basato su IP

Puoi modificare queste impostazioni di esportazione creando regole di controllo dell'accesso dell'accesso utilizzando la console Google Cloud o specificando un file di configurazione JSON durante la creazione dell'istanza utilizzando gcloud CLI. Per maggiori dettagli, consulta Configurazione del controllo dell'accesso basato su IP.

Puoi anche aggiungere nuove regole di controllo dell'accesso o modificare quelle esistenti dopo la creazione di un'istanza. Per maggiori dettagli, vedi Modifica delle istanze.

Autorizzazioni di condivisione file

Quando crei un'istanza Filestore, la condivisione file per quell'istanza ha le autorizzazioni file POSIX predefinite di rwxr-xr-x. Queste autorizzazioni indicano che su un'istanza Filestore solo gli utenti root sui client connessi hanno accesso in lettura e scrittura alla condivisione file. Per impostazione predefinita, gli altri utenti hanno accesso in sola lettura. Gli utenti root del client possono modificare le autorizzazioni e i proprietari.

Configurazione dell'accesso a una condivisione file

Durante il montaggio di una condivisione file, puoi utilizzare le opzioni di montaggio e le impostazioni di /etc/fstab per determinare se la condivisione file può essere scrivibile e se può essere eseguita al suo interno. Dopo aver montato la condivisione file, puoi utilizzare i comandi Linux standard come chmod e setfacl per impostare le autorizzazioni di condivisione file e file. Solo i livelli base supportano setfacl.

Impostazione di autorizzazioni coerenti

Ti consigliamo vivamente di impostare autorizzazioni coerenti per ogni utente su tutti i client che si connettono alla stessa istanza Filestore per evitare l'escalation dei privilegi. Se una condivisione file è montata su più client e un utente dispone dei privilegi root per un client ma non per gli altri, è possibile il seguente scenario di escalation dei privilegi:

  • Un utente imposta l'attributo setuid su un file eseguibile dal client a cui l'utente ha accesso root.
  • L'utente carica quindi il file eseguibile nella condivisione file.
  • L'utente esegue il file caricato come root su qualsiasi client in cui l'utente dispone almeno dell'autorizzazione di lettura.

Questo scenario è possibile perché il bit setuid consente all'utente di eseguire un file utilizzando le autorizzazioni del proprietario del file, che in questo caso è la radice.

Autorizzazioni sovrapposte

Le istanze a livello di zona, di regione e aziendali ora supportano autorizzazioni sovrapposte.

Se vengono definite due regole di controllo dell'accesso dell'accesso distinte per la sovrapposizione di subnet di indirizzi IP, la regola definita per la subnet più piccola avrà la priorità.

Ad esempio, se un file di configurazione JSON contiene una regola che concede l'accesso in lettura e scrittura alla subnet dell'indirizzo IPv4 10.0.0.0/24 e una regola separata concede l'accesso di sola lettura per la subnet dell'indirizzo IPv4 10.0.0.0/28, Filestore riconosce e applica prima la regola per la subnet più piccola. L'altra regola viene quindi applicata alle restanti parti della subnet dell'indirizzo IP definita. In questo esempio, a un client che utilizza l'indirizzo IPv4 10.0.0.20 vengono concesse le autorizzazioni di lettura e scrittura, mentre a un client che utilizza 10.0.0.12 vengono concesse autorizzazioni di sola lettura:

   {
  "--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"
        }
      ]
    }
}

Si applicano alcune limitazioni:

  • Le autorizzazioni sovrapposte per subnet IPv4 identiche non sono supportate e restituiscono un errore.

  • Le autorizzazioni sovrapposte non sono supportate per le istanze SSD di base o HDD di base.

Passaggi successivi