Skip to main content
Skip to content

GitHub Copilot 클라우드 세션에 조직의 리소스에 대한 액세스 권한 부여

클라우드 세션에서 승인된 MCP 서버 및 내부 패키지에 대한 액세스 권한을 부여하여 Copilot을 더 효과적으로 활용할 수 있습니다.

Copilot in the cloud을 사용하도록 설정한 경우, GitHub 에이전트가 MCP 서버에 연결하고, 프라이빗 패키지를 사용하고, Copilot에서 자율적으로 작업할 때 외부 서비스에 액세스할 수 있도록 조직의 설정을 구성해야 합니다.

아래 구성 중 일부는 리포지토리 수준에서 수행됩니다. 그러나 조직 소유자는 범위에 있는 리소스와 해당 리소스에 대한 액세스를 구성할 수 있는 사용자를 제어할 수 있습니다.

세션 환경에 대하여

에이전트 세션은 GitHub에서 클라우드 샌드박스 또는 GitHub Actions에서 실행할 수 있습니다. 두 환경의 컴퓨팅 비용은 동일한 월별 허용량에서 차감됩니다.

  • 클라우드 샌드박스는 사용자가 GitHub의 채팅 인터페이스 또는 다른 클라이언트에서 세션을 다시 이어갈 수 있는 더 빠르고 간단한 환경입니다.
  • GitHub Actions 에서는 비밀 및 변수, 종속성 설치를 위한 설정 단계, 자체 호스팅 실행기 또는 프라이빗 네트워킹에 대한 액세스 등 환경을 더 세밀하게 제어할 수 있습니다.

자세한 비교는 GitHub.com 및 GitHub Mobile의 GitHub Copilot을 참조하세요.

이 가이드에서는 사용자가 GitHub Actions 을(를) 컴퓨팅 환경으로 사용한다고 가정합니다. 클라우드 샌드박스에는 현재 조직 리소스에 대한 액세스를 구성하는 옵션이 더 적습니다.

예제 시나리오

조직에서는 Sentry를 사용하여 노드 앱의 버그를 추적합니다. 새 예외가 GitHub에서 발생하면 개발자가 이러한 문제를 Copilot에 할당하려고 합니다.

당신은 Copilot 다음을 원합니다.

  • Sentry 인스턴스의 세부 정보에 액세스할 수 있도록 Sentry MCP 서버에 연결
  • 호스트되는 GitHub프라이빗 패키지를 포함하여 종속성을 설치하여 앱을 빌드하고 테스트를 실행합니다.
  • 오류 처리에 대한 조직의 규칙을 따릅니다.

안전하게 비밀 저장

기본적으로 인증 토큰의 Copilot범위는 실행 중인 리포지토리로 제한됩니다. 즉 Copilot , 외부 시스템에 인증하거나 조직 범위의 프라이빗 패키지에 액세스할 수 없습니다.

조직 소유자는 조직 수준에서 Agents secrets를 추가하여 여러 리포지토리에서 구성을 공유할 수 있습니다. Copilot 는 설치 및 작업 실행 중에 이 데이터에 액세스할 수 있습니다. Dependabot, GitHub Actions 또는 Codespaces에 대한 비밀 및 변수에 액세스할 수 없습니다. 자세한 내용은 Copilot 클라우드 에이전트에 대한 비밀 및 변수 구성을(를) 참조하세요.

참고

MCP 서버 연결에 대한 비밀(COPILOT_MCP_ 접두사가 붙은)도 클라우드 샌드박스에서 사용할 수 있습니다. 다른 에이전트 비밀은 GitHub Actions 환경에서만 사용할 수 있습니다.

예: 비밀 저장

조직 소유자는 조직의 Sentry 인스턴스에 대한 인증 토큰을 저장합니다.

  1. 조직 설정의 비밀 및 변수 > 에이전트 섹션으로 이동합니다.
  2. Sentry 인스턴스에 대한 액세스 토큰을 비밀로 저장합니다 COPILOT_MCP_SENTRY_ACCESS_TOKEN.

