Los usuarios y las cuentas de servicio pueden usar claves públicas SSH para autenticarse en los repositorios de Secure Source Manager. En esta página, se describe cómo generar un par de claves SSH y, luego, agregarlo como método de autenticación en la interfaz web de Secure Source Manager.
Secure Source Manager admite los tipos de claves SSH RSA, ECDSA y Ed25519.
Roles requeridos
Para obtener los permisos que necesitas para autenticarte con claves públicas SSH, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para agregar una clave SSH para un usuario, haz lo siguiente:
Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor
) en la instancia de Secure Source Manager -
Para agregar una clave SSH para una cuenta de servicio, haz lo siguiente:
-
Administrador de instancias de Secure Source Manager (
roles/securesourcemanager.instanceManager
) en la instancia de Secure Source Manager -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio
-
Administrador de instancias de Secure Source Manager (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para autenticarse con claves públicas SSH. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para autenticarse con claves públicas SSH:
-
securesourcemanager.sshkeys.createAny
-
Para asignar una clave SSH a una cuenta de servicio, haz lo siguiente:
iam.serviceAccounts.actAs
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Cómo otorgar acceso a la instancia a los usuarios.
Genera un par de claves
Un par de claves SSH consta de una clave privada que reside en tu sistema local y una clave pública que registras en Google Cloud.
Linux o macOS
Instala OpenSSH en tu sistema local.
En el símbolo del sistema, ingresa el siguiente comando:
ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
Donde:
[USER_EMAIL]
es tu dirección de correo electrónico.[KEY_TYPE]
: Es uno dersa
,ecdsa
oed25519
.
Por ejemplo:
ssh-keygen -t rsa -C "user@example.com"
Cuando se te solicite, ingresa una ubicación y un nombre de archivo para el archivo de clave pública. Para aceptar la ubicación y el nombre de archivo predeterminados, presiona Intro.
Cuando se te solicite, deja la frase de contraseña en blanco y presiona Intro.
Windows
Instala PuTTY en tu sistema local.
Inicia PuTTYGen desde el menú Inicio de Windows.
En la ventana que se abre, selecciona el tipo de clave en el campo Parameters.
Haz clic en Generate.
PuTTYGen muestra la string de clave pública generada.
Cuando se te solicite, deja la frase de contraseña en blanco y presiona Intro.
Para guardar el par de claves que generaste en tu sistema local, haz clic en Save public key y Save private key.
Agrega claves SSH para los usuarios
- En la interfaz web de Secure Source Manager, en la página de la instancia o el repositorio, haz clic en el menú más opciones.
Haz clic en User SSH keys.
Se abrirá la página Claves SSH del usuario, en la que se mostrará una lista de las claves existentes que hayas creado.
En la página Claves SSH del usuario, haz clic en Agregar clave.
En la página Agregar clave SSH, ingresa los siguientes valores para tu clave:
- Título: Agrega un título descriptivo para la clave.
- Clave pública SSH: Pega la cadena de tu clave pública. Para obtener tu cadena de clave pública, ejecuta el siguiente comando:
cat ~/.ssh/FILENAME.pub
En el ejemplo anterior,
FILENAME
es el nombre que le asignaste al archivo de claves.
Puedes usar claves SSH para autenticarte en cualquier repositorio de Secure Source Manager, siempre que tengas los permisos necesarios en ese repositorio.
Agrega claves SSH para cuentas de servicio
Para permitir el acceso programático a tu repositorio, puedes agregar una clave SSH para una cuenta de servicio.
- Si aún no tienes una cuenta de servicio que quieras usar, crea una.
- En la interfaz web de Secure Source Manager, haz clic en el menú más opciones.
- Haz clic en Llaves SSH de cuentas de servicio. Se abrirá la página Claves SSH de la cuenta de servicio, en la que se mostrará una lista de las claves existentes que agregaste.
- En la página Claves SSH de la cuenta de servicio, haz clic en Agregar clave.
En la página Agregar clave SSH de la cuenta de servicio, ingresa los siguientes valores para tu clave:
- Título: Un título descriptivo para la clave
Cuenta de servicio: Es el correo electrónico de la cuenta de servicio que deseas usar con la clave SSH en el formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Dónde
SA_NAME
es el nombre de la cuenta de servicio.PROJECT_ID
es el ID del proyecto en el que se creó la cuenta de servicio.
Clave pública SSH: Tu clave pública SSH. Consulta Genera un par de claves para obtener información sobre cómo generar un par de claves SSH.
Si la cuenta de servicio no está en el mismo proyecto que tu instancia de Secure Source Manager, otorga al agente de servicio de Secure Source Manager uno de los siguientes roles o permisos en la cuenta de servicio que deseas usar:
- Permiso
iam.serviceAccounts.signJwt
- Rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
)
Ejecuta el siguiente comando para agregar una política de IAM a tu cuenta de servicio de Secure Source Manager y otorgarle el rol de Creador de tokens de cuenta de servicio.
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"
Aquí, SERVICE_ACCOUNT es la cuenta de servicio que deseas usar y INSTANCE_PROJECT_NUMBER es el número de proyecto de tu instancia de Secure Source Manager.
El SERVICE_ACCOUNT debe tener el formato de un ID numérico de cuenta de servicio o de un correo electrónico, como 123456789876543212345 o my-iam-account@somedomain.com.
- Permiso