Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Cette rubrique décrit comment créer des SFTP connecteurs, les algorithmes de sécurité qui leur sont associés, comment stocker un secret pour conserver les informations d'identification, les détails sur le formatage de la clé privée et les instructions pour tester vos connecteurs.
Création d'un SFTP connecteur
Cette procédure explique comment créer des SFTP connecteurs à l'aide de la AWS Transfer Family console ou AWS CLI.
- Console
-
Pour créer un SFTP connecteur
-
Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.
-
Dans le volet de navigation de gauche, choisissez Connectors, puis Create connector.
-
Choisissez SFTPle type de connecteur pour créer un SFTP connecteur, puis choisissez Next.
-
Dans la section Configuration du connecteur, fournissez les informations suivantes :
-
Pour le URL, entrez le URL pour un SFTP serveur distant. Cela URL doit être formaté commesftp://partner-SFTP-server-url
, par exemplesftp://AnyCompany.com
.
Vous pouvez éventuellement fournir un numéro de port dans votreURL. Le format est sftp://partner-SFTP-server-url
:port-number
. Le numéro de port par défaut (lorsqu'aucun port n'est spécifié) est le port 22.
-
Pour le rôle Access, choisissez le nom de ressource Amazon (ARN) du rôle AWS Identity and Access Management (IAM) à utiliser.
-
Assurez-vous que ce rôle fournit un accès en lecture et en écriture au répertoire parent de l'emplacement du fichier utilisé dans la StartFileTransfer
demande.
-
Assurez-vous que ce rôle autorise l'secretsmanager:GetSecretValue
accès au secret.
Dans la politique, vous devez spécifier ARN le secret. ARNContient le nom du secret, mais y ajoute six caractères alphanumériques aléatoires. Un ARN pour un secret a le format suivant.
arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/SecretName-6RandomCharacters
-
Assurez-vous que ce rôle contient une relation de confiance qui permet au connecteur d'accéder à vos ressources lorsqu'il répond aux demandes de transfert de vos utilisateurs. Pour plus de détails sur l'établissement d'une relation de confiance, voirÉtape 1 : Établir une relation d'approbation.
L'exemple suivant accorde les autorisations nécessaires pour accéder au DOC-EXAMPLE-BUCKET
dans Amazon S3, et le secret spécifié est stocké dans 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
"
}
]
}
Pour le rôle d'accès, l'exemple accorde l'accès à un secret unique. Toutefois, vous pouvez utiliser un caractère générique, ce qui peut vous faire économiser du travail si vous souhaitez réutiliser le même IAM rôle pour plusieurs utilisateurs et secrets. Par exemple, l'instruction de ressource suivante accorde des autorisations pour tous les secrets dont le nom commence paraws/transfer
.
"Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/*"
Vous pouvez également stocker des secrets contenant vos SFTP informations d'identification dans un autre Compte AWS. Pour plus de détails sur l'activation de l'accès secret entre comptes, voir Autorisations relatives aux AWS Secrets Manager secrets pour les utilisateurs d'un autre compte.
-
(Facultatif) Pour le rôle de journalisation, choisissez le IAM rôle que le connecteur doit utiliser pour transférer des événements vers vos CloudWatch journaux. L'exemple de politique suivant répertorie les autorisations nécessaires pour consigner les événements des SFTP connecteurs.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "SFTPConnectorPermissions",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:DescribeLogStreams",
"logs:CreateLogGroup",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/transfer/*"
]
}]
}
-
Dans la section SFTPConfiguration, fournissez les informations suivantes :
-
Pour les informations d'identification du Connector, dans la liste déroulante, choisissez le nom d'un secret AWS Secrets Manager contenant la clé privée ou le mot de passe de SFTP l'utilisateur. Vous devez créer un secret et le stocker d'une manière spécifique. Pour plus de détails, consultez Stockez un secret à utiliser avec un SFTP connecteur.
-
Clés d'hôte fiables : collez la partie publique de la clé d'hôte utilisée pour identifier le serveur externe. Vous pouvez ajouter plusieurs clés en choisissant Ajouter une clé d'hôte fiable pour ajouter une clé supplémentaire. Vous pouvez utiliser la ssh-keyscan
commande sur le SFTP serveur pour récupérer la clé nécessaire. Pour plus de détails sur le format et le type de clés d'hôte fiables prises en charge par Transfer Family, voir SFTPConnectorConfig.
-
(Facultatif) Dans la section Balises, pour Clé et Valeur, entrez une ou plusieurs balises sous forme de paires clé-valeur.
-
Après avoir confirmé tous vos paramètres, choisissez Create connector pour créer le SFTP connecteur. Si le connecteur est créé avec succès, un écran apparaît avec une liste des adresses IP statiques attribuées et un bouton Tester la connexion. Utilisez le bouton pour tester la configuration de votre nouveau connecteur.
La page Connecteurs apparaît, avec l'ID de votre nouveau SFTP connecteur ajouté à la liste. Pour consulter les détails de vos connecteurs, consultezAfficher les détails SFTP du connecteur.
- CLI
-
Vous utilisez le create-connectorcommande pour créer un connecteur. Pour utiliser cette commande afin de créer un SFTP connecteur, vous devez fournir les informations suivantes.
-
Le URL pour un SFTP serveur distant. Cela URL doit être formaté commesftp://partner-SFTP-server-url
, par exemplesftp://AnyCompany.com
.
-
Le rôle d'accès. Choisissez le nom de ressource Amazon (ARN) du rôle AWS Identity and Access Management (IAM) à utiliser.
-
Assurez-vous que ce rôle fournit un accès en lecture et en écriture au répertoire parent de l'emplacement du fichier utilisé dans la StartFileTransfer
demande.
-
Assurez-vous que ce rôle autorise l'secretsmanager:GetSecretValue
accès au secret.
Dans la politique, vous devez spécifier ARN le secret. ARNContient le nom du secret, mais y ajoute six caractères alphanumériques aléatoires. Un ARN pour un secret a le format suivant.
arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/SecretName-6RandomCharacters
-
Assurez-vous que ce rôle contient une relation de confiance qui permet au connecteur d'accéder à vos ressources lorsqu'il répond aux demandes de transfert de vos utilisateurs. Pour plus de détails sur l'établissement d'une relation de confiance, voirÉtape 1 : Établir une relation d'approbation.
L'exemple suivant accorde les autorisations nécessaires pour accéder au DOC-EXAMPLE-BUCKET
dans Amazon S3, et le secret spécifié est stocké dans 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
"
}
]
}
Pour le rôle d'accès, l'exemple accorde l'accès à un secret unique. Toutefois, vous pouvez utiliser un caractère générique, ce qui peut vous faire économiser du travail si vous souhaitez réutiliser le même IAM rôle pour plusieurs utilisateurs et secrets. Par exemple, l'instruction de ressource suivante accorde des autorisations pour tous les secrets dont le nom commence paraws/transfer
.
"Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/*"
Vous pouvez également stocker des secrets contenant vos SFTP informations d'identification dans un autre Compte AWS. Pour plus de détails sur l'activation de l'accès secret entre comptes, voir Autorisations relatives aux AWS Secrets Manager secrets pour les utilisateurs d'un autre compte.
-
(Facultatif) Choisissez le IAM rôle que le connecteur doit utiliser pour transférer des événements vers vos CloudWatch journaux. L'exemple de politique suivant répertorie les autorisations nécessaires pour consigner les événements des SFTP connecteurs.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "SFTPConnectorPermissions",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:DescribeLogStreams",
"logs:CreateLogGroup",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/transfer/*"
]
}]
}
-
Fournissez les informations SFTP de configuration suivantes.
-
Le secret AWS Secrets Manager contenant ARN la clé privée ou le mot de passe de l'SFTPutilisateur.
-
Partie publique de la clé d'hôte utilisée pour identifier le serveur externe. Vous pouvez fournir plusieurs clés d'hôte fiables si vous le souhaitez.
Le moyen le plus simple de fournir les SFTP informations est de les enregistrer dans un fichier. Par exemple, copiez le texte d'exemple suivant dans un fichier nommétestSFTPConfig.json
.
// Listing for testSFTPConfig.json
{
"UserSecretId": "arn:aws::secretsmanager:us-east-2
:123456789012
:secret:aws/transfer/example-username-key
",
"TrustedHostKeys": [
"sftp.example.com ssh-rsa AAAAbbbb...EEEE=
"
]
}
Il SecretId
peut s'agir de l'intégralité ARN ou du nom du secret (example-username-key
dans la liste précédente).
Exécutez ensuite la commande suivante pour créer le connecteur.
aws transfer create-connector --url "sftp://partner-SFTP-server-url
" \
--access-role your-IAM-role-for-bucket-access
\
--logging-role arn:aws:iam::your-account-id
:role/service-role/AWSTransferLoggingAccess \
--sftp-config file:///path/to
/testSFTPConfig.json
SFTPalgorithmes de connexion
Lorsque vous créez un SFTP connecteur, les algorithmes de sécurité suivants sont attachés au connecteur.
Type |
Algorithm |
SSHchiffrer |
aes256-gcm@openssh.com
aes128-gcm@openssh.com
aes256-ctr
aes192-ctr |
SSHméthode d'échange de clés (KEX) |
curve25519-sha256
curve25519-sha256@libssh.org
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
diffie-hellman-group-exchange-sha256
|
SSH MAC |
hmac-sha2-512-etm@openssh.com
hmac-sha2-256-etm@openssh.com
hmac-sha2-512
hmac-sha2-256 |
SSHclé d'hôte |
ecdsa-sha2-nistp255
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256 |
Stockez un secret à utiliser avec un SFTP connecteur
Vous pouvez utiliser Secrets Manager pour stocker les informations d'identification utilisateur de vos SFTP connecteurs. Lorsque vous créez votre secret, vous devez fournir un nom d'utilisateur. En outre, vous pouvez fournir un mot de passe, une clé privée ou les deux. Pour plus de détails, consultez Quotas pour les SFTP connecteurs.
Lorsque vous stockez des secrets dans Secrets Manager, des frais Compte AWS vous sont facturés. Pour plus d’informations sur la tarification, consultez Tarification AWS Secrets Manager.
Pour stocker les informations d'identification utilisateur dans le Gestionnaire des Secrets Manager d'un SFTP connecteur
-
Connectez-vous à la AWS Secrets Manager console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/secretsmanager/.
-
Dans le volet de navigation de gauche, choisissez Secrets.
-
Sur la page Secrets, choisissez Enregistrer un nouveau secret.
-
Sur la page Choisir un type de secret, pour Type de secret, choisissez Autre type de secret.
-
Dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.
-
Si vous souhaitez fournir un mot de passe, choisissez Ajouter une ligne, puis dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.
Choisissez Ajouter une ligne, puis dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.
-
Si vous souhaitez fournir une clé privée, consultezGénération et SFTP formatage de la clé privée du connecteur, qui décrit comment saisir des données de clé privée.
Les données de clé privée que vous entrez doivent correspondre à la clé publique enregistrée pour cet utilisateur sur le SFTP serveur distant.
-
Choisissez Suivant.
-
Sur la page Configurer le secret, entrez le nom et la description de votre secret. Nous vous recommandons d'utiliser le préfixe de aws/transfer/
pour le nom. Par exemple, vous pourriez donner un nom à votre secretaws/transfer/connector-1
.
-
Choisissez Next, puis acceptez les valeurs par défaut sur la page Configurer la rotation. Ensuite, sélectionnez Suivant.
-
Sur la page Révision, choisissez Store pour créer et stocker le secret.
Les détails complets relatifs à la génération d'une paire de clés publique/privée sont décrits dans. Création de SSH clés sous macOS, Linux ou Unix
Par exemple, pour générer une clé privée à utiliser avec des SFTP connecteurs, l'exemple de commande suivant produit le type de clé correct (remplacez key_name
avec le nom de fichier réel de votre paire de clés) :
ssh-keygen -t rsa -b 4096 -m PEM -f key_name
-N ""
Lorsque vous créez votre paire de clés à utiliser avec des SFTP connecteurs, n'utilisez pas de phrase secrète. Un mot de passe vide est nécessaire pour que la SFTP configuration fonctionne correctement.
Cette commande crée une paire de RSA clés d'une taille de 4 096 bits. La clé est générée dans le PEM format existant, qui est requis par Transfer Family pour être utilisée avec le secret du SFTP connecteur. Les clés sont enregistrées dans key_name
(clé privée) et key_name
.pub
(clé publique) dans le répertoire courant, c'est-à-dire le répertoire dans lequel vous exécutez la ssh-keygen
commande.
Transfer Family ne prend pas en charge le SSH format Open (-----BEGIN OPENSSH PRIVATE
KEY-----
) pour les clés utilisées pour votre SFTP connecteur. La clé doit être au PEM format existant (-----BEGIN RSA PRIVATE
KEY-----
ou-----BEGIN EC PRIVATE KEY-----
). Vous pouvez utiliser l'ssh-keygenoutil pour convertir votre clé en fournissant l'-m PEM
option lorsque vous exécutez la commande.
Après avoir généré la clé, vous devez vous assurer que la clé privée est formatée avec des caractères de nouvelle ligne incorporés (»\n«) dans le format. JSON
Utilisez une commande pour convertir votre clé privée existante dans le bon format, c'est-à-dire avec des caractères de nouvelle ligne intégrés. JSON Nous fournissons ici des exemples pour jq
Powershell. Vous pouvez utiliser n'importe quel outil ou commande pour convertir la clé privée au JSON format avec des caractères de nouvelle ligne incorporés.
- jq command
Cet exemple utilise la jq
commande, qui est téléchargeable depuis Download jq.
jq -sR . path-to-private-key-file
Par exemple, si votre fichier de clé privée se trouve dans~/.ssh/my_private_key
, la commande est la suivante.
jq -sR . ~/.ssh/my_private_key
Cela affiche la clé dans le format correct (avec des caractères de nouvelle ligne intégrés) sur la sortie standard.
- PowerShell
-
Si vous utilisez Windows, vous pouvez l'utiliser PowerShell pour convertir la clé au bon format. La commande Powershell suivante convertit la clé privée au format correct.
Get-Content -Raw path-to-private-key-file
| ConvertTo-Json
Pour ajouter des données de clé privée au secret à utiliser avec des SFTP connecteurs
-
Dans la console Secrets Manager, lorsque vous stockez un autre type de secret, choisissez l'onglet Plaintext. Le texte doit être vide, avec uniquement une accolade d'ouverture et de fermeture, {}.
-
Collez votre nom d'utilisateur, les données de votre clé privée et/ou votre mot de passe en utilisant le format suivant. Pour les données de votre clé privée, collez le résultat de la commande que vous avez exécutée à l'étape 1.
{"Username":"SFTP-USER
","Password":"SFTP-USER-PASSWORD
","PrivateKey":"PASTE-PRIVATE-KEY-DATA-HERE
"}
Si vous collez correctement les données de la clé privée, vous devriez voir ce qui suit lorsque vous sélectionnez l'onglet Clé/valeur. Notez que les données de la clé privée sont affichées line-by-line, plutôt que sous forme de chaîne de texte continue.
-
Continuez la procédure Stockez un secret à utiliser avec un SFTP connecteur à l'étape 8 et suivez cette procédure jusqu'à la fin.
Tester un SFTP connecteur
Après avoir créé un SFTP connecteur, nous vous recommandons de le tester avant de tenter de transférer des fichiers à l'aide de votre nouveau connecteur.
Le système renvoie un message indiquant si le test est réussi ou non. Si le test échoue, le système affiche un message d'erreur basé sur la raison de l'échec du test.
Pour API tester votre connecteur, consultez le TestConnectionAPIdocumentation.