S'authentifier à l'aide de clés publiques SSH

Les utilisateurs et les comptes de service peuvent utiliser des clés publiques SSH pour s'authentifier auprès des dépôts Secure Source Manager. Cette page explique comment générer une paire de clés SSH, puis l'ajouter en tant que méthode d'authentification dans l'interface Web Secure Source Manager.

Secure Source Manager est compatible avec les types de clés SSH RSA, ECDSA et Ed25519.

Rôles requis

Pour obtenir les autorisations nécessaires pour vous authentifier à l'aide de clés publiques SSH, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour s'authentifier à l'aide de clés publiques SSH. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour vous authentifier à l'aide de clés publiques SSH :

  • securesourcemanager.sshkeys.createAny sur l'instance Secure Source Manager
  • Pour attribuer une clé SSH à un compte de service : iam.serviceAccounts.actAs sur le compte de service

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

Pour savoir comment accorder des rôles Secure Source Manager, consultez Contrôle des accès avec IAM et Accorder aux utilisateurs l'accès à l'instance.

Générer une paire de clés

Une paire de clés SSH comprend une clé privée stockée sur votre système local et une clé publique que vous enregistrez à l'aide de Google Cloud.

Linux ou macOS

  1. Installez OpenSSH sur votre système local.

  2. Lorsque vous y êtes invité, saisissez la commande suivante :

    ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
    

    Où :

    • [USER_EMAIL] est votre adresse e-mail.
    • [KEY_TYPE] correspond aux rsa, ecdsa ou ed25519.

    Exemple :

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Lorsque vous y êtes invité, saisissez un emplacement et un nom de fichier pour le fichier de clé publique. Pour accepter l'emplacement et le nom de fichier par défaut, appuyez sur Entrée.

    2. Lorsque vous y êtes invité, laissez la phrase secrète vide et appuyez sur Entrée.

Windows

  1. Installez PuTTY sur votre système local.

  2. Dans le menu Démarrer de Windows, démarrez PuTTYGen.

  3. Dans la fenêtre qui s'affiche, sélectionnez le type de clé dans le champ Paramètres.

  4. Cliquez sur Generate (Générer).

    PuTTYGen affiche la chaîne de clé publique générée.

  5. Lorsque vous y êtes invité, laissez la phrase secrète vide et appuyez sur Entrée.

  6. Cliquez sur Enregistrer la clé publique et Enregistrer la clé privée pour enregistrer la paire de clés générée sur votre système local.

Ajouter des clés SSH pour les utilisateurs

  1. Dans l'interface Web Secure Source Manager, sur la page de l'instance ou du dépôt, cliquez sur le menu Plus d'options.
  2. Cliquez sur Clés SSH utilisateur.

    La page Clés SSH de l'utilisateur s'ouvre et affiche la liste des clés que vous avez déjà créées.

  3. Sur la page Clés SSH de l'utilisateur, cliquez sur Ajouter une clé.

  4. Sur la page Add SSH Key (Ajouter une clé SSH), saisissez les valeurs suivantes pour votre clé :

    1. Titre : ajoutez un titre descriptif pour la clé.
    2. Clé publique SSH : collez la chaîne de votre clé publique. Pour obtenir votre chaîne de clé publique, exécutez la commande suivante :
    cat ~/.ssh/FILENAME.pub
    

    FILENAME est le nom que vous avez donné au fichier de clé.

Vous pouvez utiliser des clés SSH pour vous authentifier auprès de n'importe quel dépôt Secure Source Manager, à condition de disposer des autorisations nécessaires pour ce dépôt.

Ajouter des clés SSH pour les comptes de service

Pour autoriser l'accès programmatique à votre dépôt, vous pouvez ajouter une clé SSH pour un compte de service.

  1. Si vous ne disposez pas encore d'un compte de service que vous souhaitez utiliser, créez-en un.
  2. Dans l'interface Web Secure Source Manager, cliquez sur le menu Plus d'options.
  3. Cliquez sur Clés SSH du compte de service. La page Clés SSH du compte de service s'ouvre et affiche la liste des clés existantes que vous avez ajoutées.
  4. Sur la page Clés SSH du compte de service, cliquez sur Ajouter une clé.
  5. Sur la page Ajouter une clé SSH de compte de service, saisissez les valeurs suivantes pour votre clé :

    1. Title : titre descriptif de la clé
    2. Compte de service : adresse e-mail du compte de service pour lequel vous souhaitez utiliser la clé SSH, au format SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

      • SA_NAME correspond au nom du compte de service.
      • PROJECT_ID correspond à l'ID du projet dans lequel le compte de service a été créé.
    3. Clé publique SSH : votre clé publique SSH. Pour savoir comment générer une paire de clés SSH, consultez Générer une paire de clés.

  6. Si le compte de service ne se trouve pas dans le même projet que votre instance Secure Source Manager, accordez à l'agent de service Secure Source Manager l'un des rôles ou autorisations suivants sur le compte de service que vous souhaitez utiliser :

    • Autorisation iam.serviceAccounts.signJwt
    • Rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator)

    Exécutez la commande suivante pour ajouter une stratégie IAM à votre compte de service Secure Source Manager afin de lui accorder le rôle de créateur de jetons du compte de service.

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
        --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    SERVICE_ACCOUNT est le compte de service que vous souhaitez utiliser et INSTANCE_PROJECT_NUMBER est le numéro de projet de votre instance Secure Source Manager.

    SERVICE_ACCOUNT doit être au format d'un ID de compte de service numérique ou d'une adresse e-mail, comme suit : 123456789876543212345 ou my-iam-account@somedomain.com.

Étapes suivantes