Créer un serveur SFTP interne

Ce document explique comment créer un serveur SFTP interne à l'aide de Cloud FTP. Un serveur SFTP interne n'est accessible que dans votre réseau de cloud privé virtuel (VPC) à l'aide de Private Service Connect. Les employés et les parties prenantes internes qui font partie de votre réseau peuvent utiliser le serveur pour transférer des fichiers vers et depuis Cloud Storage de manière sécurisée.

Vous spécifiez les projets autorisés à se connecter au serveur. Vous pouvez éventuellement spécifier les projets dont la connexion est refusée.

Pour obtenir des informations générales sur le VPC, consultez la présentation du VPC.

Pour savoir comment créer un serveur externe accessible via Internet, consultez Créer un serveur SFTP externe. Une fois le serveur créé, vous ne pouvez plus modifier son type (externe ou interne).

Avant de commencer

Console

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  10. Recueillez les informations suivantes sur les utilisateurs de votre serveur :

    • Liste des ID ou numéros de projet autorisés à accéder au serveur.
    • (Facultatif) Liste des ID ou numéros de projet dont l'accès au serveur est refusé.

gcloud

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. Installez la Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  6. Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  8. Activez l'API Cloud FTP :

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable ftp.googleapis.com
  9. Installez la Google Cloud CLI.

  10. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  11. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  12. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  13. Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.

  14. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  15. Activez l'API Cloud FTP :

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable ftp.googleapis.com
  16. Recueillez les informations suivantes sur les utilisateurs de votre serveur :

    • Liste des ID ou numéros de projet autorisés à accéder au serveur.
    • (Facultatif) Liste des ID ou numéros de projet dont l'accès au serveur est refusé.

Rôles requis

Pour obtenir l'autorisation nécessaire pour créer un serveur SFTP, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud FTP (roles/ftp.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation ftp.servers.create, qui est nécessaire pour créer un serveur SFTP.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un serveur interne

Console

  1. Dans la console Google Cloud , accédez à la page Cloud FTP.

    Accéder à Cloud FTP

  2. Cliquez sur Créer un serveur.

  3. Dans l'onglet Configuration du serveur, saisissez les informations de base concernant le serveur :

    1. Dans le champ ID du serveur, saisissez un ID unique pour le serveur.

    2. Dans la liste Région, sélectionnez l'emplacement duGoogle Cloud pour le serveur.

      Pour des vitesses de transfert de données optimales, créez le serveur au même emplacement que le bucket Cloud Storage qui stocke vos données. Si l'emplacement du bucket n'est pas compatible avec Cloud FTP, sélectionnez l'emplacement disponible le plus proche.

    3. (Facultatif) Saisissez un nom à afficher pour le serveur.

    4. Cliquez sur Continuer.

  4. Dans l'onglet Mise en réseau et sécurité, configurez la connectivité du serveur :

    1. Sélectionnez Interne (VPC uniquement).

    2. Dans la section Projets acceptés, spécifiez les projets clients autorisés à se connecter au serveur à l'aide de Private Service Connect. Procédez comme suit :

      1. Dans le champ Projet, saisissez l'ID du projet ou le numéro d'un projet autorisé à se connecter. Exemple : example-allowed-project.

      2. Dans le champ Limite de connexion, saisissez le nombre maximal de points de terminaison Private Service Connect pouvant être créés dans le projet client. La valeur doit être comprise entre 1 et 250 points de terminaison.

      3. Pour ajouter d'autres projets, cliquez sur Ajouter un projet accepté, puis répétez les étapes précédentes.

    3. (Facultatif) Pour interdire à des projets de se connecter au serveur, dans la section Projets refusés, cliquez sur Ajouter un projet refusé. Saisissez l'ID du projet ou le numéro d'un projet client qui n'est pas autorisé à se connecter au serveur.

      Les projets de cette liste ne peuvent pas accéder au serveur, même s'ils figurent dans la liste des projets autorisés.

  5. Cliquez sur Créer.

    La création du serveur prend environ 10 minutes.

gcloud

