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 comme méthode d'authentification dans l'interface Web de Secure Source Manager.
Secure Source Manager accepte 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 ajouter une clé SSH pour un utilisateur :
Accesseur d'instances Secure Source Manager (
roles/securesourcemanager.instanceAccessor) sur l'instance Secure Source Manager -
Pour ajouter une clé SSH pour un compte de service :
- Gestionnaire d'instances Secure Source Manager (
roles/securesourcemanager.instanceManager) sur l'instance Secure Source Manager - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service
- Gestionnaire d'instances Secure Source Manager (
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.createAnysur l'instance Secure Source Manager -
Pour attribuer une clé SSH à un compte de service:
iam.serviceAccounts.actAssur 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 en savoir plus sur l'attribution de rôles Secure Source Manager, consultez Contrôle des accès avec IAM et Accorder aux utilisateurs l'accès à une 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 Google Cloud.
Linux ou macOS
Installez OpenSSH sur votre système local.
À l'invite de commande, 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,ecdsaoued25519.
Exemple :
ssh-keygen -t rsa -C "user@example.com"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.
Lorsque vous y êtes invité, laissez la phrase secrète vide et appuyez sur Entrée.
Windows
Si vous ne l'avez pas déjà fait, installez le client OpenSSH (inclus dans Windows 10 et versions ultérieures) et Git pour Windows sur votre système local. Les instructions suivantes utilisent OpenSSH et Git pour Windows.
Dans PowerShell ou une invite de commande, exécutez la commande suivante :
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Où :
- USER_EMAIL est votre adresse e-mail.
- KEY_TYPE correspond aux
rsa,ecdsaoued25519.
Exemple :
ssh-keygen -t rsa -C "user@example.com"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 (`%USERPROFILE%.ssh`), appuyez sur Entrée.
Lorsque vous y êtes invité, laissez la phrase secrète vide et appuyez sur Entrée.
Ajouter une clé SSH à l'agent SSH
Pour utiliser la paire de clés SSH que vous avez générée, ajoutez votre clé à l'agent SSH. Si vous n'avez pas enregistré votre clé à l'emplacement par défaut, l'ajouter à l'agent SSH permet à SSH de la localiser.
Linux ou macOS
Démarrez
ssh-agenten arrière-plan :eval "$(ssh-agent -s)"La commande renvoie l'ID de processus de l'agent (PID), par exemple :
Agent pid 3245Selon votre environnement, vous devrez peut-être utiliser une autre commande, par exemple :
- Pour utiliser l'accès racine, exécutez
sudo -s -Havant de démarrerssh-agent. - Pour exécuter
ssh-agentdirectement, utilisezexec ssh-agent bashouexec ssh-agent zsh.
- Pour utiliser l'accès racine, exécutez
Ajoutez votre clé privée SSH à
ssh-agent.ssh-add ~/.ssh/FILENAMEOù
FILENAMEcorrespond au nom de votre fichier de clé privée, par exempleid_rsaouid_ed25519.
Windows
Démarrez
ssh-agent.Si vous utilisez Git Bash, démarrez
ssh-agent:eval "$(ssh-agent -s)"Si vous utilisez PowerShell ou une invite de commande, démarrez le service
ssh-agent. Dans PowerShell, exécutez :Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Ajoutez votre clé privée SSH à
ssh-agent.Si vous utilisez Git Bash :
ssh-add ~/.ssh/FILENAMESi vous utilisez PowerShell ou une invite de commande :
ssh-add $env:USERPROFILE\.ssh\FILENAME
Où
FILENAMEcorrespond au nom de votre fichier de clé privée, par exempleid_rsaouid_ed25519.
Ajouter des clés SSH pour les utilisateurs
- Dans l'interface Web de Secure Source Manager, sur la page de l'instance ou du dépôt, cliquez sur le menu Plus d'options.
Cliquez sur Clés SSH de l'utilisateur.
La page Clés SSH de l'utilisateur s'ouvre et affiche la liste des clés existantes que vous avez créées.
Sur la page Clés SSH de l'utilisateur, cliquez sur Ajouter une clé.
Sur la page Ajouter une clé SSH, saisissez les valeurs suivantes pour votre clé :
- Titre : ajoutez un titre descriptif pour la clé.
Clé publique SSH : collez votre chaîne de clé publique. Pour obtenir votre chaîne de clé publique, ouvrez le fichier de clé publique (
FILENAME.pub) dans un éditeur de texte ou exécutez l'une des commandes suivantes :Linux ou macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubRemplacez
FILENAMEpar le nom de votre 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 sur 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.
- Si vous ne disposez pas déjà d'un compte de service que vous souhaitez utiliser, créez-en un.
- Dans l'interface Web de Secure Source Manager, cliquez sur le menu Plus d'options.
- 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.
- Sur la page Clés SSH du compte de service, cliquez sur Ajouter une clé.
Sur la page Ajouter une clé SSH du compte de service, saisissez les valeurs suivantes pour votre clé :
- Titre : titre descriptif de la clé
Compte de service : adresse e-mail du compte de service que vous souhaitez utiliser pour la clé SSH au format
SA_NAME@PROJECT_ID.iam.gserviceaccount.comOù :
SA_NAMEcorrespond au nom du compte de service.PROJECT_IDcorrespond à l'ID du projet dans lequel le compte de service a été créé.
Clé publique SSH : votre clé SSH publique. Pour savoir comment générer une paire de clés SSH, consultez Générer une paire de clés.
Si le compte de service ne se trouve pas dans le même projet que votre instance Secure Source Manager, attribuez à l'agent de service de 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 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"Où SERVICE_ACCOUNT correspond au compte de service que vous souhaitez utiliser et INSTANCE_PROJECT_NUMBER correspond au numéro de projet de votre instance Secure Source Manager.
Le 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.
- Autorisation