{"meta":{"title":"Autenticación de ARC en la API de GitHub","intro":"Autentíquese Actions Runner Controller con la GitHub API.","product":"GitHub Actions","breadcrumbs":[{"href":"/es/actions","title":"GitHub Actions"},{"href":"/es/actions/how-tos","title":"Procedimientos"},{"href":"/es/actions/how-tos/manage-runners","title":"Gestión de corredores"},{"href":"/es/actions/how-tos/manage-runners/use-actions-runner-controller","title":"Controlador del ejecutor de acciones"},{"href":"/es/actions/how-tos/manage-runners/use-actions-runner-controller/authenticate-to-the-api","title":"Autenticación en la API"}],"documentType":"article"},"body":"# Autenticación de ARC en la API de GitHub\n\nAutentíquese Actions Runner Controller con la GitHub API.\n\nPuede autenticar Actions Runner Controller (ARC) con la GitHub API mediante un GitHub App o mediante un personal access token (classic).\n\n> \\[!NOTE]\n> No se puede autenticar mediante un GitHub App para ejecutores en el nivel de empresa. Para obtener más información, vea [Administración del acceso a los ejecutores autohospedados mediante grupos](/es/actions/how-tos/manage-runners/self-hosted-runners/manage-access).\n\n## Autenticación de ARC con GitHub App\n\n1. Cree un GitHub App que pertenezca a una organización. Para obtener más información, vea [Registro de una aplicación de GitHub](/es/apps/creating-github-apps/registering-a-github-app/registering-a-github-app). Configure el GitHub App de la siguiente manera.\n\n   1. En \"Dirección URL de la página principal\", escribe `https://github.com/actions/actions-runner-controller`.\n\n   2. En \"Permisos\", haz clic en **Permisos de repositorio**. A continuación, usa los menús desplegables para seleccionar los siguientes permisos de acceso.\n      * **Administración**: lectura y escritura\n\n        > \\[!NOTE]\n\n`Administration: Read and write` solo es necesario al configurar Actions Runner Controller para registrarse en el ámbito del repositorio. No es necesario registrarse en el ámbito de la organización.\n\n```\n  * **Metadatos**: solo lectura\n```\n\n1. En \"Permisos\", haz clic en **Permisos de la organización**. A continuación, usa los menús desplegables para seleccionar los siguientes permisos de acceso.\n   * **Ejecutores autohospedados:** lectura y escritura\n\n2. Después de crear la GitHub App, en la página de la GitHub App, anota el valor de \"Identificador de aplicación\". Usarás este valor más adelante.\n\n3. En \"Claves privadas\", haz clic en **Generar una clave privada** y guarda el archivo `.pem`. Usarás esta clave más adelante.\n\n4. En el menú de la esquina superior izquierda de la página, haz clic en **Instalar aplicación** y, junto a tu organización, haz clic en **Instalar** para instalar la aplicación en la organización.\n\n5. Después de confirmar los permisos de instalación en la organización, anota el id. de instalación de la aplicación. Lo usarás más adelante. Puedes encontrar el id. de instalación de la aplicación en la página de instalación de la aplicación, que tiene el siguiente formato de dirección URL:\n\n   `https://github.com/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID`\n\n6. Registra el identificador de la aplicación, el identificador de instalación y el archivo de clave privada `.pem` descargado en Kubernetes como secreto en los pasos anteriores.\n\n   Para crear un secreto de Kubernetes con los valores de la GitHub App, ejecuta el comando siguiente.\n\n   > \\[!NOTE]\n   > Crea el secreto en el mismo espacio de nombres donde está instalado el gráfico `gha-runner-scale-set`. En este ejemplo, el espacio de nombres es `arc-runners` para que corresponda a la documentación de inicio rápido. Para más información, consulta [Comienza con Actions Runner Controller](/es/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set).\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_app_id=123456 \\\n      --from-literal=github_app_installation_id=654321 \\\n      --from-literal=github_app_private_key='-----BEGIN RSA PRIVATE KEY-----********'\n   ```\n\n   Después, usa la propiedad `githubConfigSecret` de tu copia del archivo [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) para pasar el nombre del secreto como referencia.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\nPara ver más opciones de configuración de Helm, consulta [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) en el repositorio de ARC.\n\n## Autenticación de ARC con personal access token (classic)\n\nARC puede usar personal access tokens (classic) para registrar ejecutores autohospedados.\n\n1. Cree un personal access token (classic) con los ámbitos necesarios. Los ámbitos necesarios son diferentes dependiendo de si va a registrar ejecutores en el nivel de repositorio u organización. Para obtener más información sobre cómo crear un personal access token (classic), vea [Administración de tokens de acceso personal](/es/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n   A continuación se muestra la lista de ámbitos necesarios personal access token para ejecutores de ARC.\n\n   * Procesadores del repositorio: `repo`\n   * Ejecutores de la organización: `admin:org`\n\n2. Para crear un secreto de Kubernetes con el valor de personal access token (classic), use el comando siguiente.\n\n   > \\[!NOTE]\n   > Crea el secreto en el mismo espacio de nombres donde está instalado el gráfico `gha-runner-scale-set`. En este ejemplo, el espacio de nombres es `arc-runners` para que corresponda a la documentación de inicio rápido. Para más información, consulta [Comienza con Actions Runner Controller](/es/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set).\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_token='YOUR-PAT'\n   ```\n\n3. En la copia del archivo [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), pase el nombre del secreto como referencia.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Para ver más opciones de configuración de Helm, consulta [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) en el repositorio de ARC.\n\n## Autenticación de ARC con fine-grained personal access token\n\nARC puede usar fine-grained personal access tokens para registrar ejecutores autohospedados.\n\n1. Cree un fine-grained personal access token con los ámbitos necesarios. Los ámbitos necesarios son diferentes en función de si va a registrar ejecutores en el nivel de repositorio u organización. Para obtener más información sobre cómo crear un fine-grained personal access token, vea [Administración de tokens de acceso personal](/es/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n\n   A continuación se muestra la lista de ámbitos necesarios personal access token para ejecutores de ARC.\n\n   * Ejecutores del repositorio:\n     * **Administración**: lectura y escritura\n\n   * Ejecutores de la organización:\n     * **Administración:** Leer\n     * **Ejecutores autohospedados:** lectura y escritura\n\n2. Para crear un secreto de Kubernetes con el valor de fine-grained personal access token, use el comando siguiente.\n\n   > \\[!NOTE]\n   > Crea el secreto en el mismo espacio de nombres donde está instalado el gráfico `gha-runner-scale-set`. En este ejemplo, el espacio de nombres es `arc-runners` para que corresponda a la documentación de inicio rápido. Para más información, consulta [Comienza con Actions Runner Controller](/es/actions/tutorials/use-actions-runner-controller/get-started#configuring-a-runner-scale-set).\n\n   ```bash copy\n   kubectl create secret generic pre-defined-secret \\\n      --namespace=arc-runners \\\n      --from-literal=github_token='YOUR-PAT'\n   ```\n\n3. En la copia del archivo [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), pase el nombre del secreto como referencia.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Para ver más opciones de configuración de Helm, consulta [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) en el repositorio de ARC.\n\n## Autenticación de ARC con secretos del almacén\n\n> \\[!NOTE]\n> La integración de la bóveda está disponible actualmente en versión preliminar pública con compatibilidad para Azure Key Vault.\n\nA partir de gha-runner-scale-set versión 0.12.0, ARC admite la recuperación de credenciales de GitHub desde un almacén externo. La integración del almacén se configura por conjunto de escalada de ejecutores. Esto significa que puede ejecutar algunos conjuntos de escalado mediante secretos de Kubernetes, mientras que otros usan secretos basados en almacenes, en función de los requisitos operativos y de seguridad.\n\n### Habilitación de la integración de Vault\n\nPara habilitar la integración del almacén para un conjunto de escalado de ejecutores:\n\n1. **Establezca el campo `githubConfigSecret`** del archivo `values.yaml` con el nombre de la clave secreta almacenada en el almacén. Este valor debe ser una cadena.\n2. **Descomenta y configura la sección `keyVault`** en tu archivo `values.yaml` con el proveedor y los detalles de acceso adecuados.\n3. **Proporciona el certificado necesario** (`.pfx`) al controlador y al agente de escucha. Puedes hacerlo mediante: \\*Volver a generar la imagen del controlador con el certificado incluido o \\*Montar el certificado como volumen tanto en el controlador como en el escuchador mediante los campos `listenerTemplate` y `controllerManager`.\n\n### Formato de secreto\n\nEl secreto almacenado en Azure Key Vault debe estar en formato JSON. La estructura depende del tipo de autenticación que uses:\n\n#### Ejemplo: token de GitHub\n\n```json\n{\n  \"github_token\": \"TOKEN\"\n}\n```\n\n#### Ejemplo: aplicación de GitHub\n\n```json\n{\n  \"github_app_id\": \"APP_ID_OR_CLIENT_ID\",\n  \"github_app_installation_id\": \"INSTALLATION_ID\",\n  \"github_app_private_key\": \"PRIVATE_KEY\"\n}\n```\n\n### Configuración de `values.yaml` para la integración de Vault\n\nEl certificado se almacena como un archivo .pfx y se monta en el contenedor en /akv/cert.pfx. A continuación se muestra un ejemplo de cómo configurar la sección keyVault para usar este certificado para la autenticación:\n\n```yaml\nkeyVault:\n  type: \"azure_key_vault\"\n  proxy:\n    https:\n      url: \"PROXY_URL\"\n      credentialSecretRef: \"PROXY_CREDENTIALS_SECRET_NAME\"\n    http: {}\n    noProxy: []\n  azureKeyVault:\n    clientId: <AZURE_CLIENT_ID>\n    tenantId: <AZURE_TENANT_ID>\n    url: <AZURE_VAULT_URL>\n    certificatePath: \"/akv/cert.pfx\"\n```\n\n### Proporcionar el certificado al controlador y al agente de escucha\n\nARC requiere un certificado `.pfx` para autenticarse con el almacén. Este certificado debe estar disponible tanto para el controlador como para los componentes del agente de escucha durante la instalación del controlador.\nPuede hacerlo montando el certificado como un volumen mediante los campos `controllerManager` y `listenerTemplate` del archivo `values.yaml`:\n\n```yaml\nvolumes:\n  - name: cert-volume\n    secret:\n      secretName: my-cert-secret\nvolumeMounts:\n  - mountPath: /akv\n    name: cert-volume\n    readOnly: true\n\nlistenerTemplate:\n  volumeMounts:\n    - name: cert-volume\n      mountPath: /akv/certs\n      readOnly: true\n  volumes:\n    - name: cert-volume\n      secret:\n        secretName: my-cert-secret\n```\n\nEl código siguiente es un ejemplo de un archivo `values.yml` de conjunto de escalado.\n\n```yaml\nlistenerTemplate:\n  spec:\n    containers:\n      - name: listener\n        volumeMounts:\n          - name: cert-volume\n            mountPath: /akv\n            readOnly: true\n    volumes:\n      - name: cert-volume\n        secret:\n          secretName: my-cert-secret\n```\n\n## Aviso legal\n\nAlgunas partes se han adaptado a partir de <https://github.com/actions/actions-runner-controller/> con licencia Apache-2.0:\n\n```text\nCopyright 2019 Moto Ishizawa\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```"}