{"meta":{"title":"Autenticando o ARC na API de GitHub","intro":"Autenticar Actions Runner Controller na API GitHub.","product":"GitHub Actions","breadcrumbs":[{"href":"/pt/actions","title":"GitHub Actions"},{"href":"/pt/actions/how-tos","title":"Instruções"},{"href":"/pt/actions/how-tos/manage-runners","title":"Gerenciar corredores"},{"href":"/pt/actions/how-tos/manage-runners/use-actions-runner-controller","title":"Controlador de Ações Runner"},{"href":"/pt/actions/how-tos/manage-runners/use-actions-runner-controller/authenticate-to-the-api","title":"Autenticar à API"}],"documentType":"article"},"body":"# Autenticando o ARC na API de GitHub\n\nAutenticar Actions Runner Controller na API GitHub.\n\nVocê pode autenticar Actions Runner Controller (ARC) na GitHub API usando um GitHub App ou usando um personal access token (classic).\n\n> \\[!NOTE]\n> Você não pode autenticar usando um GitHub App para executores no nível corporativo. Para obter mais informações, consulte [Gerenciar o acesso a executores auto-hospedados usando grupos](/pt/actions/how-tos/manage-runners/self-hosted-runners/manage-access).\n\n## Autenticando ARC com um GitHub App\n\n1. Crie um GitHub App que pertence a uma organização. Para obter mais informações, consulte [Registrando um aplicativo GitHub](/pt/apps/creating-github-apps/registering-a-github-app/registering-a-github-app). Configure GitHub App da seguinte forma.\n\n   1. Em \"URL da Home Page\", insira `https://github.com/actions/actions-runner-controller`.\n\n   2. Em \"Permissões\", clique em **Permissões do repositório**. Em seguida, use os menus suspensos para selecionar as permissões de acesso a seguir.\n      * **Administração**: leitura e gravação\n\n        > \\[!NOTE]\n\n`Administration: Read and write` só é necessário ao configurar Actions Runner Controller para registrar no escopo do repositório. Não é necessário fazer registro no escopo da organização.\n\n```\n  * **Metadados**: somente leitura\n```\n\n1. Em \"Permissões\", clique em **Permissões da organização**. Em seguida, use os menus suspensos para selecionar as permissões de acesso a seguir.\n   * **Executores auto-hospedados**: leitura e gravação\n\n2. Depois de criar os dados do GitHub App, na página do GitHub App, observe o valor de \"ID do aplicativo\". Você usará esse valor mais tarde.\n\n3. Em \"Chaves privadas\", clique em **Gerar uma chave privada** e salve o arquivo `.pem`. Você usará esta chave mais tarde.\n\n4. No menu no canto superior esquerdo da página, clique em **Instalar aplicativo** e, ao lado da sua organização, clique em **Instalar** para instalar o aplicativo na sua organização.\n\n5. Depois de confirmar as permissões de instalação na sua organização, anote a ID de instalação do aplicativo. Você o usará mais tarde. Encontre a ID de instalação do aplicativo na página de instalação do aplicativo, que tem o seguinte formato de URL:\n\n   `https://github.com/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID`\n\n6. Registre a ID do aplicativo, a ID de instalação e o arquivo de chave privada `.pem` baixado das etapas anteriores para o Kubernetes como um segredo.\n\n   Para criar um segredo do Kubernetes com os valores de seus dados do GitHub App, execute o comando a seguir.\n\n   > \\[!NOTE]\n   > Crie o segredo no mesmo namespace onde o gráfico `gha-runner-scale-set` está instalado. Neste exemplo, o namespace é `arc-runners` para corresponder à documentação de início rápido. Para saber mais, confira [Comece a usar o Actions Runner Controller](/pt/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   Usando a propriedade `githubConfigSecret` em sua cópia do arquivo [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml), passe o nome do segredo como uma referência.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\nPara obter opções adicionais de configuração do Helm, confira [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) no repositório ARC.\n\n## Autenticando ARC com um personal access token (classic)\n\nO ARC pode usar personal access tokens (classic) para registrar executores auto-hospedados.\n\n1. Crie um personal access token (classic) com os escopos necessários. Os escopos necessários são diferentes dependendo se você está registrando executores no nível de repositório, ou nível de organização. Para obter mais informações sobre como criar um personal access token (classic), consulte [Gerenciar seus tokens de acesso pessoal](/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n   Veja a seguir a lista de escopos personal access token necessários para executores ARC.\n\n   * Executores do repositório: `repo`\n   * Corredores da organização: `admin:org`\n\n2. Para criar um segredo do Kubernetes com o valor do seu personal access token (classic), use o comando a seguir.\n\n   > \\[!NOTE]\n   > Crie o segredo no mesmo namespace onde o gráfico `gha-runner-scale-set` está instalado. Neste exemplo, o namespace é `arc-runners` para corresponder à documentação de início rápido. Para saber mais, confira [Comece a usar o Actions Runner Controller](/pt/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. Na sua cópia do [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) arquivo , transmita o nome do segredo como uma referência.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Para obter opções adicionais de configuração do Helm, confira [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) no repositório ARC.\n\n## Autenticando ARC com um fine-grained personal access token\n\nO ARC pode usar fine-grained personal access tokens para registrar executores auto-hospedados.\n\n1. Crie um fine-grained personal access token com os escopos necessários. Os escopos necessários são diferentes dependendo se você está registrando executores no nível do repositório ou da organização. Para obter mais informações sobre como criar um fine-grained personal access token, consulte [Gerenciar seus tokens de acesso pessoal](/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n\n   Veja a seguir a lista de escopos personal access token necessários para executores ARC.\n\n   * Executores do repositório:\n     * **Administração**: leitura e gravação\n\n   * Executores da organização:\n     * **Administração:** Leitura\n     * **Executores auto-hospedados**: leitura e gravação\n\n2. Para criar um segredo do Kubernetes com o valor do seu fine-grained personal access token, use o comando a seguir.\n\n   > \\[!NOTE]\n   > Crie o segredo no mesmo namespace onde o gráfico `gha-runner-scale-set` está instalado. Neste exemplo, o namespace é `arc-runners` para corresponder à documentação de início rápido. Para saber mais, confira [Comece a usar o Actions Runner Controller](/pt/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. Na sua cópia do [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) arquivo , transmita o nome do segredo como uma referência.\n\n   ```yaml\n   githubConfigSecret: pre-defined-secret\n   ```\n\n   Para obter opções adicionais de configuração do Helm, confira [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) no repositório ARC.\n\n## Autenticar ARC com segredos do cofre\n\n> \\[!NOTE]\n> No momento, a integração com o Vault está disponível em versão prévia pública com suporte para o Azure Key Vault.\n\nA partir da versão 0.12.0 do gha-runner-scale-set, o ARC dá suporte à recuperação de credenciais do GitHub de um cofre externo. A integração do cofre é configurada por conjunto de dimensionamento de executores. Isso significa que você pode executar alguns conjuntos de escalonamento usando segredos do Kubernetes, enquanto outros utilizam segredos armazenados em cofres, dependendo de seus requisitos de segurança e operacionais.\n\n### Habilitar a integração do Vault\n\nPara habilitar a integração do cofre de chaves em um conjunto de escalonamento de executores:\n\n1. **Defina o campo `githubConfigSecret`** no arquivo `values.yaml` como o nome da chave secreta armazenada em seu cofre. Esse valor precisa ser uma cadeia de caracteres.\n2. **Remova os comentários e configure a `keyVault` seção** no arquivo `values.yaml` com o provedor apropriado e os detalhes de acesso.\n3. \\*\\*Forneça o certificado \\*\\* necessário (`.pfx`) ao controlador e ao ouvinte. Para fazer isso: \\*Recriar a imagem do controlador com o certificado incluído ou \\*Monte o certificado como um volume no controlador e no ouvinte usando os campos `listenerTemplate` e `controllerManager`.\n\n### Formato Secreto\n\nO segredo armazenado em Azure Key Vault deve estar no formato JSON. A estrutura depende do tipo de autenticação que você está usando:\n\n#### Exemplo: token de GitHub\n\n```json\n{\n  \"github_token\": \"TOKEN\"\n}\n```\n\n#### Exemplo: aplicativo 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### Configurar `values.yaml` para a integração do Cofre\n\nO certificado é armazenado como um arquivo .pfx e montado no contêiner em /akv/cert.pfx. Veja abaixo um exemplo de como configurar a seção keyVault para usar este certificado para autenticação:\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### Fornecendo o certificado para o controlador e o ouvinte\n\nO ARC requer um certificado `.pfx` para autenticar no cofre. Esse certificado deve ser disponibilizado para os componentes do controlador e do ouvinte durante a instalação do controlador.\nVocê pode fazer isso montando o certificado como um volume usando os campos `controllerManager` e `listenerTemplate` no arquivo `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\nO código abaixo é um exemplo de um arquivo de conjunto de dimensionamento `values.yml`.\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\nPartes foram adaptadas do <https://github.com/actions/actions-runner-controller/> de acordo com a licença 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```"}