Skip to main content

Protección de las credenciales de API

Sigue estos procedimientos recomendados para proteger las credenciales de API y los tokens.

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.

  • Para usar la API para uso personal, puede crear un personal access token.
  • Para usar la API en nombre de una organización u otro usuario, debe crear un GitHub App.
  • Para usar la API en un GitHub Actions flujo de trabajo, debe autenticarse usando el autenticador integrado GITHUB_TOKEN.

Para más información, consulta Acerca de la autenticación para GitHub.

Limite los permisos de sus credenciales

Al crear un personal access token, seleccione solo los permisos o ámbitos mínimos necesarios y establezca una fecha de expiración para la cantidad mínima de tiempo que tendrá 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 un GitHub App, seleccione los permisos mínimos que GitHub App necesitará. Para más información, consulta Procedimientos recomendados para crear una aplicación de GitHub.

Al autenticarse con GITHUB_TOKEN en un GitHub Actions flujo de trabajo, solo proporcione la cantidad mínima de permisos necesarios. Para más información, consulta Uso de GITHUB_TOKEN para la autenticación en flujos de trabajo.

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.

Limitación de quién puede acceder a las credenciales de autenticación

No compartas tu personal access token con otros. En lugar de compartir un personal access token, considere la posibilidad de crear un GitHub App. Para más información, consulta Acerca de la creación de aplicaciones de GitHub.

Si necesitas compartir credenciales con un equipo, almacénalas en un sistema compartido seguro. Por ejemplo, puede almacenar y compartir contraseñas de forma segura mediante 1Password, o bien puede almacenar claves en Azure KeyVault y administrar el acceso con su IAM (administración de identidades y acceso).

Si va a crear un GitHub Actions flujo de trabajo que necesite acceder a la API, puede almacenar las credenciales en un secreto cifrado y acceder al secreto cifrado 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 GitHub Actions.

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, considere la posibilidad de usar un administrador de secretos como Azure Key Vault o HashiCorp Vault. Para obtener más información sobre cómo proteger GitHub App las credenciales, consulte Procedimientos recomendados para crear una aplicación de GitHub.

Si encuentra el personal access token de otro usuario expuesto en GitHub o en otro lugar, puede enviar una solicitud de revocación a través de la API REST. Consulta Revocación.

          personal access token en un script, considere almacenar su token como un GitHub Actions secreto y ejecutar su script a través de GitHub Actions. También puede almacenar el token como un secreto de Codespaces y ejecutar el script en Codespaces. Para obtener más información, consulte [AUTOTITLE](/actions/security-guides/encrypted-secrets) y [AUTOTITLE](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-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 filtren tus tokens u otras credenciales de autenticación, necesitará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 obtener información sobre la rotación de credenciales comprometidas para GitHub App, vea Procedimientos recomendados para crear una aplicación de GitHub.

Para obtener información sobre cómo crear y eliminar personal access tokens, consulte Administración de tokens de acceso personal.