Considerações de segurança e privacidade

Visão geral

Esta seção de ajuda fornece detalhes sobre as várias precauções tomadas pelo gsutil para proteger a segurança dos dados, além de recomendações sobre como os clientes devem manter a segurança.

Transport Layer Security

O gsutil executa todas as operações usando criptografia de camada de transporte (HTTPS) para proteger contra vazamento de dados em links de rede compartilhados. Isso também é importante porque o gsutil usa "tokens do portador" para autenticação (OAuth2) e identificadores de upload retomável. Esses tokens precisam ser protegidos contra espionagem e cópia.

A gsutil também é compatível com o estilo de autenticação HMAC mais antigo usando a API XML (consulte endpoints da gsutil). Embora a autenticação HMAC não use tokens do portador (e, portanto, não esteja sujeita a ataques de espionagem/cópia), ainda é importante criptografar o tráfego de dados.

Antes da versão 4.0 do gsutil, era possível usar HTTP em vez de HTTPS definindo como "Falso" o parâmetro de configuração "is_secure" na seção [Boto] do arquivo de configuração boto. No entanto, a partir da versão 4.0 do gsutil, não é mais possível configurar is_secure como "Falso". Para mais detalhes sobre as diferentes opções de credenciais, consulte gsutil help creds.

Para adicionar uma camada extra de segurança, a gsutil é compatível com TLS mútuo (mTLS) para a API Cloud Storage JSON. Com o mTLS, o cliente verifica o certificado do servidor, que também verifica o cliente. Para saber mais sobre como ativar o mTLS, consulte a documentação de instalação.

Segurança do armazenamento local de arquivo

O gsutil adota várias medidas de precaução para proteger os arquivos armazenados localmente contra explorações de segurança:

  • Quando o comando gsutil config (ou gcloud init para instalações Cloud SDK) é executado, ele define o modo de proteção de arquivos 600 ("-rw -------") no arquivo de configuração .boto gerado. Portanto, apenas o usuário (ou superusuário) tem acesso de leitura a ele. Isso é importante porque esses arquivos contêm informações confidenciais de segurança, como credenciais e configuração de proxy.
  • O comando gsutil config (ou gcloud init para instalações do SDK do Cloud) também usa o modo de proteção de arquivos 600 para o arquivo de chave privada armazenado localmente quando você cria credenciais de conta de serviço.
  • O nível padrão de saída de geração de registros dos comandos do gsutil não inclui informações confidenciais de segurança, como tokens OAuth2 e informações de configuração de proxy. Consulte a seção "CUIDADOS RECOMENDADOS AO USUÁRIO" (abaixo) se você aumentar o nível de saída de depuração usando a opção gsutil -D.

Os modos de proteção não são compatíveis com o Windows. Portanto, se você usa o gsutil no Windows, recomendamos escolher um sistema de arquivos criptografado e senhas de conta fortes.

Arquivos confidenciais de segurança gravados temporariamente no disco pelo gsutil

O gsutil armazena dados em arquivos temporários em várias situações:

  • Ao compactar dados enviados com gsutil cp -z/-Z, o gsutil armazena os dados com proteção 600 em arquivos temporários que são excluídos após a conclusão do upload. O processo é o mesmo para o download de arquivos enviados com gsutil cp -z/-Z ou algum outro modo que define a codificação de conteúdo como "gzip". No entanto, se você encerrar o processo do gsutil enquanto o upload estiver em andamento, o arquivo parcialmente gravado será mantido. Consulte a seção "ALTERAÇÃO DE DIRETÓRIOS TEMPORÁRIOS" em gsutil help cp para ver detalhes sobre onde os arquivos temporários são gravados e como alterar o local do diretório temporário.
  • Ao executar um upload retomável, o gsutil armazena o ID do upload (que, como visto acima, é um token do portador e, portanto, precisa ser protegido) em um arquivo em ~/.gsutil/tracker-files com proteção 600 e o exclui após a conclusão do upload. No entanto, se o upload não for concluído com sucesso, o arquivo de acompanhamento será mantido para que o upload retomável possa ser tentado novamente. Com o tempo, é possível acumular esses arquivos de acompanhamento de tentativas de upload canceladas, embora os IDs de upload recuperáveis sejam válidos por apenas uma semana. Portanto, o risco de segurança só existe para arquivos mais recentes que isso. Se você considerar alto o risco de deixar os IDs de upload cancelados no diretório de acompanhamento, poderá modificar seus scripts de upload para excluir os arquivos de acompanhamento. Ou você pode criar um cron job para limpar periodicamente esse diretório.
  • O comando gsutil rsync armazena arquivos temporários (com proteção 600) que contêm os nomes, tamanhos e somas de verificação dos diretórios/buckets de origem e destino, que são excluídos após a conclusão do rsync. No entanto, se você encerrar o processo do gsutil enquanto o rsync estiver em andamento, os arquivos de listagem serão mantidos.

