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.

  • 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 obtener más información, vea «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 obtener más información, vea «Administración de tokens de acceso personal».

Al crear una instancia de GitHub App, selecciona los permisos mínimos que necesitará tu instancia de GitHub App. Para obtener más información, vea «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 obtener más información, vea «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 obtener más información, vea «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 obtener más información, vea «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 obtener más información, vea «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 obtener 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".