Controllo dell'accesso

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

  • Con il protocollo NFSv4.1, 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 sulle istanze, come la creazione, la modifica, la visualizzazione ed 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 /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 in intervalli subnet. Tuttavia, se hai client in intervalli di subnet non RFC 1918, devi concedere loro esplicitamente l'accesso all'istanza Filestore utilizzando il controllo dell'accesso in base all'IP.
  • Viene utilizzata l'opzione rw, quindi la condivisione file consente sia le operazioni di lettura che quelle di scrittura.
  • Viene utilizzata l'opzione di mappatura dell'ID utente no_root_squash, pertanto tutti gli utenti e i gruppi, incluso l'utente root, devono essere uguali sia nell'istanza Filestore sia nel client.
  • Tutte le altre opzioni utilizzano i valori predefiniti di /etc/exports.

Istanze di livello base

Le istanze SSD e HDD di base creano una condivisione esportata etichettata come /config/google-prober, utilizzata per supportare i processi di sondaggio interni, che a loro volta verificano l'accesso, la durabilità o le prestazioni. La condivisione viene esportata in un elenco di client reso accessibile solo all'indirizzo IP dell'istanza, utilizzando le stesse impostazioni indicate nella sezione precedente. La condivisione è accessibile solo ai probatori ospitati o provenienti dall'istanza ed è inaccessibile al di fuori dell'istanza. L'istanza esporta la quota indipendentemente dall'applicazione del controllo degli accessi 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 la pagina Configurare il controllo dell'accesso in base all'IP.

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

Autorizzazioni di condivisione file

Quando crei un'istanza Filestore, la condivisione file per quell'istanza ha autorizzazioni file POSIX predefinite di rwxr-xr-x. Queste autorizzazioni significano che in un'istanza Filestore solo gli utenti root dei client collegati hanno accesso in lettura e scrittura alla condivisione file. Gli altri utenti hanno accesso di sola lettura per impostazione predefinita. Gli utenti con accesso come utente principale del client possono modificare le autorizzazioni e i proprietari.

Configurazione dell'accesso per una condivisione file

Quando monti una condivisione file, puoi utilizzare le opzioni di montaggio e le impostazioni /etc/fstab per determinare se la condivisione file è scrivibile e se è possibile eseguire i file al suo interno. Dopo aver montato la condivisione file, puoi utilizzare i comandi standard di Linux come chmod e setfacl per impostare le autorizzazioni dei file e delle condivisioni file. Solo i livelli di base supportano setfacl.

Impostare autorizzazioni coerenti

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

  • Un utente imposta l'attributo setuid su un file eseguibile dal client in cui l'utente dispone dell'accesso root.
  • L'utente carica quindi il file eseguibile nella condivisione file.
  • L'utente esegue il file caricato come utente root su qualsiasi client su cui ha almeno l'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 è root.

Autorizzazioni sovrapposte

Le istanze zonali, regionali e aziendali ora supportano le autorizzazioni sovrapposte.

Se sono definite due regole di controllo dell'accesso separate per subnet di indirizzi IP sovrapposte, ha la priorità la regola definita per la subnet più piccola.

Ad esempio, se un file di configurazione JSON contiene una regola che concede l'accesso in lettura e scrittura per la subnet dell'indirizzo IPv4 10.0.0.0/24 e una regola separata che 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 poi applicata alle restanti parti della subnet dell'indirizzo IP definito. 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 le 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"
        }
      ]
    }
}

Sono previste 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 o HDD di base.

Passaggi successivi