Selección de un método de autenticación adecuado
Debes elegir un método de autenticación adecuado para la tarea que quieres realizar.
- Si quieres hacer uso personal de la API, puedes crear un personal access token.
- Si quieres usar la API en nombre de una organización u otro usuario, debes crear una instancia de GitHub App.
- Para usar la API en un flujo de trabajo de GitHub Actions, debes autenticarte con el elemento integrado
GITHUB_TOKEN
.
Para más información, consulta Acerca de la autenticación en GitHub.
Limitación de los permisos de las credenciales
Al crear un personal access token, selecciona solo los permisos o ámbitos mínimos necesarios y establece una fecha de expiración por la cantidad mínima de tiempo que tendrás que usar el token. GitHub recomienda usar fine-grained personal access tokens en lugar de personal access tokens (classic). Para más información, consulta Administración de tokens de acceso personal.
Un token tiene las mismas funcionalidades para acceder a los recursos y realizar acciones en esos recursos que las que tiene el propietario del token, y está limitado aún más por los ámbitos o permisos que se le hayan concedido. Un token no puede conceder funcionalidades de acceso adicionales a un usuario.
Al crear una instancia de GitHub App, selecciona los permisos mínimos que necesitará tu instancia de GitHub App. Para más información, consulta Procedimientos recomendados para crear una aplicación de GitHub.
Al autenticarte con GITHUB_TOKEN
en un flujo de trabajo de GitHub Actions, solo proporciona la cantidad mínima de permisos necesarios. Para más información, consulta Autenticación automática de tokens.
Almacenamiento de las credenciales de autenticación de forma segura
Trata las credenciales de autenticación de la misma manera que lo harías con las contraseñas u otras credenciales confidenciales.
- No compartas las credenciales de autenticación mediante un sistema de correo electrónico o mensajería sin cifrar.
- No pases tu personal access token como texto sin formato en la línea de comandos. Para más información, consulta Administración de tokens de acceso personal.
- No insertes credenciales de autenticación sin cifrar (como tokens o claves) en cualquier repositorio, incluso si el repositorio es privado. En su lugar, considera la posibilidad de usar un secreto de GitHub Actions o secreto de Codespaces. Para más información, consulta Uso de secretos en Acciones de GitHub y Administración de secretos específicos de la cuenta para GitHub Codespaces.
- Puedes usar el examen de secretos para detectar tokens, claves privadas y otros secretos que se insertaron en un repositorio o para bloquear futuras inserciones que contienen secretos. Para más información, consulta Acerca del examen de secretos.
Limitación de quién puede acceder a las credenciales de autenticación
No compartas tus personal access token con otras personas. En lugar de compartir un personal access token, podrías crear una instancia de GitHub App. Para más información, consulta Acerca de la creación de GitHub Apps.
Si necesitas compartir credenciales con un equipo, almacénalas en un sistema compartido seguro. Por ejemplo, puedes almacenar y compartir contraseñas de forma segura mediante 1Password, o bien puedes almacenar claves en Azure KeyVault y administrar el acceso con tu IAM (administración de identidades y acceso).
Si vas a crear un flujo de trabajo de GitHub Actions que necesite acceder a la API, puedes almacenar las credenciales en un secreto cifrado y acceder a este desde el flujo de trabajo. Para más información, consulta Uso de secretos en Acciones de GitHub y Realización de solicitudes de API autenticadas con una aplicación de GitHub en un flujo de trabajo de Acciones de GitHub.
Uso de credenciales de autenticación de forma segura en el código
Nunca codifiques de forma rígida credenciales de autenticación como tokens, claves o secretos relacionados con la aplicación en el código. En su lugar, considera el uso de un administrador de secretos, como Azure Key Vault o HashiCorp Vault. Para más información sobre cómo proteger las credenciales de GitHub App, consulta Procedimientos recomendados para crear una aplicación de GitHub.
Al usar un personal access token en un script, podrías almacenar el token como un secreto de GitHub Actions y ejecutar el script mediante GitHub Actions. También puedes almacenar el token como un secreto de Codespaces y ejecutar el script en Codespaces. Para más información, consulta Uso de secretos en Acciones de GitHub y Administración de secretos específicos de la cuenta para GitHub Codespaces.
Si ninguna de estas opciones es posible, puedes almacenar las credenciales de autenticación en un archivo .env
. Asegúrate de cifrar el archivo .env
y nunca lo insertes en ningún repositorio.
Preparación de un plan de corrección
Debes disponer de un plan para controlar las infracciones de seguridad de forma oportuna. En caso de que se filtre el token u otra credencial de autenticación, deberás hacer lo siguiente:
- Generar una nueva credencial.
- Reemplazar la credencial antigua por la nueva en todos los lugares donde almacenes la credencial o accedas a ella.
- Eliminar la credencial comprometida antigua.
Para información sobre la rotación de credenciales comprometidas para una instancia de GitHub App, consulta Procedimientos recomendados para crear una aplicación de GitHub.
Para más información sobre la creación y la eliminación de un personal access token, consulta Administración de tokens de acceso personal.