O gsutil exclui arquivos temporários usando a chamada de sistema de desvinculação do SO padrão, que não executa a limpeza de dados. Assim, o conteúdo desses arquivos temporários poderá ser recuperado por um invasor.

Listas de controle de acesso

A menos que você especifique uma ACL diferente (como pela opção gsutil cp -a), por padrão, os objetos gravados em um bucket usam a ACL padrão de objetos nesse bucket. A menos que você modifique essa ACL (por exemplo, via comando gsutil defacl), por padrão, todos os editores do projeto terão acesso de gravação ao objeto e acesso de leitura/gravação aos metadados do objeto, além de permitir que todos os visualizadores do projeto acessem o objeto.

O sistema de controle de acesso do Cloud Storage inclui a capacidade de especificar se os objetos serão legíveis publicamente. Confirme se você pretende conceder acesso público a todos os objetos gravados. Uma vez "publicados", os dados na Internet podem ser copiados para muitos lugares. Assim, é impossível recuperar o controle de leitura sobre um objeto gravado com essa permissão.

O sistema de controle de acesso do Cloud Storage inclui a capacidade de especificar se os buckets serão graváveis publicamente. Mesmo que configurar um bucket público seja conveniente para vários fins, recomendamos não usar essa permissão. Ela pode propagar conteúdo ilegal, vírus e outros malwares, e o proprietário do bucket é legal e financeiramente responsável pelo conteúdo armazenado nos seus buckets. Se você precisar disponibilizar conteúdo para clientes que não têm Contas do Google, convém usar URLs assinados. Consulte gsutil help signurl.

Integridade e atualizações de software

O gsutil é distribuído como um pacote autônomo por meio de arquivos tar e zip armazenados no bucket gs://pub, como um módulo PyPi e como parte da versão do SDK do Cloud. Cada um desses métodos de distribuição adota diversas medidas de segurança para proteger a integridade do software. É altamente desaconselhável utilizar cópias do gsutil de outras fontes, como sites de espelhamento.

Uso do proxy

O gsutil é oferece acesso por proxies, como o Squid e vários produtos comerciais. Uma descrição completa dos recursos está além do escopo desta documentação, mas os proxies podem ser configurados para oferecer suporte a muitas funções relacionadas à segurança, incluindo verificação de vírus, Prevenção contra vazamento de dados, controle sobre certificados/CAs confiáveis, filtros de tipo de conteúdo e outros. Alguns recursos podem atrasar ou bloquear um comportamento legítimo do gsutil. Por exemplo, a verificação de vírus depende da descriptografia de conteúdo de arquivo, o que, por sua vez, exige que o proxy encerre a conexão do gsutil e estabeleça uma nova conexão. Em alguns casos, os proxies usarão maneiras para regravar o conteúdo que provocam erros de validação da soma de verificação e outros problemas.

Para detalhes sobre a configuração de proxies, consulte o texto de ajuda do proxy em seu arquivo de configuração .boto, gerado pelo comando gsutil config ou gcloud init.

Criptografia em repouso

Todos os dados do Cloud Storage são armazenados automaticamente em um estado criptografado, mas também é possível fornecer suas próprias chaves de criptografia. Para mais informações, consulte Criptografia do Cloud Storage.

Privacidade de dados

O Google nunca solicitará que você compartilhe suas credenciais, senhas ou outras informações confidenciais de segurança. Cuidado com possíveis golpes de phishing, quando alguém tenta se passar pelo Google e solicita essas informações.

Dados de medição

O comando "gsutil perfdiag" coleta uma variedade de métricas e detalhes relacionados ao desempenho do sistema local e do ambiente de rede para uso na solução de problemas de desempenho. Nenhuma dessas informações será enviada ao Google, a menos que você queira.