팁

프라이빗 GitHub Packages 레지스트리에 대한 토큰을 저장할 필요가 없으며, 이 토큰은 표준을 GitHub ActionsGITHUB_TOKEN사용하여 액세스할 수 있습니다. 그러나 외부 패키지 레지스트리를 사용하는 경우 인증 토큰을 저장하려고 합니다.

MCP 서버에 대한 액세스 구성

조직 및 엔터프라이즈 소유자는 사용자가 MCP 서버에 대한 액세스를 구성할 수 있도록 정책을 설정할 수 있습니다. 이 정책을 사용하는 경우 사용자는 리포지토리 설정 또는 사용자 지정 에이전트 프로필에서 MCP 서버를 Copilot 구성할 수 있습니다. 조직 전체의 일관성을 위해 조직 또는 엔터프라이즈 수준에서 사용자 지정 에이전트 프로필을 만드는 것이 좋습니다.

사용자 지정 에이전트를 사용하는 세션에서는 리포지토리 설정과 에이전트 프로필 모두에서 구성된 MCP 서버에 액세스할 수 있습니다. 그러나 조직 전체의 사용자 지정 에이전트를 사용하는 사용 사례가 많을수록 리포지토리 설정에서 MCP 서버에 대한 임시 액세스를 구성해야 하는 사용자가 줄어듭니다.

엔터프라이즈의 managed-settings.json 파일을 사용하여 승인된 MCP 서버의 허용 목록을 만들 수도 있습니다. 엔터프라이즈에 대한 MCP 서버 허용 목록 구성을(를) 참조하세요. allowedMcpServers 및 deniedMcpServers는 사용자 설정 및 리포지토리 설정에 정의된 MCP 서버에 적용되지만, 리포지토리 사용자 지정 에이전트 프로필에 정의된 MCP 서버에는 적용되지 않습니다. 그러나 조직 또는 리포지토리 수준의 사용자 지정 방화벽에서 MCP 서버를 시작하는 데 필요한 도메인이 허용되지 않도록 하여 사용자 지정 에이전트 프로필에 구성된 MCP 서버의 사용을 방지할 수 있습니다. GitHub Copilot 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.

MCP 레지스트리를GitHub 검색하여 신뢰할 수 있는 높은 등급의 옵션을 찾는 것이 좋습니다.

예: 사용자 지정 에이전트 만들기

조직 소유자는 Sentry 에이전트에 대한 사용자 지정 에이전트 프로필을 만듭니다. Sentry MCP 서버에 대한 액세스 권한과 조직의 오류 처리 규칙에 대한 사용자 지정 지침이 있습니다.

  1. 조직에서 .github-private라는 이름의 리포지토리를 생성합니다. 필요에 따라 엔터프라이즈 소유자는 이 리포지토리를 엔터프라이즈의 모든 사용자 지정 에이전트에 대한 원본으로 설정할 수 있습니다.

  2. 리포지토리에서 다음과 같은 프로필이 있는 파일을 추가 agent.md 합니다. 여기에는 저장한 비밀을 참조하는 MCP 서버에 대한 구성이 포함됩니다.

    ---
    name: sentry-error-fixer
    description: Proposed fixes for exception issues raised from Sentry
    mcp-servers:
      sentry:
        type: 'local'
        command: 'npx'
        args: ['@sentry/mcp-server@latest']
        env:
          SENTRY_ACCESS_TOKEN: ${{ secrets.COPILOT_MCP_SENTRY_ACCESS_TOKEN }}
    ---
    
    You are an error resolution specialist. When you're assigned an issue created by our Sentry integration, check for error details and stack traces using the MCP server, then propose a fix.
    
    Make sure you check that your proposed fix works by building the site with `npm run build` and running the test suite in `npm test`.
    
  3. 개발자가 Copilot에 문제를 할당할 때, 드롭다운 메뉴에서 사용자 지정 에이전트를 선택할 수 있습니다.

