2
respostas

[Dúvida] Compartilhamento com Segurança

Uma questão de Segurança da Informação

Suponha que eu tenha uma planilha no Google Sheets e desejo realizar uma Análise utilizando o Pandas.

No entanto, vimos durante a aula que para que ela esteja acessível no Colabs precisamos fazer o Compartilhamento, tornando a planilha pública.

Claro, uma forma seria exportar a planilha direto para um arquivo xlsx e então fazer a importação.

No entanto, existe alguma forma de fazer essa importação do Sheets sem compartilhar publicamente a Planilha?

2 respostas

Olá, Paulo! tudo bem?

Entendo a sua preocupação com a segurança da informação ao compartilhar uma planilha no Google Sheets para análise no Colab. Realmente, ao tentar acessar um link restrito, você encontrará o erro HTTPError: HTTP Error 401: Unauthorized, que indica falta de permissão para acessar o recurso.

A solução que envolve o compartilhamento público da planilha é necessária apenas para permitir que o Colab acesse os dados diretamente. Vale destacar que o link público só será acessível para quem você compartilhar o link.

Se você deseja manter a privacidade da sua planilha, uma alternativa é exportá-la como um arquivo .xlsx ou .csv e fazer o upload direto para o Colab. Dessa forma, você pode controlar totalmente quem tem acesso aos dados, sem necessidade de compartilhar o link publicamente.

Outra possível forma, de importar os dados do Google Sheets para o Colab sem tornar a planilha pública, é usando API do Google Sheets, que permite acessar as planilhas de forma segura e controlada. Porém, seria uma tarefa um pouco mais complexa, que envolve o uso do Google Cloud.

Espero que isso ajude a esclarecer a questão! Se tiver mais dúvidas, estou à disposição para ajudar.

Olá Paulo! Como vai?

Para complementar o que a instrutora Valquíria disse, deixo aqui as instruções para compartilhar sua planilha com o uso da API.

  1. Crie um Projeto no Google Cloud Console:

  2. Ative a API do Google Sheets: pode ser necessário ativar também a Google Drive API e fazer esse mesmo processo

    • No painel do seu projeto, vá para "APIs e serviços" > "Biblioteca".

    • Pesquise por "Google Sheets API" e ative-a.

      menu do console google cloud mostrando o caminho para a biblioteca

  3. Crie Credenciais de API:

    • Clique em "Criar credenciais" imagem da api google sheets ativa e uma seta apontando para o botão de criar credenciais

    • Selecione "Dados do aplicativo". Isso criará uma conta de serviço que é apropriada para acessar os dados do seu próprio aplicativo, como no caso de uma planilha que você possui.

    • Dê um nome à conta de serviço e conceda a permissão "Editor"

  4. Crie a chave de API

    • Com a conta de serviço configurada, vá em "Chaves" e adicione uma nova chave. Selecione o download em JSON
    • Carregue esse arquivo no Colab
  5. Compartilhe a planilha com a conta de serviço da API imagem mostrando a credencial recém criada e um retangulo ao redor do email da credencial

  6. Instale as Bibliotecas Necessárias no Colab:

    • No seu notebook do Google Colab, instale as bibliotecas gspread e oauth2client:
      !pip install gspread oauth2client
      
  7. Autentique e Acesse a Planilha:

    • Use o seguinte código para autenticar e acessar a planilha:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd

# Defina os escopos
scope = [
   "https://www.googleapis.com/auth/spreadsheets", 
   "https://www.googleapis.com/auth/drive"
]

# Autentique-se usando o arquivo de credenciais
creds = ServiceAccountCredentials.from_json_keyfile_name('path/to/credentials.json', scope)
client = gspread.authorize(creds)

# Abra a planilha pelo nome
sheet = client.open("Nome da Planilha").sheet1

# Obtenha todos os valores da planilha
data = sheet.get_all_records()

# Converta os dados para um DataFrame do Pandas
df = pd.DataFrame(data)

df

Substitua 'path/to/your/credentials.json' pelo caminho do arquivo JSON de credenciais que você carregou no Colab e "Nome da Planilha" pelo nome da sua planilha.

Dessa forma, você consegue acessar os dados da sua planilha de forma segura, sem precisar torná-la pública.

Espero ter ajudado!

Se ficar alguma dúvida, estou a disposição.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!