Como configuro um bucket do Google Cloud?
Use um projeto do Google Cloud, um bucket privado e uma conta de serviço dedicada à Transloadit. Você precisa de permissão para criar o bucket, gerenciar seu acesso via IAM e criar uma conta de serviço e sua chave JSON. São aplicadas cobranças pelo armazenamento no Google Cloud e pelo processamento na Transloadit.
1. Criar um bucket privado
Siga o guia de criação de buckets do Google. Use o acesso uniforme no nível do bucket para que o IAM controle o acesso em vez das ACLs de objetos individuais. Não conceda acesso público. Guarde o nome do bucket e o ID do projeto para as próximas etapas.
2. Conceder a uma conta de serviço acesso a este bucket
Crie uma conta de serviço dedicada e conceda a ela o papel Storage Object Creator nesse bucket, e não no projeto inteiro. Esse papel permite criar objetos, mas não ler, excluir ou sobrescrever objetos existentes. O exemplo abaixo usa os caminhos de saída únicos padrão do Robot. Se você escolher caminhos fixos ou adicionar Steps de importação, revise as permissões necessárias para esse fluxo de trabalho em vez de conceder acesso amplo de administrador.
Esta conexão com a Transloadit usa o arquivo de chave JSON de uma conta de serviço. Siga o guia de criação de chaves do Google e baixe uma chave JSON para a conta de serviço dedicada. Mantenha essa chave privada. Se sua organização proíbe chaves de contas de serviço, consulte seu administrador em vez de contornar essa política. Um arquivo de cliente OAuth ou uma chave de acesso HMAC não substitui essa chave JSON.
3. Salvar credenciais de Template
Siga o guia Como criar credenciais de Template e selecione Google Cloud Storage como serviço. Preencha:
| Campo do Console | Valor |
|---|---|
| ID do projeto Google | O ID do seu projeto do Google Cloud. |
| Bucket do Google Cloud Storage | O nome do bucket, sem o prefixo gs://. |
| Arquivo de chave JSON do Google | O arquivo de chave JSON da conta de serviço que você baixou. |
Dê à credencial um nome fácil de reconhecer. Use esse nome no Template abaixo, e não o conteúdo do arquivo JSON nem o endereço de e-mail da conta de serviço.
4. Testar uma exportação
Crie um Template com estas instruções, substituindo
YOUR_GOOGLE_CLOUD_CREDENTIALS pelo nome da credencial que você salvou:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"exported": {
"robot": "/google/store",
"use": ":original",
"credentials": "YOUR_GOOGLE_CLOUD_CREDENTIALS",
"acl": null
}
}
}
Mantenha "acl": null: isso omite a ACL do objeto e permite que a política de IAM do bucket controle o acesso.
Omitir acl, por sua vez, faz com que seja usado o padrão public-read do Robot,
que é incompatível com o acesso uniforme no nível do bucket.
Execute o Template com um pequeno upload de teste. Depois que a Assembly for concluída, inspecione o resultado da exportação e confirme se o objeto existe usando seu próprio acesso autenticado ao Google Cloud Console. Uma simples URL de resultado não concede acesso anônimo a um objeto privado. Não torne o bucket público apenas para testar essa URL.
Uma Assembly pode falhar se uma tentativa automática de upload criar o objeto, mas perder a confirmação: uma nova tentativa automática não pode substituir esse objeto com o papel Storage Object Creator. Inspecione o destino informado e o erro da Assembly antes de alterar as permissões. A existência de um objeto, por si só, não confirma que toda a exportação foi bem-sucedida. Para tentar novamente de forma manual, inicie uma nova Assembly com um novo upload e os caminhos de saída únicos padrão do exemplo, em vez de adicionar permissões de sobrescrita ou exclusão.
Mais informações
- Consulte a documentação de Templates para saber sobre configuração e segurança de Templates.
- Consulte a documentação do Robot 🤖/google/store para saber sobre caminhos, permissões e outras opções de exportação.