Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Consolida la generazione di URL predefiniti di Amazon S3 e il download di oggetti utilizzando un endpoint associato a indirizzi IP statici
Song Jin, Eunhye Jo e Jun Soung Lee, Amazon Web Services
Riepilogo
Questo modello semplifica l'accesso ad Amazon Simple Storage Service (Amazon S3) creando file predefiniti sicuri e personalizzati per il download di oggetti. URLs La soluzione fornisce un singolo endpoint con un dominio unico e indirizzi IP statici. È personalizzato per i clienti che richiedono il consolidamento degli endpoint API e Amazon S3 in un dominio unificato con indirizzi IP statici. Il caso d'uso prevede che gli utenti seguano una politica firewall con elenchi di indirizzi IP e domini consentiti, limitando l'accesso delle API a domini e indirizzi IP specifici.
L'architettura utilizza chiavi Servizi AWS, tra cui AWS Global Accelerator Amazon API Gateway AWS Lambda, Application Load Balancer AWS PrivateLink e Amazon S3. Questo design centralizza l'API per la generazione di endpoint predefiniti URLs e Amazon S3 in un unico dominio, collegato a un acceleratore con due indirizzi IP statici. Di conseguenza, gli utenti possono richiedere URLs e scaricare facilmente oggetti Amazon S3 predefiniti tramite un endpoint di dominio unificato con indirizzi IP statici.
Questa architettura è particolarmente vantaggiosa per i clienti con politiche o requisiti di conformità rigorosi, come quelli dei settori pubblico, medico e finanziario.
Prerequisiti e limitazioni
Prerequisiti
Un attivo Account AWS
Una zona pubblica ospitata per il tuo nome di dominio personalizzato
Un dominio importato in AWS Certificate Manager (ACM) in un formato Regione AWS a tua scelta
Limitazioni
Il nome del bucket Amazon S3 deve corrispondere al nome di dominio dell'endpoint. Questo requisito serve a garantire che l'endpoint Amazon S3 possa essere servito tramite un unico endpoint API.
Il nome di dominio personalizzato utilizzato in API Gateway deve essere allineato al nome di dominio del singolo endpoint API.
Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità regionale, vedi AWS Servizi per regione
. Per endpoint specifici, consulta Endpoints and quotas del servizio e scegli il link relativo al servizio.
Architettura
Il diagramma seguente mostra l'architettura e il flusso di lavoro di destinazione per questo modello.

