Como usar o seu próprio armazenamento Scaleway para documentos no SimplePDF
Como alternativa ao AWS S3, ao Azure Blob Storage ou ao SharePoint, pode usar o seu bucket Scaleway Object Storage para armazenar documentos e submissões.
A Scaleway é um fornecedor cloud europeu com centros de dados em Paris, Amesterdão, Varsóvia e Milão. As equipas escolhem normalmente a Scaleway pela residência de dados na UE, pela conformidade com o RGPD ou porque já têm a infraestrutura na Scaleway e querem manter os documentos no mesmo fornecedor.
O que vai parar ao seu bucket Scaleway
Assim que a Scaleway estiver ligada, duas coisas chegam automaticamente ao seu bucket:
- Documentos de origem: cada PDF que um utilizador (ou o próprio) carrega no editor é enviado diretamente para o seu bucket. O SimplePDF não guarda qualquer cópia.
- Submissões preenchidas: quando um utilizador assina, edita ou submete um documento, o PDF resultante é igualmente escrito no seu bucket.
O carregamento acontece do lado do cliente: o navegador carrega diretamente para a Scaleway através de URL pré-assinados de curta duração. Os servidores do SimplePDF limitam-se a trocar esses URL, pelo que os seus documentos nunca transitam pela infraestrutura do SimplePDF. O fluxo é idêntico ao da configuração AWS S3; se quiser o diagrama de sequência completo e o modelo de segurança, consulte aqui.
Como configurar o seu próprio Scaleway Object Storage
A configuração do seu próprio bucket Scaleway Object Storage está disponível com o plano PRO
Na Scaleway
Para armazenar documentos no Scaleway Object Storage, precisa de um bucket e de uma chave de API com permissões de leitura, escrita e eliminação nesse bucket.
- Crie (ou escolha) um bucket na região que preferir (
fr-par,nl-ams,pl-wawouit-mil). Mantenha a visibilidade do bucket em Private (o valor predefinido). Nunca a altere para pública. Um bucket Scaleway público deixa cada documento e cada submissão que lá guardar totalmente expostos a qualquer pessoa na internet, incluindo os rastreadores dos motores de busca. O SimplePDF carrega através de URL pré-assinados, autenticados e de curta duração: o acesso público não acrescenta qualquer funcionalidade e apenas abre a porta a uma fuga de dados.

-
Abra IAM & API keys a partir do menu de utilizador no canto superior direito da consola Scaleway.
-
Crie uma aplicação IAM dedicada ao SimplePDF. Passar por uma aplicação (em vez do seu próprio utilizador) é a opção segura por omissão: concede apenas aquilo de que o SimplePDF precisa, sobrevive a mudanças na equipa e pode ser revogada sem afetar mais ninguém.
- Abra o separador Applications e clique em + Create application.
- Dê-lhe o nome
simplepdf-byos(ou outro que reconheça). Deixe o campo da política vazio por agora (a Scaleway indica-o como opcional nesta etapa, mas uma aplicação sem política não tem permissões; vamos associar uma no passo seguinte). - Clique em Create application.
- Crie uma política que conceda à aplicação permissões limitadas de Object Storage:
-
Abra o separador Policies e clique em + Create policy. Dê-lhe o nome
simplepdf-byos-policye acrescente uma descrição do géneroConcede ao SimplePDF BYOS acesso ao bucket Object Storage. -
Em Principals, selecione a aplicação
simplepdf-byosque acabou de criar. -
A política precisa de duas regras, uma para o bucket (limitada ao projeto) e outra para o IAM (limitada à organização).
Regra n.º 1 (acesso ao bucket):
-
Scope: Access to resources → escolha o projeto a que pertence o seu bucket.
-
Permission sets (na secção Storage): a escolha depende de querer, ou não, que o SimplePDF consiga ler o seu bucket:
- Predefinido (leitura + escrita): assinale ObjectStorageFullAccess. O SimplePDF pode listar, ler, carregar, eliminar e configurar o CORS no bucket.
- Apenas escrita (recomendado se não quiser que o SimplePDF leia os seus documentos em momento algum, a configuração mais restritiva): assinale ObjectStorageObjectsWrite, ObjectStorageObjectsDelete e ObjectStorageBucketsWrite. O SimplePDF pode carregar, eliminar e configurar o CORS, mas não pode listar nem ler objetos. A Scaleway não tem uma predefinição para esta combinação, pelo que assinala os três permission sets individualmente.
Se optar por apenas escrita, assinale também Write permissions only no formulário de configuração de armazenamento do SimplePDF descrito mais abaixo, para que o SimplePDF nunca tente uma operação de leitura.
Regra n.º 2 (leitura de IAM):
- Clique em + Add a rule.
- Scope: Access to Organization features.
- Permission sets (na secção Security & Identity): assinale IAMReadOnly. Isto permite ao SimplePDF ler a data de expiração da sua chave de API para enviar e-mails de lembrete 7 dias e 1 dia antes de a chave expirar.
-
-
Clique em Create policy.

