View a markdown version of this page

AWS Transfer Family Documentazione di riferimento delle API - AWS Transfer Family

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à.

AWS Transfer Family Documentazione di riferimento delle API

La guida di riferimento API completa per Transfer Family è disponibile su AWS Transfer Family API Reference.

AWS Transfer Family è un servizio di trasferimento sicuro che puoi utilizzare per trasferire file da e verso lo storage di Amazon Simple Storage Service (Amazon S3) tramite i seguenti protocolli:

  • Protocollo di trasferimento file (SFTP) Secure Shell (SSH)

  • Protocollo di trasferimento file sicuro (FTPS)

  • Protocollo di trasferimento file (FTP)

  • Dichiarazione di applicabilità 2 (AS2)

I server, gli utenti e i ruoli sono tutti identificati dal rispettivo Amazon Resource Name (ARN). È possibile assegnare tag, che sono coppie chiave-valore, a entità con un ARN. I tag sono metadati che possono essere utilizzati per raggruppare o cercare queste entità. Un esempio di utilizzo dei tag è per scopi di contabilità.

Nei formati AWS Transfer Family ID vengono rispettate le seguenti convenzioni:

  • I valori ServerId hanno il formato s-01234567890abcdef.

  • I valori SshPublicKeyId hanno il formato key-01234567890abcdef.

I formati Amazon Resource Name (ARN) assumono il seguente formato:

  • Per i server, gli ARN assumono il modulo. arn:aws:transfer:region:account-id:server/server-id

    Un esempio di un ARN del server è: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef.

  • Per gli utenti, gli ARN hanno il formato arn:aws:transfer:region:account-id:user/server-id/username.

    Un esempio è arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1.

Le voci DNS (endpoint) in uso sono le seguenti:

  • Gli endpoint API hanno il formato transfer.region.amazonaws.com.

  • Gli endpoint del server hanno il formato server-id.server.transfer.region.amazonaws.com.

Questo riferimento all'interfaccia API per AWS Transfer Family contiene la documentazione per un'interfaccia di programmazione che è possibile utilizzare per gestire. AWS Transfer Family La struttura di riferimento è la seguente:

  • Per l'elenco alfabetico delle azioni API, vedere Actions.

  • Per l'elenco alfabetico dei tipi di dati, vedere. Types

  • Per un elenco di parametri di query comuni, consulta la pagina Parametri Comuni.

  • Per le descrizioni dei codici di errore, consulta la pagina Errori comuni.

Suggerimento

Invece di eseguire effettivamente un comando, è possibile utilizzare il --generate-cli-skeleton parametro con qualsiasi chiamata API per generare e visualizzare un modello di parametro. È quindi possibile utilizzare il modello generato per personalizzarlo e utilizzarlo come input per un comando successivo. Per i dettagli, consultate Generare e utilizzare un file scheletro di parametri.

Effettuare richieste API

Oltre a utilizzare la console, puoi utilizzare l' AWS Transfer Family API per configurare e gestire i tuoi server in modo programmatico. Questa sezione descrive AWS Transfer Family le operazioni, la richiesta di firma per l'autenticazione e la gestione degli errori. Per informazioni sulle regioni e gli endpoint disponibili per Transfer Family, consulta AWS Transfer Family endpoint e quote nel Riferimenti generali di AWS

Nota

Puoi anche utilizzare gli AWS SDK per sviluppare applicazioni con Transfer Family;. Gli AWS SDK per Java, .NET e PHP racchiudono l'API Transfer Family sottostante, semplificando le attività di programmazione. Per informazioni sul download delle librerie SDK, consulta Librerie di codice di esempio.

Intestazioni di richiesta obbligatorie per Transfer Family

Questa sezione descrive le intestazioni richieste a cui devi inviare con ogni richiesta POST. AWS Transfer Family Devi includere intestazioni HTTP per identificare le informazioni principali sulla richiesta, tra cui l'operazione che vuoi richiamare, la data della richiesta e le informazioni che indicano la tua autorizzazione come mittente della richiesta. Le intestazioni fanno distinzione tra maiuscole e minuscole, ma l'ordine delle intestazioni non è importante.

L'esempio seguente mostra le intestazioni utilizzate nell'ListServersoperazione.

POST / HTTP/1.1 Host: transfer.us-east-1.amazonaws.com x-amz-target: TransferService.ListServers x-amz-date: 20220507T012034Z Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20220507/us-east-1/transfer/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de Content-Type: application/x-amz-json-1.1 Content-Length: 17 {"MaxResults":10}

Di seguito sono riportate le intestazioni che devono essere incluse nelle richieste POST a Transfer Family. Le intestazioni mostrate di seguito che iniziano con «x-amz» sono specifiche per. AWS Tutte le altre intestazioni elencate sono intestazioni comuni usate in transazioni HTTP.

Input e firma delle richieste Transfer Family

Tutti gli input della richiesta devono essere inviati come parte del payload JSON nel corpo della richiesta. Per le azioni in cui tutti i campi di richiesta sono facoltativi, ad esempioListServers, è comunque necessario fornire un oggetto JSON vuoto nel corpo della richiesta, ad esempio. {} La struttura del payload Transfer Family request/response è documentata, ad esempio, nel riferimento all'API esistente. DescribeServer

Transfer Family supporta l'autenticazione tramite AWS Signature Version 4. Per i dettagli, consulta la sezione Richieste AWS API di firma.

Risposte agli errori

Quando si verifica un errore, le informazioni dell'intestazione della risposta contengono:

  • Content-Type: application/x-amz-json-1.1

  • Un codice di stato HTTP 4xx o 5xx appropriato

Il corpo di una risposta di errore contiene informazioni relative all'errore. La risposta di errore di esempio seguente mostra la sintassi di output degli elementi della risposta comuni a tutte le risposte di errore.

{ "__type": "String", "Message": "String", <!-- Message is lowercase in some instances --> "Resource": "String", "ResourceType": "String", "RetryAfterSeconds": "String" }

La tabella seguente illustra i campi della risposta di errore JSON mostrata nella sintassi precedente.

__type

Una delle eccezioni a una chiamata API Transfer Family.

Tipo: stringa

Messaggio o messaggio

Uno dei messaggi dei codici di errore delle operazioni.

Nota

Alcune eccezioni utilizzano message e altre utilizzanoMessage. Puoi controllare il codice dell'interfaccia per determinare il caso corretto. In alternativa, puoi testare ogni opzione per vedere quale funziona.

Tipo: stringa

Risorsa

La risorsa per la quale viene invocato l'errore. Ad esempio, se si tenta di creare un utente già esistente, Resource è il nome utente dell'utente esistente.

Tipo: stringa

ResourceType

Il tipo di risorsa per cui viene richiamato l'errore. Ad esempio, se si tenta di creare un utente già esistente, ResourceType èUser.

Tipo: stringa

RetryAfterSeconds

Il numero di secondi di attesa prima di riprovare il comando.

Tipo: stringa

Esempi di risposte agli errori

Il seguente corpo JSON viene restituito se si chiama l'DescribeServerAPI e si specifica un server che non esiste.

{ "__type": "ResourceNotFoundException", "Message": "Unknown server", "Resource": "s-11112222333344444", "ResourceType": "Server" }

Il seguente corpo JSON viene restituito se l'esecuzione di un'API causa la limitazione.

{ "__type":"ThrottlingException", "RetryAfterSeconds":"1" }

Il seguente corpo JSON viene restituito se si utilizza l'CreateServerAPI e non si dispone di autorizzazioni sufficienti per creare un server Transfer Family.

{ "__type": "AccessDeniedException", "Message": "You do not have sufficient access to perform this action." }

Il seguente corpo JSON viene restituito se si utilizza l'CreateUserAPI e si specifica un utente già esistente.

{ "__type": "ResourceExistsException", "Message": "User already exists", "Resource": "Alejandro-Rosalez", "ResourceType": "User" }

Librerie disponibili

AWS fornisce librerie, codice di esempio, tutorial e altre risorse per gli sviluppatori di software che preferiscono creare applicazioni utilizzando API specifiche del linguaggio anziché gli strumenti da riga di comando e l'API Query. Queste librerie forniscono funzioni di base (non incluse nelle API), come l'autenticazione delle richieste, i nuovi tentativi di richiesta e la gestione degli errori, in modo che sia più facile iniziare. Vedi Strumenti su cui sviluppare AWS

Per le librerie e il codice di esempio in tutte le lingue, vedi Codice di esempio e librerie.

Provider di identità

AWS Transfer Family supporta diversi tipi di provider di identità per l'autenticazione e la gestione degli utenti. Ogni server può utilizzare un solo metodo di autenticazione, che deve essere selezionato al momento della creazione del server.

Servizio gestito

Con il metodo di SERVICE_MANAGED autenticazione, le credenziali dell'utente vengono archiviate e gestite all'interno AWS Transfer Family. Gli utenti vengono autenticati utilizzando chiavi pubbliche SSH associate al loro nome utente sul server.

Ogni utente può avere una o più chiavi pubbliche SSH memorizzate nel servizio. Quando un client richiede un'operazione su un file, fornisce il nome utente e la chiave privata SSH, che viene autenticata con la chiave pubblica memorizzata.

Directory Service

Il metodo di AWS_DIRECTORY_SERVICE autenticazione consente l'integrazione con AWS Directory Service per Microsoft Active Directory (AWS Directory Service for Microsoft Active Directory).

Questa opzione consente di gestire l'autenticazione e l'accesso degli utenti tramite i gruppi di Active Directory esistenti. Gli utenti possono autenticarsi utilizzando le proprie credenziali di Active Directory.

Esiste un limite predefinito di 100 gruppi Active Directory per server, che può essere aumentato fino a un massimo di 150 gruppi tramite un aumento del limite di servizio.

Lambda

Il metodo di AWS_LAMBDA autenticazione consente di connettersi a un provider di identità personalizzato utilizzando AWS Lambda.

Questa opzione offre la flessibilità necessaria per l'integrazione con i sistemi di gestione delle identità esistenti. La funzione Lambda è responsabile dell'autenticazione degli utenti e della restituzione delle politiche di accesso appropriate.

