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, vedi 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 dell'istanza, come la creazione, la modifica, la visualizzazione e l'eliminazione delle istanze. La seguente guida ti illustrerà come completare ciascuna di queste attività.

Impostazioni di esportazione condivisione file

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

  • L'elenco dei client, che identifica i client autorizzati a connettersi alla condivisione file, contiene ogni indirizzo IP interno nella rete VPC selezionata per l'istanza Filestore. Gli indirizzi IP interni possono essere qualsiasi intervallo elencato negli intervalli di subnet. Tuttavia, se hai client su intervalli di subnet non RFC 1918, devi concedere in modo esplicito l'accesso all'istanza Filestore utilizzando il controllo degli accessi basato su IP.
  • Viene utilizzata l'opzione rw, quindi la condivisione file consente sia le operazioni di lettura che di scrittura.
  • Viene utilizzata l'opzione di mappatura degli ID utente no_root_squash; pertanto, tutti gli utenti e i gruppi, incluso l'utente root, devono essere uguali sia sull'istanza Filestore sul client.
  • Tutte le altre opzioni utilizzano i valori predefiniti /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 di client reso accessibile solo all'indirizzo IP dell'istanza, utilizzando le stesse impostazioni indicate nella sezione precedente. La condivisione è accessibile solo per i probe che sono ospitati o provenienti dall'istanza e non è accessibile all'esterno dell'istanza. L'istanza esporta la condivisione 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 con la console Google Cloud o specificando un file di configurazione JSON durante la creazione dell'istanza con gcloud CLI. Per maggiori dettagli, vedi Configurare il 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, consulta Modifica delle istanze.

Autorizzazioni di condivisione file

Quando crei un'istanza Filestore, la relativa condivisione file ha autorizzazioni predefinite per i file POSIX pari a rwxr-xr-x. Queste autorizzazioni significano 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 solo accesso in lettura. Gli utenti root del client possono modificare le autorizzazioni e i proprietari.

Configurazione dell'accesso a una condivisione di 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 è scrivibile e se è possibile eseguire file al suo interno. Dopo aver montato la condivisione file, puoi utilizzare comandi Linux standard come chmod e setfacl per impostare le autorizzazioni di condivisione file e file. setfacl è supportato solo dai livelli di base.

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 impedire l'escalation dei privilegi. Se una condivisione file è montata su più client e un utente dispone di privilegi 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 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 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 è root.

Autorizzazioni sovrapposte

Le istanze di zona, di regione e aziendali ora supportano le autorizzazioni che si sovrappongono.

Se vengono definite due regole separate di controllo dell'accesso#39;accesso per le subnet di indirizzi IP sovrapposte, 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 alla subnet dell'indirizzo IPv4 10.0.0.0/28, Filestore riconosce e applica prima la regola alla subnet più piccola. L'altra regola viene quindi applicata alle parti rimanenti 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 sono 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