- Gere a chave de API:
- Abra o separador API keys e clique em + Generate API key.
- Como bearer, selecione a aplicação
simplepdf-byosque acabou de criar. - Acrescente uma descrição do género
Chave de API do SimplePDF BYOS. - Quando lhe for perguntado "Will this API key be used for Object Storage?", escolha Yes e selecione como projeto preferido o projeto a que pertence o seu bucket.
- Escolha um prazo de expiração adequado à sua política de segurança. O SimplePDF envia e-mails de lembrete 7 dias e 1 dia antes de a chave de API expirar, para que a possa rodar sem interrupção do serviço.
- Copie imediatamente a Access Key e a Secret Key: a Secret Key não voltará a ser mostrada.

A configuração de CORS é tratada por nós. A Scaleway não expõe o CORS na consola, mas o SimplePDF deteta os endpoints da Scaleway e aplica automaticamente as regras CORS necessárias ao seu bucket quando guarda a configuração de armazenamento. As regras acompanham o campo Write permissions only configurado mais abaixo: GET, PUT e DELETE são permitidos quando o SimplePDF tem acesso de leitura, e GET é retirado quando define o bucket como apenas escrita. Não é preciso qualquer CLI nem o AWS SDK.
Se a sua chave de API não conseguir configurar o CORS (normalmente porque falta ObjectStorageBucketsWrite na política, que está incluída tanto nas permissões predefinidas como nas de apenas escrita descritas no passo 4) ou se o bucket não estiver acessível, o SimplePDF recusa a gravação e apresenta o erro, para que o possa corrigir antes de qualquer submissão ser carregada.
No SimplePDF
- Inicie sessão na sua conta
- Vá à vista de definições da conta

-
Clique em
Update configuration -
Selecione Scaleway como tipo de armazenamento e preencha os seus dados:
Region: escolha a região do seu bucket: fr-par (Paris), nl-ams (Amesterdão), pl-waw (Varsóvia) ou it-mil (Milão). O SimplePDF deduz daqui o URL do endpoint do Object Storage, pelo que não há um campo de endpoint separado para preencher.
Bucket: nome do seu bucket Scaleway
Access Key: a Access Key da chave de API que gerou no passo 5
Secret Key: a Secret Key da chave de API que gerou no passo 5
Write permissions only: assinale esta caixa se não quiser que o SimplePDF consiga ler documentos do seu bucket. Quando está assinalada, as regras CORS aplicadas automaticamente permitem apenas PUT e DELETE (sem GET), exatamente aquilo de que o editor precisa para carregar e remover ficheiros sem os ler.

- Clique em
Update
Permissões necessárias no seu bucket Scaleway
A política IAM que associa no passo 4 determina o que o SimplePDF pode fazer no seu bucket. Escolha o modo que corresponde ao que pretende.
Todas as políticas que associar precisam de duas regras:
- Regra limitada ao projeto (abrange o bucket): escolha o projeto a que pertence o seu bucket e assinale uma das combinações de permission sets indicadas abaixo, na secção Storage.
- Regra limitada à organização (abrange a leitura de IAM): defina o âmbito como Access to Organization features e assinale IAMReadOnly na secção Security & Identity. É obrigatória para que o SimplePDF possa ler a data de expiração da sua chave de API e enviar os e-mails de lembrete antes de esta expirar.
Predefinido (leitura + escrita)
Na regra limitada ao projeto, em Storage, assinale ObjectStorageFullAccess. O SimplePDF pode listar, ler, carregar e eliminar objetos e configurar o CORS no bucket.
Apenas escrita
Na regra limitada ao projeto, em Storage, assinale ObjectStorageObjectsWrite, ObjectStorageObjectsDelete e ObjectStorageBucketsWrite. O SimplePDF pode carregar e eliminar objetos e configurar o CORS, mas não pode listá-los nem lê-los. A Scaleway não tem uma predefinição para esta combinação, pelo que assinala os três permission sets individualmente.
Ações subjacentes da API S3
Para referência, as ações S3 subjacentes que o SimplePDF executa no bucket são:
s3:GetObject: para apresentar os documentos e submissões na interface e ao enviar webhooks (apenas no modo predefinido)s3:PutObject: para carregar os documentos e submissõess3:DeleteObject: para eliminar os documentos e submissões carregadoss3:PutBucketCORS: concedida uma única vez, quando o SimplePDF configura automaticamente o CORS no seu bucket no momento da gravação
É tudo! Os seus documentos e submissões passam agora a ser guardados automaticamente no seu próprio bucket Scaleway Object Storage!
Se tiver alguma questão, não hesite em contactar support@simplepdf.com