Il diagramma illustra il concetto e il flusso di lavoro seguenti:
Un utente avvia una richiesta per generare un URL predefinito utilizzando l'endpoint personalizzato fornito tramite AWS Global Accelerator, utilizzando il nome di dominio personalizzato e gli indirizzi IP associati.
Una funzione Lambda genera l'URL predefinito, che punta all'endpoint personalizzato. Risponde con un reindirizzamento 301 che contiene l'URL prefirmato generato. Tramite l'URL prefirmato reindirizzato, l'utente scarica automaticamente l'oggetto utilizzando l'endpoint personalizzato fornito tramite Global Accelerator.
I componenti dell'architettura generale per la generazione di URL predefiniti e il flusso di lavoro per il download degli oggetti sono i seguenti:
Fornitura di indirizzi IP statici da parte di Global Accelerator.
Registrazione dell'alias dell'acceleratore come record A nella zona ospitata pubblica di Amazon Route 53 con il nome di dominio personalizzato.
Creazione di un bucket Amazon S3 con un nome di bucket che corrisponda al nome di dominio personalizzato registrato.
Creazione di endpoint VPC per API Gateway e il servizio Amazon S3.
Configurazione di un Application Load Balancer con interfaccia interna per la connessione a Global Accelerator.
Assegnazione di un nome di dominio personalizzato per API Gateway con un certificato ACM allegato.
Implementazione di un API Gateway privato integrato con una funzione Lambda.
La funzione Lambda è dotata di un ruolo AWS Identity and Access Management (IAM) associato (con GetObjectautorizzazioni).
Strumenti
Servizi AWS
Amazon API Gateway ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
Gli Application Load Balancer distribuiscono il traffico delle applicazioni in entrata su più destinazioni, come le istanze Amazon Elastic Compute Cloud (Amazon EC2), in più zone di disponibilità.
AWS Certificate Manager (ACM) ti aiuta a creare, archiviare e rinnovare certificati e chiavi SSL/TLS X.509 pubblici e privati che proteggono i tuoi siti Web e le tue applicazioni. AWS
AWS Cloud Development Kit (AWS CDK)è un framework di sviluppo software che consente di definire e fornire Cloud AWS l'infrastruttura in codice.
AWS Global Acceleratorè un servizio globale che supporta endpoint multipli Regioni AWS. È possibile creare acceleratori che indirizzano il traffico verso endpoint ottimali sulla AWS rete globale. Questo migliora la disponibilità e le prestazioni delle applicazioni Internet utilizzate da un pubblico globale.
AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
AWS Lambda è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
AWS PrivateLinkti aiuta a creare connessioni private unidirezionali dai tuoi cloud privati virtuali (VPCs) a servizi esterni al VPC.
Amazon Route 53 è un servizio Web DNS altamente scalabile e disponibile.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Altri strumenti
Terraform
è uno strumento di infrastruttura come codice (IaC) HashiCorp che ti aiuta a creare e gestire risorse cloud e locali.
Archivio di codici
Puoi implementare questo modello utilizzando AWS CDK o Terraform in base alle tue preferenze. La sezione Epics contiene istruzioni per entrambi i metodi di distribuzione. Il codice per questo pattern è disponibile nei seguenti GitHub repository:
AWS CDK— s3
- -cdk presignedurl-staticips-endpoint-with Terraform — s3- -terraform presignedurl-staticips-endpoint-with
Best practice
Per migliorare la sicurezza nell'ambiente di produzione, è fondamentale implementare meccanismi di autorizzazione, come Amazon Cognito, per limitare l'accesso all'API di
PresignedUrl
generazione.Segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le best practice relative alla concessione dei privilegi minimi e alla sicurezza nella documentazione IAM.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Scegli un nome di dominio. | Scegli un nome di dominio pubblico per l'endpoint Amazon S3 unificato. Il nome di dominio viene utilizzato anche come nome del bucket Amazon S3. | Amministratore AWS, amministratore di rete |
Crea una zona ospitata pubblica | Crea una zona pubblica ospitata in Amazon Route 53. Il nome di dominio deve corrispondere al nome di dominio utilizzato in API Gateway. | Amministratore AWS, amministratore di rete |
Prepara un certificato SSL. | Utilizza AWS Certificate Manager (ACM) per richiedere o importare un certificato SSL per il dominio della tua applicazione web. | Amministratore AWS, amministratore di rete |
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura l'ambiente di sviluppo Terraform. | Per configurare l'ambiente di sviluppo, procedi come segue:
| Amministratore AWS, amministratore cloud |
Modifica i |
Tieni presente quanto segue:
| Amministratore AWS, amministratore cloud |
Fornisci risorse di rete. | Per effettuare il provisioning delle risorse di rete, esegui i seguenti comandi:
Durante l'esecuzione del | Amministratore AWS, amministratore cloud |
Esegui il provisioning di API Gateway, Amazon S3 e Lambda. | Per effettuare il provisioning delle risorse di rete, utilizza i seguenti comandi:
| Amministratore AWS, amministratore cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura l'ambiente di AWS CDK sviluppo. | Per configurare l'ambiente di sviluppo, procedi come segue:
| Amministratore AWS, amministratore cloud |
Configura le impostazioni del dominio nel | Per modificare le opzioni della variabile costante, utilizzate i seguenti comandi:
Nei comandi, sostituisci ogni segnaposto con le tue informazioni:
| Amministratore AWS, amministratore cloud |
Distribuisci gli stack. | Per distribuire due stack, uno per il cloud privato virtuale (VPC) e l'altro per l'applicazione, usa il seguente comando:
| Amministratore AWS, amministratore cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Verifica gli indirizzi IP dell'endpoint. | Per verificare che il dominio per questo pattern abbia indirizzi IP statici, utilizzate il seguente comando:
| Amministratore di rete |
Carica un file di test che potrai scaricare in seguito. | Carica il file di test nella | Amministratore AWS, amministratore cloud |
Richiama l'API per generare un URL predefinito. | Per generare un URL predefinito, richiamate l'URL da un browser o da un client API (ad esempio, Postman
Sostituisci i valori segnaposto in | Proprietario dell'app |
Controlla il risultato. | Il risultato previsto è che dovresti ricevere un codice di stato di reindirizzamento 301 (Spostato permanentemente). Questa risposta conterrà l'URL predefinito, che dovrebbe avviare automaticamente il download del file di test. | Tecnico di test |
Attività | Descrizione | Competenze richieste |
---|---|---|
Distruggi le risorse API Gateway, Amazon S3 e Lambda. | Per eliminare le risorse, usa i seguenti comandi:
| Amministratore AWS, amministratore cloud |
Distruggi le risorse di rete. | Per eliminare le risorse di rete, utilizzate i seguenti comandi:
| Amministratore AWS, amministratore cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Distruggi le pile. | Per distruggere sia il VPC che lo stack delle applicazioni, usa il seguente comando:
| Amministratore AWS, amministratore cloud |
Svuota ed elimina i bucket Amazon S3. | Svuota ed elimina il bucket Amazon S3 oggetto e il bucket Amazon S3 di log che non vengono eliminati per impostazione predefinita. I nomi dei bucket Amazon S3 sono e. Se preferisci usare il AWS Command Line Interface (AWS CLI) per eliminare i bucket, usa i seguenti comandi:
Sostituite | Amministratore AWS, amministratore cloud |
Risorse correlate
AWS Blog