Limitare le credenziali S3 e verificare l’accesso
Limita una credenziale S3 per permessi, protocollo, spazio di lavoro, cartella, indirizzo, orari e utilizzo, poi verifica operazioni consentite e negate sugli oggetti.
Ultima revisione
Gli screenshot mostrano l’interfaccia in inglese.
Una richiesta S3 deve superare tutti i limiti della credenziale e dello spazio di lavoro. Il permesso della chiave API limita l’operazione, Protocolli deve consentire il gateway S3, le impostazioni di spazio di lavoro e cartella limitano la posizione e il ruolo attuale del chiamante può restringere ulteriormente l’accesso. La creazione della credenziale non prevale su una successiva modifica del ruolo o dell’appartenenza.
Passaggi
dosya offre tre permessi per le chiavi API S3:
| Permesso | Uso S3 previsto | Operazioni rifiutate intenzionalmente |
|---|---|---|
| Solo lettura | Elencare bucket e oggetti, controllare i metadati e scaricare oggetti. | I caricamenti restituiscono API key scope 'read' cannot upload files; anche eliminazione e copia richiedono Accesso completo. |
| Solo caricamento | Aggiungere nuovi oggetti senza esporre il contenuto salvato. | L’elenco restituisce API key scope 'upload' cannot list files; le letture restituiscono API key scope 'upload' cannot download files. |
| Accesso completo | Leggere, caricare, copiare, spostare tramite le operazioni client supportate ed eliminare se anche il ruolo lo consente. | Continuano a valere permessi del ruolo, blocchi, ancoraggi, limiti d’uso e criteri dello spazio di lavoro. |
L’eliminazione di un oggetto S3 sposta il file dosya nel cestino e restituisce 204; non libera subito spazio di archiviazione. La chiave deve avere Accesso completo e il ruolo richiede delete_own_files o delete_any_file per l’oggetto. Considera aws s3 rm un’azione distruttiva anche se il recupero dal cestino può restare disponibile.
Creare una chiave con ambito ristretto
- Accedi a Profilo → Chiavi API e scegli Crea una chiave API.
- Inserisci un nome specifico per il client in A cosa serve? e scegli Solo lettura, Solo caricamento o Accesso completo in Cosa può fare?.
- Espandi Restrizioni e scadenza, poi apri Quale ambito di accesso ha?.
- In Protocolli, scegli Solo quelli che scelgo e seleziona Gateway S3. Se S3 resta deselezionato, l’attivazione delle credenziali mostra Non consentito e il gateway restituisce
This API key is not permitted to use the S3 gateway. - Scegli lo Spazio di lavoro esatto. Scegli Cartella se il client deve vedere solo quella cartella e le sue sottocartelle; per una chiave vincolata, la cartella scelta diventa la radice S3.
- Aggiungi Intervalli IP consentiti, Solo in una fascia oraria settimanale o limiti in Quanto può usare? se le esigenze del client sono stabili. Campi d’uso vuoti indicano nessun limite esplicito per la chiave, ma possono valere i limiti del piano e del ruolo.
- Scegli una scadenza, controlla la frase che descrive la chiave e scegli Genera la chiave. Salva il valore
dos_mostrato una sola volta. - Espandi la nuova chiave. Accanto a Credenziali S3, scegli Attiva e salva
access_key_idesecret_access_keydalla finestra. Il segreto non può essere recuperato in seguito.
Le credenziali S3 ereditano permessi, ambito di accesso, condizioni di origine, scadenza e limiti d’uso della chiave. Se le credenziali esistono già, l’attivazione restituisce S3 credentials already exist for this API key. Delete and recreate to regenerate. Le chiavi API non si possono modificare dopo la creazione; usa Duplica le impostazioni, crea la sostituta corretta, provala e revoca la vecchia chiave.


