Puoi proteggere le policy di controllo dell'accesso e prepararti al ripristino di emergenza eseguendo il backup dello schema del database Ranger sui cluster Managed Service for Apache Spark con Ranger. Il ripristino dello schema ti consente di recuperare le configurazioni di sicurezza o di eseguire la migrazione delle autorizzazioni tra i cluster.
Prima di iniziare
Se necessario, crea un bucket. Devi avere accesso a un bucket Cloud Storage, che utilizzerai per archiviare e ripristinare uno schema Ranger.
Per creare un bucket:
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
- Fai clic su Crea.
- Nella pagina Crea un bucket, inserisci le informazioni del bucket. Per andare al passaggio successivo, fai clic su Continua.
-
Nella sezione Inizia, segui questi passaggi:
- Inserisci un nome globalmente univoco che soddisfi i requisiti di denominazione dei bucket.
- Per aggiungere un'etichetta bucket, espandi la sezione Etichette (), fai clic su add_box Aggiungi etichetta e specifica un
keye unvalueper l'etichetta.
-
Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:
- Seleziona un Tipo di località.
- Scegli una località in cui archiviare in modo permanente i dati del bucket dal menu a discesa Tipo di località.
- Se selezioni il tipo di località a due regioni, puoi anche scegliere di attivare la replica turbo utilizzando la casella di controllo pertinente.
- Per configurare la replica tra bucket, seleziona Aggiungi una replica tra bucket mediante Storage Transfer Service e segui questi passaggi:
Configura la replica tra bucket
- Nel menu Bucket, seleziona un bucket.
Nella sezione Impostazioni di replica, fai clic su Configura per configurare le impostazioni per il job di replica.
Viene visualizzato il riquadro Configura replica tra bucket.
- Per filtrare gli oggetti da replicare in base al prefisso del nome dell'oggetto, inserisci un prefisso da includere o escludere, quindi fai clic su Aggiungi un prefisso.
- Per impostare una classe di archiviazione per gli oggetti replicati, seleziona una classe di archiviazione dal menu Classe di archiviazione. Se salti questo passaggio, gli oggetti replicati utilizzeranno per impostazione predefinita la classe di archiviazione del bucket di destinazione.
- Fai clic su Fine.
-
Nella sezione Scegli come archiviare i tuoi dati, segui questi passaggi:
- Seleziona una classe di archiviazione predefinita per il bucket o Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.
- Per abilitare lo spazio dei nomi gerarchico, nella sezione Ottimizza l'archiviazione per workload con uso intensivo dei dati, seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
- Nella sezione Scegli come controllare l'accesso agli oggetti, seleziona se il bucket applica o meno la prevenzione dell'accesso pubblico e seleziona un metodo di controllo dell'accesso per gli oggetti del bucket.
-
Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per abilitare l'eliminazione temporanea, fai clic sulla casella di controllo Policy di eliminazione temporanea (per il recupero dei dati) e specifica il numero di giorni per cui vuoi conservare gli oggetti dopo l'eliminazione.
- Per impostare il controllo delle versioni degli oggetti, fai clic sulla casella di controllo Controllo delle versioni degli oggetti e specifica il numero massimo di versioni per oggetto e il numero di giorni dopo i quali le versioni non correnti scadono.
- Per abilitare la policy di conservazione su oggetti e bucket, fai clic sulla casella di controllo Conservazione (per la conformità), quindi segui questi passaggi:
- Per attivare il blocco della conservazione degli oggetti, fai clic sulla casella di controllo Abilita conservazione degli oggetti.
- Per attivare Blocco bucket, fai clic sulla casella di controllo Imposta policy di conservazione del bucket e scegli un'unità di tempo e una durata per il periodo di conservazione.
- Per scegliere come criptare i dati degli oggetti, espandi la sezione Crittografia dei dati () e seleziona un metodo di crittografia dei dati.
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
-
Nella sezione Inizia, segui questi passaggi:
- Fai clic su Crea.
Esegui il backup di uno schema Ranger
Utilizza SSH per connetterti al nodo master Managed Service for Apache Spark del cluster con lo schema Ranger. Esegui i comandi di questa sezione nella sessione del terminale SSH in esecuzione sul nodo master.
Imposta le variabili di ambiente.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Sostituisci quanto segue:
MySQL password: puoi aprire
/etc/mysql/my.cnfsul nodo master del cluster per copiare la password MySQL.bucket name: il nome del bucket Cloud Storage da utilizzare per archiviare lo schema Ranger.
schema filename: specifica un nome file, senza l'estensione
.sql. Lo schema Ranger viene salvato in questo file sul nodo master, quindi salvato in bucket name in Cloud Storage .
Arresta i servizi Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impedisci le modifiche alle tabelle dello schema Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost'; GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;Salva lo schema Ranger in un file
.sql.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sqlPrivilegi di Ranger per il reset.
mysql -u root -p${MYSQL_PASSWORD} REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost'; GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;Riavvia i servizi Hive e Ranger.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service
Copia lo schema Ranger in Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Ripristina uno schema Ranger
Utilizza SSH per connetterti al nodo master di Managed Service for Apache Spark del cluster in cui ripristinerai lo schema del cluster. Esegui i comandi di questa sezione nella sessione del terminale SSH in esecuzione sul nodo master.
Imposta le variabili di ambiente.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Sostituisci quanto segue:
MySQL password: puoi aprire
/etc/mysql/my.cnfsul nodo master del cluster per copiare la password MySQL.bucket name: il nome del bucket Cloud Storage che contiene lo schema Ranger salvato.
schema filename: il nome del file dello schema Ranger, senza l'estensione del nome file
.sql, salvato in bucket name in Cloud Storage.
Arresta i servizi Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impedisci le modifiche alle tabelle dello schema Ranger.
mysql -u root -p${MYSQL_PASSWORD} REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost'; GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;Copia il file dello schema Ranger
.sqlin Cloud Storage nel nodo master del cluster.gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .Ripristina lo schema Ranger. Questo passaggio sovrascrive i contenuti dello schema Ranger esistente.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sqlPrivilegi di Ranger per il reset.
mysql -u root -p${MYSQL_PASSWORD} REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost'; GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'rangeradmin'@'localhost'; exit;Aggiorna i file di configurazione di Ranger. Cambia l'host del database Ranger con un nuovo nome host del database nei seguenti file con le seguenti proprietà:
File Proprietà ranger-hdfs-security.xmlranger.plugin.hdfs.policy.rest.urlranger-yarn-security.xmlranger.plugin.yarn.policy.rest.urlRiavvia i servizi Hive e Ranger.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service