프라이빗 패키지 설치

프로젝트의 종속성에 대한 Copilot 액세스 권한을 부여하는 가장 좋은 방법은 워크플로 파일에 copilot-setup-steps.yml 설치하는 것입니다. 이 파일은 작업을 시작하기 전에 Copilot 환경을 설정하는 방법을 정의합니다.

워크플로가 조직 범위의 프라이빗 패키지를 끌어오도록 허용하려면 패키지 설정을 업데이트하여 리포지토리가 GITHUB_TOKEN 패키지에 액세스할 수 있는지 확인합니다. 이는 조직 권한을 가진 장기 지속형 personal access token를 사용하는 것보다 더 안전합니다.

예: 노드 종속성 설치

개발자는 리포지 package-lock.json 토리의 파일에 정의된 노드 종속성을 설치하는 워크플로를 만듭니다. 여기에는 GitHub에 호스팅된 조직 전용 비공개 패키지가 포함됩니다.

  1. 개발자는 리포지토리에 파일을 만듭니다 copilot-setup-steps.yml .

  2. 프로젝트의 종속성을 설치하는 단계를 추가합니다. 다음은 그 예입니다.

    # ...
    
    jobs:
      copilot-setup-steps:
        # ...
    
        # You can define any steps you want, and they will run before the agent starts.
        # If you do not check out your code, Copilot will do this for you.
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Set up Node.js
            uses: actions/setup-node@v7
            with:
              node-version: "20"
              cache: "npm"
    
          - name: Install JavaScript dependencies
            run: npm ci
    
  3. 조직 관리자는 각 패키지의 설정에서 리포지토리에 대한 액세스 권한을 부여하여 리포지토리가 조직의 개인 패키지에 액세스할 수 있도록 합니다. 패키지의 액세스 제어 및 표시 여부 구성을(를) 참조하세요.

팁

회사 네트워크 내에서 내부적으로 호스팅되는 패키지에 액세스해야 하는 경우 자체 호스팅 Copilot 실행기에서 GitHub Actions 에이전트를 실행해야 할 수 있습니다.

이러한 설정을 구성할 수 있는 사용자 제어

이제 리포지토리 및 조직 수준에서 리소스에 대한 액세스를 제어하는 방법을 살펴보셨으며, 사용자에게 이러한 설정을 관리하도록 제공할 범위의 양을 고려합니다.

  1. 액세스할 수 있는 리포지토리 를 Copilot in the cloud선택합니다. 특정 리포지토리에 대해 우려하는 경우 모든 사용자에 대해 차단할 수 있습니다.
  2. 이러한 리포지토리에 대한 관리자 액세스 권한을 얻는 사용자를 고려합니다. 모든 리포지토리 관리자 사용자 지정 역할을 사용하여 팀을 만들어 조직 수준에서 이를 제어할 수 있습니다. 이러한 사용자는 모든 리포지토리에서 MCP 구성, 에이전트 비밀 및 변수와 같은 구성 설정을 관리할 수 있습니다.
  3. 규칙 집합 및 CODEOWNERS 파일을 사용하여 쓰기 액세스 권한이 있는 모든 사용자가 기본적으로 편집할 수 있는 구성 파일copilot-setup-steps.yml의 편집을 제어합니다.
  4. 기본 방화벽을 검토합니다. 작업 실행 중에는 copilot-setup-steps.yml이(가) 인터넷 액세스를 제한하지만, 방화벽은 MCP 서버나 설치 단계에 대한 연결에 Copilot영향을 주지 않습니다. GitHub Copilot 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.
  5. 플러그 인 표준을 정의합니다. 플러그인은 설치 가능한 패키지로, Copilot을(를) 재사용 가능한 에이전트, 기술, 후크 및 통합으로 확장합니다. 엔터프라이즈 managed-settings.json 파일에서 허용되는 플러그 인 및 마켓플레이스를 제어할 수 있습니다. 엔터프라이즈 관리 플러그 인 표준 정보을(를) 참조하세요.