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à.
Lo scopo di un connettore è stabilire una relazione tra AWS lo storage e il SFTP server di un partner. Puoi inviare file da Amazon S3 a una destinazione esterna di proprietà del partner. Puoi anche utilizzare un SFTP connettore per recuperare file dal server di un partner. SFTP
Questo tutorial illustra come configurare un SFTP connettore e quindi trasferire file tra lo storage Amazon S3 e SFTP un server.
Un SFTP connettore recupera SFTP le credenziali da AWS Secrets Manager cui autenticarsi su un SFTP server remoto e stabilire una connessione. Il connettore invia o recupera file dal server remoto e li archivia in Amazon S3. Un IAM ruolo viene utilizzato per consentire l'accesso al bucket Amazon S3 e alle credenziali archiviate in Secrets Manager. E puoi accedere ad Amazon CloudWatch.
Argomenti
Fase 1: Creare le risorse di supporto necessarie
Puoi utilizzare i SFTP connettori per copiare file tra Amazon S3 e qualsiasi server remotoSFTP. Per questo tutorial, utilizziamo un AWS Transfer Family server come SFTP server remoto. Dobbiamo creare e configurare le seguenti risorse:
-
Crea bucket Amazon S3 per archiviare file nel tuo AWS ambiente e per inviare e recuperare file dal server remoto:. SFTP Crea bucket Amazon S3
-
Crea un AWS Identity and Access Management ruolo per accedere allo storage Amazon S3 e al nostro segreto in Secrets Manager:. Crea un IAM ruolo con le autorizzazioni necessarie
-
Crea un server Transfer Family che utilizza il SFTP protocollo e un utente gestito dal servizio che utilizza il SFTP connettore per trasferire file da o verso il SFTP server:. Creare un SFTP server Transfer Family e un utente
-
Crea un AWS Secrets Manager segreto che memorizzi le credenziali utilizzate dal SFTP connettore per accedere al server remotoSFTP:. Crea e archivia un segreto in AWS Secrets Manager
Crea bucket Amazon S3
Come creare un bucket Amazon S3.
-
Accedi alla AWS Transfer Family console all'indirizzo. https://console.aws.amazon.com/s3/
-
Scegli una regione e inserisci un nome.
Per questo tutorial, il nostro bucket è inserito
US East (N. Virginia) us-east-1
e il nome èsftp-server-storage-east
. -
Accetta le impostazioni predefinite e scegli Crea bucket.
Per informazioni complete sulla creazione di bucket Amazon S3, vedi Come posso creare un bucket S3? nella Guida per l'utente di Amazon Simple Storage Service.
Crea un IAM ruolo con le autorizzazioni necessarie
Per il ruolo di accesso, crea una politica con le seguenti autorizzazioni.
L'esempio seguente concede le autorizzazioni necessarie per accedere a DOC-EXAMPLE-BUCKET
in Amazon S3 e il segreto specificato archiviato in Secrets Manager.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/SecretName-6RandomCharacters
" } ] }
Sostituisci gli articoli come segue:
-
In
DOC-EXAMPLE-BUCKET
, il tutorial utilizzas3-storage-east
. -
In
region
, il tutorial utilizzaus-east-1
. -
In
account-id
, usa il tuo Account AWS ID. -
In
SecretName-6RandomCharacters
, siamousing sftp-connector1
per il nome (avrai i tuoi sei caratteri casuali per il tuo segreto).
È inoltre necessario assicurarsi che questo ruolo contenga una relazione di fiducia che consenta al connettore di accedere alle risorse dell'utente durante la gestione delle richieste di trasferimento degli utenti. Per i dettagli su come stabilire una relazione di fiducia, vedere. Per stabilire una relazione di trust
Nota
Per vedere i dettagli del ruolo che stiamo utilizzando per il tutorial, vediUtente e ruolo di accesso combinati.
Crea e archivia un segreto in AWS Secrets Manager
Dobbiamo memorizzare un segreto in Secrets Manager per memorizzare le credenziali utente per il SFTP connettore. È possibile utilizzare una password, una chiave SSH privata o entrambe. Per il tutorial, stiamo usando una chiave privata.
Nota
Quando memorizzi segreti in Secrets Manager, ti vengono Account AWS addebitati dei costi. Per informazioni sui prezzi, consulta Prezzi di AWS Secrets Manager
Prima di iniziare la procedura di archiviazione del segreto, recuperate e formatta la chiave privata. La chiave privata deve corrispondere alla chiave pubblica configurata per l'utente sul SFTP server remoto. Per il nostro tutorial, la chiave privata deve corrispondere alla chiave pubblica archiviata per il nostro utente di prova sul SFTP server Transfer Family che stiamo utilizzando come server remoto.
Per fare ciò, esegui il seguente comando:
jq -sR .
path-to-private-key-file
Ad esempio, se il file della chiave privata si trova in~/.ssh/sftp-testuser-privatekey
, il comando è il seguente.
jq -sR . ~/.ssh/sftp-testuser-privatekey
Ciò restituisce la chiave nel formato corretto (con caratteri di nuova riga incorporati) sullo standard output. Copia questo testo da qualche parte, poiché devi incollarlo nella procedura seguente (nel passaggio 6).
Per memorizzare le credenziali utente in Secrets Manager per un connettore SFTP
-
Accedi a AWS Management Console e apri la AWS Secrets Manager console all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Nel pannello di navigazione a sinistra, seleziona Segreti.
-
Nella pagina Segreti, scegli Memorizza un nuovo segreto.
-
Nella pagina Scegli il tipo di segreto, per Tipo segreto, scegli Altro tipo di segreto.
-
Nella sezione Coppie chiave/valore, scegli la scheda Chiave/valore.
-
Chiave: Invio.
Username
-
valore — Inserisci il nome del nostro utente,
sftp-testuser
.
-
-
Per inserire la chiave, ti consigliamo di utilizzare la scheda Plaintext.
-
Scegli Aggiungi riga, quindi inserisci.
PrivateKey
-
Scegli la scheda Testo normale. Il campo ora contiene il seguente testo:
{"Username":"sftp-testuser","PrivateKey":""}
-
Incolla il testo della tua chiave privata (salvato in precedenza) tra le virgolette doppie vuote («»).
La schermata dovrebbe apparire come segue (i dati chiave sono visualizzati in grigio).
-
-
Scegli Next (Successivo).
-
Nella pagina Configura segreto, inserisci un nome per il tuo segreto. Per questo tutorial, diamo un nome al segreto
aws/transfer/sftp-connector1
. -
Scegli Avanti, quindi accetta le impostazioni predefinite nella pagina Configura rotazione. Quindi scegli Successivo.
-
Nella pagina Revisione, scegli Store per creare e archiviare il segreto.
Fase 2: Creare e testare un SFTP connettore
In questa sezione, creiamo un SFTP connettore che utilizza tutte le risorse create in precedenza. Per ulteriori dettagli, consulta Configura i SFTP connettori.
Per creare un SFTP connettore
-
Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/
. -
Nel riquadro di navigazione a sinistra, scegli Connettori, quindi scegli Crea connettore.
-
Scegli SFTPil tipo di connettore per creare un SFTP connettore, quindi scegli Avanti.
-
Nella sezione Configurazione del connettore, fornisci le seguenti informazioni:
-
Per URL, inserisci il nome URL del SFTP server remoto. Per il tutorial, entriamo nel URL server Transfer Family che stiamo utilizzando come SFTP server remoto.
sftp://s-
1111aaaa2222bbbb3
.server---transfer---us-east-1.amazonaws.com.rproxy.goskope.comReplace (Sostituisci)
1111aaaa2222bbbb3
con il tuo ID server Transfer Family. -
Per il ruolo Access, inserisci il ruolo che abbiamo creato in precedenza,
sftp-connector-role
. -
Per il ruolo Logging, scegli
AWSTransferLoggingAccess
.Nota
AWSTransferLoggingAccessè una politica AWS gestita. Questa politica è descritta in dettaglio inAWS politica gestita: AWSTransferLoggingAccess.
-
-
Nella sezione SFTPConfigurazione, fornisci le seguenti informazioni:
-
Per le credenziali del Connector, scegli il nome della risorsa Secrets Manager che contiene SFTP le credenziali. Per il tutorial, scegliete.
aws/transfer/sftp-connector1
-
Per le chiavi host affidabili, incolla la parte pubblica della chiave host. Puoi recuperare questa chiave eseguendo l'esecuzione
ssh-keyscan
sul tuo SFTP server. Per informazioni dettagliate su come formattare e archiviare la chiave host affidabile, consulta la SftpConnectorConfigdocumentazione sui tipi di dati.
-
-
Dopo aver confermato tutte le impostazioni, scegli Crea connettore per creare il SFTP connettore.
Dopo aver creato un SFTP connettore, ti consigliamo di testarlo prima di tentare di trasferire qualsiasi file utilizzando il nuovo connettore.
Per testare un SFTP connettore
-
Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/
. -
Nel riquadro di navigazione a sinistra, scegli Connettori e seleziona un connettore.
-
Dal menu Azioni, scegli Verifica connessione.
Il sistema restituisce un messaggio che indica se il test ha esito positivo o negativo. Se il test fallisce, il sistema fornisce un messaggio di errore in base al motivo per cui il test non è riuscito.
Passaggio 3: invio e recupero di file tramite il connettore SFTP
Per semplicità, supponiamo che tu abbia già dei file nel tuo bucket Amazon S3.
Nota
Il tutorial utilizza i bucket Amazon S3 per le posizioni di storage di origine e di destinazione. Se il tuo SFTP server non utilizza lo storage Amazon S3, ovunque tu veda sftp-server-storage-east
nei seguenti comandi, puoi sostituire il percorso con un percorso verso le posizioni dei file accessibili dal tuo SFTP server.
-
Inviamo un file denominato
SEND-to-SERVER.txt
dallo storage Amazon S3 al SFTP server. -
Recuperiamo un file denominato
RETRIEVE-to-S3.txt
dal SFTP server allo storage Amazon S3.
Nota
Nei seguenti comandi, sostituisci connector-id
con il tuo ID del connettore.
Innanzitutto, inviamo un file dal nostro bucket Amazon S3 al server remoto. SFTP Da un prompt dei comandi, esegui il seguente comando:
aws transfer start-file-transfer --connector-id c-
connector-id
--send-file-paths "/s3-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"
Il tuo sftp-server-storage-east
bucket dovrebbe ora avere questo aspetto.
Se non vedi il file come previsto, controlla i CloudWatch log.
Per controllare i tuoi registri CloudWatch
-
Apri la CloudWatch console Amazon all'indirizzo https://console.aws.amazon.com/cloudwatch/
-
Seleziona Log groups dal menu di navigazione a sinistra.
-
Inserisci l'ID del connettore nella barra di ricerca per trovare i log.
-
Seleziona il flusso di log che viene restituito dalla ricerca.
-
Espandi la voce di registro più recente.
In caso di successo, la voce di registro ha il seguente aspetto:
{ "operation": "SEND", "timestamp": "2023-12-18T15:26:57.346283Z", "connector-id": "
connector-id
", "transfer-id": "transfer-id
", "file-transfer-id": "transfer-id
/file-transfer-id
", "url": "sftp://server-id
.server.transfer.us-east-1.amazonaws.com", "file-path": "/s3-storage-east/SEND-to-SERVER.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:26:56.915864Z", "end-time": "2023-12-18T15:26:57.298122Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/connector-id
", "remote-directory-path": "/sftp-server-storage-east/incoming" }
Se il trasferimento del file non è riuscito, la voce di registro contiene un messaggio di errore che specifica il problema. Le cause più comuni degli errori sono i problemi con le IAM autorizzazioni e i percorsi errati dei file.
Successivamente, recuperiamo un file dal SFTP server in un bucket Amazon S3. Da un prompt dei comandi, esegui il seguente comando:
aws transfer start-file-transfer --connector-id c-
connector-id
--retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/s3-storage-east/incoming"
Se il trasferimento ha esito positivo, il bucket Amazon S3 contiene il file trasferito, come illustrato di seguito.
In caso di successo, la voce di registro è simile alla seguente:
{ "operation": "RETRIEVE", "timestamp": "2023-12-18T15:36:40.017800Z", "connector-id": "c-
connector-id
", "transfer-id": "transfer-id
", "file-transfer-id": "transfer-id
/file-transfer-id
", "url": "sftp://s-server-id
.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:36:39.727626Z", "end-time": "2023-12-18T15:36:39.895726Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/c-connector-id
", "local-directory-path": "/s3-storage-east/incoming" }
Procedure per creare un server Transfer Family da utilizzare come SFTP server remoto
Di seguito, descriviamo i passaggi per creare un server Transfer Family che funga da SFTP server remoto per questo tutorial. Tieni presente quanto segue:
-
Utilizziamo un server Transfer Family per rappresentare un SFTP server remoto. Gli utenti tipici del SFTP connettore hanno il proprio SFTP server remoto. Per informazioni, consulta Creare un SFTP server Transfer Family e un utente.
-
Poiché utilizziamo un server Transfer Family, utilizziamo anche un utente gestito dal servizioSFTP. E, per semplicità, abbiamo combinato le autorizzazioni di cui questo utente ha bisogno per accedere al server Transfer Family con le autorizzazioni necessarie per utilizzare il nostro connettore. Anche in questo caso, la maggior parte dei casi d'uso dei SFTP connettori prevede un SFTP utente separato non associato a un server Transfer Family. Per informazioni, consulta Creare un SFTP server Transfer Family e un utente.
-
Per il tutorial, poiché utilizziamo lo storage Amazon S3 per il nostro SFTP server remoto, dobbiamo creare un secondo bucket
s3-storage-east
, in modo da poter trasferire i file da un bucket all'altro.
Creare un SFTP server Transfer Family e un utente
La maggior parte degli utenti non avrà bisogno di creare un SFTP server Transfer Family e un utente, poiché hai già un SFTP server con utenti e puoi utilizzare questo server per trasferire file da e verso. Tuttavia, per questo tutorial, per semplicità, utilizziamo un server Transfer Family che funge da SFTP server remoto.
Segui la procedura descritta in Crea un server SFTP abilitato Per creare un server e Passaggio 3: Aggiungere un utente gestito dal servizio aggiungere un utente. Questi sono i dettagli utente che utilizziamo per il tutorial:
-
Crea il tuo utente gestito dal servizio,.
sftp-testuser
-
Imposta la home directory su
/sftp-server-storage-east/sftp-testuser
-
Quando crei l'utente, memorizzi una chiave pubblica. Successivamente, quando crei il segreto in Secrets Manager, devi fornire la chiave privata corrispondente.
-
-
Ruolo:
sftp-connector-role
. Per il tutorial, utilizziamo lo stesso IAM ruolo sia per il nostro SFTP utente che per accedere al SFTP connettore. Quando crei connettori per la tua organizzazione, potresti avere ruoli utente e di accesso separati. -
Chiave host del server: è necessario utilizzare la chiave host del server quando si crea il connettore. Puoi recuperare questa chiave eseguendo l'esecuzione
ssh-keyscan
sul tuo server. Ad esempio, se l'ID del server ès-1111aaaa2222bbbb3
e il relativo endpoint è inseritous-east-1
, il comando seguente recupera la chiave dell'host del server:ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com
Copia questo testo da qualche parte, poiché devi incollarlo nella Fase 2: Creare e testare un SFTP connettore procedura.
Utente e ruolo di accesso combinati
Per il tutorial, utilizziamo un singolo ruolo combinato. Utilizziamo questo ruolo sia per il nostro SFTP utente, sia per l'accesso al connettore. L'esempio seguente contiene i dettagli per questo ruolo, nel caso in cui si desideri eseguire le attività del tutorial.
L'esempio seguente concede le autorizzazioni necessarie per accedere ai nostri due bucket in Amazon S3 e al segreto denominato archiviato in aws/transfer/sftp-connector1
Secrets Manager. Nel tutorial, questo ruolo è denominato. sftp-connector-role
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::sftp-server-storage-east", "arn:aws:s3:::s3-storage-east" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": [ "arn:aws:s3:::sftp-server-storage-east/*", "arn:aws:s3:::s3-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:500655546075:secret:aws/transfer/sftp-connector1-
6RandomCharacters
" } ] }
Per i dettagli completi sulla creazione di ruoli per Transfer Family, segui la procedura descritta in Creazione di un ruolo utente Per creare un ruolo.