Configurare il client
Usa l’endpoint https://api.dosya.dev/s3, la regione us-east-1 e l’ID dello spazio di lavoro come nome del bucket. Il nome visualizzato non identifica il bucket.
export AWS_ACCESS_KEY_ID='REPLACE_WITH_DOSYA_ACCESS_KEY_ID'
read -r -s -p 'S3 secret: ' AWS_SECRET_ACCESS_KEY
printf '\n'
export AWS_SECRET_ACCESS_KEY
DOSYA_WORKSPACE_ID='REPLACE_WITH_WORKSPACE_ID'
aws --endpoint-url https://api.dosya.dev/s3 --region us-east-1 \
s3 ls "s3://$DOSYA_WORKSPACE_ID/"
Per una chiave vincolata a una cartella, i percorsi partono dalla cartella scelta. Non anteporre il percorso della cartella nell’app web: cercheresti una sottocartella con lo stesso nome all’interno della cartella di ancoraggio.
Verificare entrambi i lati del limite
Usa un file non riservato e comandi adatti ai permessi scelti:
printf 'S3 permission check\n' > s3-permission-check.txt
# Upload test: suitable for Upload only or Full access.
aws --endpoint-url https://api.dosya.dev/s3 --region us-east-1 \
s3 cp s3-permission-check.txt "s3://$DOSYA_WORKSPACE_ID/tests/s3-permission-check.txt"
# Read test: suitable for Read only or Full access.
aws --endpoint-url https://api.dosya.dev/s3 --region us-east-1 \
s3 cp "s3://$DOSYA_WORKSPACE_ID/tests/s3-permission-check.txt" ./received.txt
Invia poi una richiesta innocua che dovrebbe fallire: elenca con una chiave di solo caricamento, carica con una chiave di sola lettura, usa un altro ID dello spazio di lavoro con una chiave vincolata o richiedi un percorso adiacente fuori dalla cartella di ancoraggio. Aspettati un errore S3 XML con HTTP 403 e AccessDenied. Un tentativo su un altro spazio di lavoro restituisce This API key is pinned to a different workspace.
Il ruolo nello spazio di lavoro deve includere Usa il gateway S3. L’elenco degli oggetti richiede anche l’accesso alla pagina dei file, il download richiede download_files, il caricamento upload_files e la creazione automatica di cartelle mancanti nel percorso create_folders. Tra i rifiuti pertinenti ci sono This role is not permitted to use the S3 gateway, This role cannot list files, Download not allowed, Upload not allowed e Creating folders is not allowed.
Limiti separati consentono 600 richieste al minuto per utente e 1.200 al minuto per IP. Il gateway controlla i limiti espliciti di utilizzo delle richieste per chiave e ruolo prima di questi limiti di frequenza. Un rifiuto per utilizzo della chiave o del ruolo restituisce HTTP 429 con XML SlowDown e Retry-After. I limiti separati delle richieste restituiscono HTTP 429 con JSON {"ok":false,"error":"Too many requests"} e Retry-After. Leggi il motivo della risposta e rispetta Retry-After; riduci la concorrenza in caso di rifiuto per concorrenza. Attendere o sostituire una credenziale valida non ripristina una quota di byte esaurita.
Scadenza, ancoraggi e revoca
Una chiave API scaduta non può autenticarsi né generare credenziali S3. Se la cartella di ancoraggio scelta è nel cestino o viene rimossa, le richieste falliscono con This API key's anchor folder is no longer available. Un membro successivamente limitato a un’altra cartella non può usare un ancoraggio della credenziale fuori dal sottoalbero consentito.
La revoca della chiave API impedisce l’autenticazione del suo token bearer e della chiave di accesso S3 associata. La revoca è irreversibile: aggiorna il client S3 con una sostituta verificata prima di rimuovere una credenziale usata per copie di sicurezza o automazioni. I file già caricati restano in dosya; la revoca non li elimina né li richiama.
Risultato previsto
L’operazione necessaria riesce nel bucket e nella cartella scelti, mentre la richiesta prevista fuori dai limiti o con permessi errati restituisce AccessDenied. La riga della chiave ne indica permesso, protocollo S3, ambito di accesso, scadenza e ultimo utilizzo, permettendo di controllare e revocare la credenziale in modo indipendente.
Guide correlate
Ti è stata utile?
Caricamento delle valutazioni…
Quando voti, salviamo un cookie tecnico per un massimo di 180 giorni, così puoi cambiare la tua risposta.
Domande e risposte
Fai una domanda sui passaggi di questa guida. Le domande vengono revisionate prima della pubblicazione.
Non inserire dati dell’account, credenziali o file privati nelle domande pubbliche. Usa l’assistenza privata in questi casi.
Caricamento delle domande…
Accedi al tuo account dosya per fare una domanda.