{"meta":{"title":"ワークフローでの認証に GITHUB_TOKEN を使用する","intro":"`GITHUB_TOKEN` を使って GitHub Actions に代わって認証する方法について説明します。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/tutorials","title":"チュートリアル"},{"href":"/ja/actions/tutorials/authenticate-with-github_token","title":"GITHUB_TOKEN を使用して認証を行う"}],"documentType":"article"},"body":"# ワークフローでの認証に GITHUB_TOKEN を使用する\n\n`GITHUB_TOKEN` を使って GitHub Actions に代わって認証する方法について説明します。\n\nこのチュートリアルでは、GitHub Actions ワークフローでの認証に `GITHUB_TOKEN` を使う方法を見ていきます。これには、トークンをアクションに渡す例、API 要求を行う例、セキュリティ保護された自動化のためのアクセス許可の構成の例が含まれます。\n\n参考情報については、「[GitHub Actions　のワークフロー構文](/ja/actions/reference/workflow-syntax-for-github-actions#permissions)」をご覧ください。\n\n## ワークフローでの `GITHUB_TOKEN` の使用\n\nシークレットを参照するための標準構文 `GITHUB_TOKEN` を使って、`$` を使用できます。\n`GITHUB_TOKEN` の使用例には、トークンをアクションへの入力として渡すことや、トークンを使用して認証済みの GitHub API リクエストを作成することが含まれます。\n\n> \\[!IMPORTANT]\n> ワークフローで `GITHUB_TOKEN` がアクションに明示的に渡されない場合でも、アクションでは `github.token` コンテキストを介して `GITHUB_TOKEN` にアクセスできます。 セキュリティを強化するには、`GITHUB_TOKEN` に付与されるアクセス許可を制限することにより、アクションに必要な最小限のアクセスのみが含まれるようにする必要があります。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/actions/reference/workflow-syntax-for-github-actions#permissions)」をご覧ください。\n\n### 例 1: 入力として `GITHUB_TOKEN` を渡す\n\nこのワークフローの例では、`GH_TOKEN` 入力パラメーターの値として `GITHUB_TOKEN` を必要とする [GitHub CLI](/ja/actions/using-workflows/using-github-cli-in-workflows) が使用されます。\n\n```yaml copy\nname: Open new issue\non: workflow_dispatch\n\njobs:\n  open-issue:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      issues: write\n    steps:\n      - run: |\n          gh issue --repo ${{ github.repository }} \\\n            create --title \"Issue title\" --body \"Issue body\"\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### 例 2: REST API を呼び出す\n\n```\n          `GITHUB_TOKEN` を使用して、認証済みの API 呼び出しを行うことができます。 以下のワークフローの例では、GitHub REST APIを使ってIssueを作成しています。\n```\n\n```yaml\nname: Create issue on commit\n\non: [ push ]\n\njobs:\n  create_issue:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write\n    steps:\n      - name: Create issue using REST API\n        run: |\n          curl --request POST \\\n          --url https://api.github.com/repos/${{ github.repository }}/issues \\\n          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \\\n          --header 'content-type: application/json' \\\n          --data '{\n            \"title\": \"Automated issue for commit: ${{ github.sha }}\",\n            \"body\": \"This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \\n\\n The commit hash was: _${{ github.sha }}_.\"\n            }' \\\n          --fail\n```\n\n##\n\n```\n          `GITHUB_TOKEN` のアクセス許可の変更\n```\n\nワークフロー全体または個々のジョブに対する `permissions` のアクセス許可を変更するには、ワークフロー ファイルで `GITHUB_TOKEN` キーを使います。 これにより、ワークフローまたはジョブに最低限必要な権限を設定できます。 優れたセキュリティ プラクティスとして、`GITHUB_TOKEN` に必要最小限のアクセス権を付与することをお勧めします。\n\n使用できるアクセス許可とパラメーター化された名前の一覧については、「[個人用アクセス トークンを管理する](/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#account-permissions)」を参照してください。\n\nこの記事で前に示した 2 つのワークフロー例では、`permissions` キーがジョブ レベルで使われています。\n\n## 追加の権限を付与する\n\n```\n          `GITHUB_TOKEN` で利用できないアクセス許可を要求するトークンが必要な場合は、GitHub App を作成し、ワークフロー内でインストール アクセス トークンを生成します。 詳しくは、「[AUTOTITLE](/apps/creating-github-apps/guides/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow)」をご覧ください。 または、personal access tokenを作成して、シークレットとしてリポジトリに格納し、ワークフロー内のトークンを `${{ secrets.SECRET_NAME }}` 構文で使用することができます。 詳細については、「[AUTOTITLE](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)」および「[AUTOTITLE](/actions/security-guides/using-secrets-in-github-actions)」を参照してください。\n```\n\n## 次のステップ\n\n* [GITHUB\\_TOKEN](/ja/actions/concepts/security/github_token)\n* [GitHub Actions　のワークフロー構文](/ja/actions/reference/workflow-syntax-for-github-actions#permissions)"}