Tipos de credenciais compatíveis com vários casos de uso

Visão geral

No momento, a gsutil é compatível com vários tipos de credenciais/autenticação, bem como a capacidade de acessar dados públicos de forma anônima. Consulte gsutil help anon para saber mais sobre o acesso anônimo. Cada um desses tipos de credenciais é discutido em mais detalhes abaixo, juntamente com informações sobre como configurar e usar credenciais por meio do Cloud SDK ou de instalações autônomas da gsutil.

Como configurar/usar credenciais via Cloud Sdk Distribution do Gsutil

Quando a gsutil é instalada/usada por meio do SDK do Cloud ("gcloud"), as credenciais são armazenadas pelo SDK do Cloud em um arquivo não editável pelo usuário localizado em ~/.config/gcloud (qualquer manipulação de credenciais deve ser feita por meio do gcloud auth ). Se você precisar configurar várias credenciais (por exemplo, uma para uma conta de usuário individual e uma segunda para uma conta de serviço), o comando gcloud auth gerenciará as credenciais para você, e você também alternará entre credenciais usando o comando gcloud auth (para Veja mais detalhes em https://cloud.google.com/sdk/gcloud/reference/auth).

Após a configuração das credenciais via gcloud auth, essas credenciais serão usadas mesmo que o usuário tenha arquivos de configuração boto (que estão localizados em ~/.boto, a menos que um caminho diferente seja especificado em BOTO_CONFIG{101 }variável do ambiente). No entanto, o gsutil procurará as credenciais no arquivo de configuração boto se for necessário usar um tipo de credencial que não seja do Cloud Storage e não estiver armazenado no armazenamento de credenciais da gcloud (por exemplo, uma credencial HMAC para uma conta S3).

Como configurar/usar credenciais por meio da distribuição autônoma da Gsutil

Se você instalou uma distribuição independente da gsutil (baixada de https://pub.storage.googleapis.com/gsutil.tar.gz, https://pub.storage.googleapis.com) /gsutil.zip, ou PyPi), as credenciais são configuradas usando o comando gsutil config e armazenadas no arquivo de configuração boto editável pelo usuário (localizado em ~/.boto, a menos que um caminho diferente seja especificado no ambiente BOTO_CONFIG ). Nesse caso, se você quiser configurar várias credenciais (por exemplo, uma para uma conta de usuário individual e outra para uma conta de serviço), execute a configuração da gsutil uma vez para cada credencial e salve cada uma dos arquivos de configuração boto gerados (por exemplo, renomear um deles para ~/.boto_user_account e o segundo para ~/.boto_service_account) e alternar entre as credenciais usando a variável de ambiente BOTO_CONFIG (por exemplo, executando o BOTO_CONFIG=~/.boto_user_account gsutil ls).

Ao usar a versão autônoma da gsutil com a API JSON, você pode configurar no máximo um dos seguintes tipos de credenciais do Cloud Storage em um único arquivo de configuração boto: conta de usuário OAuth2, conta de serviço OAuth2. Além dessas, você também pode ter credenciais HMAC S3 (necessárias para usar URLs s3://) e credenciais da conta de serviço interna do Google Compute Engine. As credenciais da conta de serviço interna do Google Compute Engine são usadas apenas quando as credenciais do OAuth2 não estão presentes.

Tipos de credenciais compatíveis

A gsutil é compatível com vários tipos de credenciais (o subconjunto específico depende da distribuição da gsutil que você está usando. Consulte a discussão acima.

Conta de usuário do OAuth2:
Esse é o tipo de credenciais preferencial para autenticar solicitações em nome de um usuário específico (provavelmente o uso mais comum da gsutil). Esse é o tipo de credencial padrão que será criado quando você executar "gsutil config" (ou "gcloud init" para instalações do SDK do Cloud). Para mais detalhes sobre a autenticação do OAuth2, consulte: https://developers.google.com/accounts/docs/OAuth2#scenarios
HMAC:

Esse tipo de credencial pode ser usado por programas implementados com a autenticação HMAC, que é um mecanismo de autenticação compatível com outros provedores de serviços de armazenamento em nuvem. Esse tipo de credencial também pode ser usado para uso interativo ao mover dados de/para provedores de serviços compatíveis com credenciais HMAC. Esse é o tipo de credencial que será criada quando você executar "gsutil config -a".

É possível configurar credenciais do HMAC para o Cloud Storage e outro provedor de serviços. ou configurar as credenciais da conta de usuário do OAuth2 para credenciais do Cloud Storage e HMAC para outro provedor de serviços. Para fazer isso, depois de executar o comando "gsutil config" (ou "gcloud init" para instalações do SDK do Cloud), edite o arquivo de configuração ~/.boto gerado e procure comentários sobre onde outras credenciais podem ser adicionadas.

Para mais detalhes sobre a autenticação do HMAC, consulte:
https://developers.google.com/storage/docs/reference/v1/getting-startedv1#key
Conta de serviço do OAuth2:

Esse é o tipo preferencial de credencial a ser usado ao autenticar um serviço ou aplicativo (e não um usuário). Por exemplo, se você executar a gsutil a partir de um cron job noturno para fazer upload/download de dados, o uso de uma conta de serviço não dependerá das credenciais de um funcionário individual na sua empresa. Esse é o tipo de credencial que será configurado quando você executar "gsutil config -e". Para configurar as credenciais da conta de serviço quando instaladas pelo Cloud SDK, execute "gcloud auth activate-service-account".

É importante observar que uma conta de serviço é considerada um editor por padrão para fins de acesso à API, e não a um Proprietário. Em particular, o fato de que os editores têm acesso de PROPRIET inRIO no objeto padrão e nas ACLs de bucket, mas as opções de ACL prontas removem o acesso de PROPRIET fromRIO dos editores, podendo gerar resultados inesperados. A solução para esse problema é usar "gsutil acl ch" em vez de "gsutil acl set {canances-ACL}" para alterar permissões em um intervalo.

Para configurar uma conta de serviço para uso com "gsutil config -e" ou "gcloud auth activate-service-account", consulte:

Veja mais detalhes sobre as contas de serviço do OAuth2 em:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
Para mais informações sobre os papéis da conta, consulte:
https://developers.google.com/console/help/#DifferentRoles
Conta de serviço interno do Google Compute Engine:

Esse é o tipo de conta de serviço usado para contas hospedadas pelo App Engine ou pelo Google Compute Engine. Essas credenciais são criadas automaticamente para você no Google Compute Engine quando você executa o comando gcloud compute instances create e as credenciais podem ser controladas com a sinalização --scopes.

Para mais detalhes sobre as contas de serviço do Google Compute Engine, consulte:
https://developers.google.com/compute/docs/authentication;
Para mais detalhes sobre as contas de serviço do App Engine, consulte:
https://developers.google.com/appengine/docs/python/appidentity/overview
Falsificação da conta de serviço:

Representar uma conta de serviço é útil em cenários em que você precisa conceder acesso de curto prazo a recursos específicos. Por exemplo, se você tiver um bucket de dados confidenciais que normalmente é somente leitura e quer conceder acesso de gravação temporariamente por meio de uma conta de serviço confiável.

Para especificar qual conta de serviço usar para personificação, execute "gsutil -i", "gsutil config" e edite o arquivo de configuração boto ou "gcloud config set auth/impersonate_service_account".

Para representar a identidade, suas credenciais originais precisam receber papéis/iam.serviceAccountTokenCreator na conta de serviço de destino. Para mais informações, veja: