Como alterar os escopos de acesso da API Cloud no GCP Compute Engine sem interromper a instância

Como alterar os escopos de acesso da API Cloud no GCP Compute Engine sem interromper a instância

Estou usando gcsfuseo Google Compute Engine. Montei uma pasta com bucket de armazenamento em nuvem, mas não consegui criar nenhum arquivo dentro dela:

touch t1

com um erro:

touch: cannot touch 't1': Input/output error

A solução para o problema é darEscopo de acesso da API Cloud: armazenamento: leitura/gravação

Como alterar os escopos de acesso da API do Cloud no GCP Compute Engine sem interromper a instância? Por favor, me forneça a solução para esse problema.

Desde já, obrigado!

Responder1

Parece que você não tem permissões suficientes no GCS. Dê uma olhada nodocumentaçãopara gcsfuse. Se você estiver usando uma conta de serviço em uma VM do GCE, configure a VM com o storage-fullescopo de acesso.

Você pode tentar consertar desta maneira:

  1. crie uma conta de serviço (mais informaçõesaqui)
  2. crie uma chave para a conta de serviço e baixe o arquivo .json
  3. conceder um papel apropriado à conta de serviço
  4. conceda as permissões apropriadas à conta de serviço no bucket
  5. faça upload das credenciais .json da conta de serviço para a VM
  6. defina uma variável de ambiente que contenha o caminho para as credenciais da conta de serviço ao chamar gcsfusepela linha de comando:

    GOOGLE_APPLICATION_CREDENTIALS = /root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
    

    use a key_fileopção para atingir o mesmo objetivo fstabdocumentadoaqui.

Além disso, você precisa usar a variável ou key_fileopção de ambiente mesmo se tiver configurado a conta de serviço na VM usando:

gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

Atualize sua pergunta com suas etapas, comandos e resultados completos se ainda tiver problemas.

informação relacionada