Personalizzato (API Gateway)

Il metodo di API_GATEWAY autenticazione (visualizzato come Personalizzato nella console) consente di utilizzare un metodo di autenticazione personalizzato che fornisce sia l'autenticazione dell'utente che il controllo degli accessi.

Questo metodo si basa su Amazon API Gateway per utilizzare la chiamata API dal tuo provider di identità per convalidare le richieste degli utenti. Puoi utilizzare questo metodo personalizzato per autenticare gli utenti tramite un servizio di directory, una name/password coppia di database o qualche altro meccanismo.

Per tutti i metodi di autenticazione, agli utenti vengono assegnate policy che definiscono il loro accesso ai bucket Amazon S3 o ai file system Amazon Elastic File System. Il server eredita la relazione di fiducia dall'utente tramite un ruolo IAM con un'AssumeRoleazione, che gli consente di eseguire operazioni sui file per conto dell'utente.

Convenzioni di denominazione

AWS Transfer Family utilizza formati standardizzati per identificatori di risorse e Amazon Resource Names (ARN). Comprendere queste convenzioni è importante quando si lavora con l'API. AWS Transfer Family

Formati ID

Nei formati AWS Transfer Family ID si osservano le seguenti convenzioni:

ID del server

I valori ServerId hanno il formato s-01234567890abcdef.

ID delle chiavi pubbliche SSH

I valori SshPublicKeyId hanno il formato key-01234567890abcdef.

ID dei connettori

I valori ConnectorId hanno il formato c-01234567890abcdef.

ID del flusso di lavoro

I valori WorkflowId hanno il formato w-01234567890abcdef.

ID del profilo

I valori ProfileId hanno il formato p-01234567890abcdef.

WebApp ID

I valori WebAppId hanno il formato webapp-01234567890abcdef.

Formati ARN

I formati Amazon Resource Name (ARN) assumono il seguente formato:

ARN del server

Per i server, gli ARN assumono il modulo. arn:aws:transfer:region:account-id:server/server-id

Esempio: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef.

ARN utente

Per gli utenti, gli ARN hanno il formato arn:aws:transfer:region:account-id:user/server-id/username.

Esempio: arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1.

ARN di connettori

Per i connettori, gli ARN prendono il modulo. arn:aws:transfer:region:account-id:connector/connector-id

Esempio: arn:aws:transfer:us-east-1:123456789012:connector/c-01234567890abcdef.

ARN del flusso di lavoro

Per i flussi di lavoro, gli ARN prendono il modulo. arn:aws:transfer:region:account-id:workflow/workflow-id

Esempio: arn:aws:transfer:us-east-1:123456789012:workflow/w-01234567890abcdef.

WebApp ARN

Per le applicazioni web, gli ARN prendono il modulo. arn:aws:transfer:region:account-id:webapp/webapp-id

Esempio: arn:aws:transfer:us-east-1:123456789012:webapp/webapp-01234567890abcdef.

È possibile assegnare tag, che sono coppie chiave-valore, a entità con un ARN. I tag sono metadati che possono essere utilizzati per raggruppare o cercare queste entità. Un esempio di utilizzo dei tag è per scopi di contabilità.

DNS ed endpoint

AWS Transfer Family utilizza convenzioni di denominazione DNS standardizzate sia per gli endpoint API che per gli endpoint del server. La comprensione di questi endpoint è essenziale per configurare i client ed effettuare chiamate API.

Endpoint API

Gli endpoint API vengono utilizzati per effettuare chiamate API per gestire le risorse. AWS Transfer Family Questi endpoint assumono le seguenti forme:

Endpoint API standard

Gli endpoint API standard prendono il modulo. transfer.region.amazonaws.com

Ad esempio: transfer.us-east-1.amazonaws.com

Dual-Stack Endpoint API

AWS Transfer Family offre endpoint API dual-stack a cui è possibile accedere utilizzando richieste IPv4 o IPv6:

  • https://transfer.region-code.api.aws

  • https://transfer-fips.region-code.api.aws

Endpoint del server

Gli endpoint del server vengono utilizzati dai client di trasferimento file per connettersi ai AWS Transfer Family server. Questi endpoint assumono le seguenti forme:

Endpoint server standard

Gli endpoint server standard assumono il modulo. server-id.server.transfer.region.amazonaws.com

Ad esempio: s-01234567890abcdef.server.transfer.us-east-1.amazonaws.com

Nomi host personalizzati

Puoi anche configurare nomi host personalizzati per i tuoi AWS Transfer Family server. È possibile utilizzare nomi host personalizzati per offrire agli utenti un'esperienza più intuitiva o personalizzata.

Per utilizzare un nome host personalizzato, devi:

  1. Possiedi il nome di dominio

  2. Fornisci un certificato valido

  3. Configura i record DNS in modo che puntino al tuo server AWS Transfer Family

Per un elenco completo degli AWS Transfer Family endpoint per AWS regione, consulta gli AWS Transfer Family endpoint e le quote in. Riferimenti generali di AWS