Pour créer un serveur interne, exécutez la commande gcloud alpha storage ftp servers create et fournissez l'option --access-type=INTERNAL.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • SERVER_ID : ID unique du serveur. Doit commencer par une lettre minuscule et se terminer par une lettre minuscule ou un chiffre. Peut contenir des lettres minuscules, des chiffres et des traits d'union. Ne doit pas dépasser 30 caractères
  • LOCATION_ID : emplacementGoogle Cloud du serveur, par exemple us-west1.

    Pour des vitesses de transfert de données optimales, créez le serveur au même emplacement que le bucket Cloud Storage qui stocke vos données. Si l'emplacement du bucket n'est pas compatible avec Cloud FTP, sélectionnez l'emplacement disponible le plus proche.

  • PROJECT_TO_ALLOW : ID du projet ou numéro d'un projet client autorisé à se connecter au serveur à l'aide de Private Service Connect. Par exemple, example-allowed-project. Vous devez spécifier au moins un projet.

    Vous pouvez autoriser jusqu'à 500 projets. Indiquez plusieurs projets et leurs limites de connexion respectives dans une liste séparée par des virgules. Par exemple : --consumer-accept-list=projectA=20,projectB=15

  • CONNECTION_LIMIT : nombre maximal de points de terminaison Private Service Connect pouvant être créés dans le projet consommateur. La valeur doit être comprise entre 1 et 250 points de terminaison.
  • (Facultatif) PROJECT_TO_REJECT : ID ou numéro d'un projet client qui n'est pas autorisé à se connecter au serveur. Exemple :example-rejected-project Les projets de cette liste ne peuvent pas accéder au serveur, même s'ils figurent dans la liste des projets autorisés.

    Vous pouvez refuser au maximum 64 projets. Fournissez plusieurs projets dans une liste séparée par des virgules.

    Si vous ne souhaitez pas refuser explicitement de projets, omettez l'option --consumer-reject-list.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL \
    --location=LOCATION_ID \
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (PowerShell)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL `
    --location=LOCATION_ID `
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT `
    --consumer-reject-list=PROJECT_TO_REJECT

Windows (cmd.exe)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ^
    --location=LOCATION_ID ^
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^
    --consumer-reject-list=PROJECT_TO_REJECT

La création du serveur prend environ 10 minutes.

REST

Pour créer un serveur interne, utilisez la méthode servers.create et fournissez une configuration d'accès internalConfig.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID Google Cloud du projet du serveur.
  • LOCATION_ID : emplacementGoogle Cloud du serveur, par exemple us-west1.

    Pour des vitesses de transfert de données optimales, créez le serveur au même emplacement que le bucket Cloud Storage qui stocke vos données. Si l'emplacement du bucket n'est pas compatible avec Cloud FTP, sélectionnez l'emplacement disponible le plus proche.

  • SERVER_ID : ID unique du serveur. Doit commencer par une lettre minuscule et se terminer par une lettre minuscule ou un chiffre. Peut contenir des lettres minuscules, des chiffres et des traits d'union. Ne doit pas dépasser 30 caractères
  • PROJECT_TO_ALLOW : ID du projet ou numéro d'un projet client autorisé à se connecter au serveur à l'aide de Private Service Connect. Par exemple, example-allowed-project. Vous devez spécifier au moins un projet.

    Vous pouvez autoriser jusqu'à 500 projets.

  • CONNECTION_LIMIT : nombre maximal de points de terminaison Private Service Connect pouvant être créés dans le projet consommateur. La valeur doit être comprise entre 1 et 250 points de terminaison.
  • (Facultatif) PROJECT_TO_REJECT : ID ou numéro d'un projet client qui n'est pas autorisé à se connecter au serveur. Exemple :example-rejected-project Les projets de cette liste ne peuvent pas accéder au serveur, même s'ils figurent dans la liste des projets autorisés.

    Vous pouvez refuser au maximum 64 projets.

    Si vous ne souhaitez pas refuser explicitement de projets, omettez l'objet consumerRejectList.

Méthode HTTP et URL :

POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID

Corps JSON de la requête :

{
  "accessType": "INTERNAL",
  "internalConfig": {
    "consumerAcceptList": [
      {
        "project": "projects/PROJECT_TO_ALLOW",
        "connectionLimit": CONNECTION_LIMIT
      }
    ],
    "consumerRejectList": [
      {
        "project": "projects/PROJECT_TO_REJECT"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse identifie une opération de longue durée.

La création du serveur prend environ 10 minutes.

Étapes suivantes