# 수동 승인 없이 안전한 명령을 실행할 수 있도록 허용

이 assisted permissions 옵션은 큰 언어 모델을 사용하여 사용 권한 요청을 평가하여 수동 승인 프롬프트를 줄입니다.

## Introduction

Copilot가 작업을 수행할 때 셸 명령 실행, 파일 편집 또는 URL 액세스와 같이 시스템을 변경할 수 있는 작업을 종종 수행해야 합니다. 이러한 작업에 대한 권한 요청을 처리하는 방법을 선택할 수 있습니다.

승인 프롬프트에 응답하면 계속 주도권을 유지할 수 있지만, 특히 세션 시작 시 Copilot에서 수행이 허용된 작업이 무엇인지 확인해야 하는 경우 Copilot가 느려질 수 있습니다. 프롬프트 수를 줄이려면 무조건적인 권한을 Copilot 부여할 수 있지만 이렇게 하면 개별 작업에 대한 감독 권한을 잃게 됩니다.

Assisted permissions 는 수동 승인 방식과 모두 허용 옵션으로 광범위한 권한을 부여하는 것 사이의 중간 지점입니다. 대규모 언어 모델을 사용하여 권한 요청을 검토하고 작업 컨텍스트에서 안전하다고 판단하는 작업을 자동으로 승인합니다. 표준 대화형 세션에서 여전히 승인이 필요한 요청이 사용자에게 승인을 위해 전달됩니다.

> [!NOTE]
> Assisted permissions는 Visual Studio Code, GitHub Copilot app, 그리고 GitHub Copilot CLI에서 사용할 수 있습니다.

## 승인 옵션

Copilot가 수행하는 작업을 승인하는 데 어느 정도 참여할지 결정하는 세 가지 옵션 중에서 선택할 수 있습니다. 기존 거부 규칙 및 엔터프라이즈 제한은 여전히 적용됩니다. 사용 권한에서 이미 허용된 요청은 프롬프트 또는 모델 검토 없이 실행할 수 있습니다.

* \*\*수동 승인:\*\*Copilot 읽기 전용이 아닌 명령 실행, 파일 편집 또는 URL 액세스와 같은 작업이 아직 허용되지 않은 경우 사용자의 승인을 요청합니다. 동작을 한 번 또는 세션의 나머지 부분에 대해 승인할 수 있습니다. 이렇게 하면 가장 많은 관리 권한을 제공하지만 가장 많은 프롬프트에 응답해야 합니다.

* \*\*Assisted permissions:\*\*Copilot 모델을 사용하여 적격 권한 요청을 평가하고 안전하다고 판단한 요청을 자동으로 승인합니다. 요청에 여전히 승인이 필요한 경우 확인 메시지가 표시됩니다. 이렇게 하면 명령을 실행할 수 있는 포괄적 권한을 부여하지 않고 프롬프트가 줄어듭니다.

* \*\*무조건 승인:\*\*Copilot 은(는) 모델 안전성 검토 또는 개별 승인 프롬프트 없이 도구, 경로 및 URL을 사용할 수 있는 광범위한 권한을 가집니다. 이는 허용 범위가 가장 넓은 옵션이며 개별 작업에 대한 감독을 제거합니다. 이는 `/permissions allow-all`에서 `/yolo`(또는 `--yolo`) 명령줄 옵션이나 `--allow-all`(또는 Copilot CLI) 슬래시 명령을 사용할 때 나타나는 동작입니다.

관리자는 `permissions.disableBypassPermissionsMode: "disable"`을 비활성화하지 않고 assisted permissions을 사용해 무조건 승인을 비활성화할 수 있습니다. 별도의 `permissions.disableAssistedPermissionsMode: true` 설정은 assisted permissions을 비활성화합니다. 자세한 내용은 [엔터프라이즈 관리 설정](/ko/copilot/reference/enterprise-administrators/enterprise-managed-settings#permissions)을(를) 참조하세요.

## assisted permissions 작동 방식

assisted permissions를 사용하도록 설정하면 모델 검토 전에 기존 규칙 및 사람 승인이 평가됩니다. 명령을 실행하거나, 경로에 액세스하거나, URL을 가져오는 등 아직 해결되지 않은 적격 요청의 경우 모델은 작업이 안전한지 여부와 작업에 대해 제공한 권한 내에서 작업을 평가합니다.

Copilot CLI셸 명령, 파일 읽기, 파일 쓰기 및 URL에 대한 엔터프라이즈 `ask` 규칙은 요청이 검토될 수 있는 경우 모델 승인에 의해 충족될 수 있습니다. 즉, 이러한 규칙이 항상 확인 프롬프트를 발생시키지는 않습니다. 엔터프라이즈 거부 규칙은 여전히 적용됩니다.

Assisted permissions 에서는 엔터프라이즈 규칙에서 승인해야 하는 다른 도구 호출 또는 로컬 샌드박싱을 우회하려는 요청을 검토하지 않습니다. 이러한 요청은 세션의 정상적인 권한 처리의 적용을 받습니다.

모델이 검토할 수 있는 요청의 경우 모델은 다음을 권장합니다.

* 모델이 요청이 안전하다고 확신하는 경우 Copilot가 자동으로 이를 승인하고 사용자에게 묻지 않고 계속 진행합니다.
* 모델이 요청이 안전하다고 확신하지 못하는 경우 수동 승인과 마찬가지로 Copilot 사용자의 승인을 요청합니다.

안전 검토를 사용할 수 없거나 요청을 평가할 수 없는 경우 요청은 세션의 정상적인 권한 처리를 따릅니다.

> [!NOTE]
> autopilot 모드 및 비대화형 실행에서는 승인이 필요한 요청이 대신 거부됩니다. 안전 검토에 승인이 필요할 때 다른 접근 방식을 시도할 수 있도록 설명이 다시 Copilot로 전달됩니다.
> [GitHub Copilot의 자율적 작동 허용](/ko/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot)을(를) 참조하세요.

Copilot 는 대화에 대해 선택한 모델과 다를 수 있는 안전 검토에 사용되는 모델을 선택합니다. 선택한 검토 모델을 사용할 수 없는 경우 검토는 세션의 활성 모델을 대신 사용할 수 있습니다. 사용자 고유의 모델 공급자를 사용하는 경우 검토는 세션의 활성 모델을 사용합니다.

> [!IMPORTANT]
> Assisted permissions은 메시지가 표시되는 빈도를 줄이지만 Copilot가 수행하는 작업에 대한 책임은 제거되지 않습니다. 모델은 실수할 수 있으며 위험하거나 의도하지 않은 작업을 승인할 수 있습니다. 이 기능은 샌드박싱 또는 액세스 제한을 대체하지 않습니다. 모든 자동 승인 옵션과 마찬가지로 Copilot가 수행하는 작업을 검토하고 샌드박스 또는 다른 격리된 환경에서 실행하는 것이 좋습니다. 자세한 내용은 [GitHub Copilot 명령 줄 인터페이스 (CLI)](/ko/copilot/concepts/copilot-surfaces/copilot-cli#risk-mitigation)을(를) 참조하세요.

## GitHub Copilot app에서 assisted permissions 사용

로컬 세션에서 assisted permissions을 켜려면 다음을 수행합니다.

1. 프롬프트 상자에서 **대화형**, **계획** 또는 **Autopilot**과 같은 현재 모드를 표시하는 모드 메뉴를 엽니다.
2. **도구 권한**을 클릭한 다음, **\[지원]** 을 선택합니다.

선택은 현재 세션에 적용되며 새 로컬 세션의 기본값으로도 저장됩니다. 다른 기존 세션은 변경되지 않습니다. 현재 세션을 변경하지 않고 기본값을 변경하려면 **\[설정]** 을 열고 **\[세션]** 을 선택한 다음 **\[도구 권한]** 아래에서 **\[지원됨]** 을 선택합니다.

기본값을 변경하지 않고 현재 활성 세션에 대해서만 assisted permissions를 켜려면 프롬프트 상자에 `/permissions assisted`을 입력합니다. 해당 세션을 수동 승인으로 반환하려면 `/permissions show`를 입력하고, 사용 권한 모드를 확인하려면 `/permissions manual`를 입력합니다.

클라우드 세션에는 도구 권한 제어가 제공되지 않습니다. 원격 호스트의 세션의 경우 사용 가능한 권한 모드는 해당 호스트가 지원하는 것에 따라 달라집니다. 기본값으로 **지원됨**을 선택하더라도 관리자 제한은 계속 적용됩니다.

## assisted permissions에서 GitHub Copilot CLI 사용

assisted permissions을 켜는 방법은 세 가지이며, 현재 사용 중인 세션에 대해서만 켤지, 모든 새 세션에 대해 켤지, 또는 단일 자동화 실행에 대해 켤지에 따라 달라집니다.

### 대화형 세션 중에 켜기

다음 슬래시 명령을 입력하세요:

```copilot copy
/permissions assisted
```

수동 승인으로 돌아가려면 `/permissions manual`를 입력합니다. 현재 어떤 권한 모드에 있는지 확인하려면 `/permissions show`를 입력합니다.
`/permissions`도 인수 없이 입력하여 목록에서 모드를 선택할 수도 있습니다.

### 새 세션의 기본값으로 설정

새 대화형 세션에서 assisted permissions를 선호 모드로 설정하려면 사용자 구성 파일(`"assisted"`)에서 `~/.copilot/settings.json`을 `defaultPermissionMode`로 설정합니다. 파일을 직접 편집하거나 세션 중에 `/settings` 슬래시 명령을 사용할 수 있습니다. 자세한 내용은 [GITHUB COPILOT CLI 구성 디렉터리](/ko/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson)을(를) 참조하세요.

이 설정은 새 대화형 세션에만 적용됩니다. 관리자가 `permissions.defaultMode`를 설정한 경우 관리되는 기본값이 사용자 기본 설정보다 우선합니다. 정책에서 허용하는 경우에도 `/permissions manual`를 사용하는 경우처럼 세션에 대해 다른 모드를 선택할 수 있습니다.

다시 시작된 세션은 현재 정책 제한에 따라 저장된 사용 권한 모드를 유지합니다.
`--allow-all` 또는 `--yolo` 옵션은 정책에서 허용하는 경우 두 기본값 중 어느 쪽보다도 우선합니다. 선택한 기본값을 사용할 수 없거나 정책에 의해 차단된 경우 CLI는 수동 승인이 필요합니다.

수동 승인을 기본 설정으로 하려면 `"manual"`를 `defaultPermissionMode`로 설정하세요. 사용자 또는 관리자 누구도 기본값을 구성하지 않은 경우 새 세션은 수동 또는 보조 모드에서 시작할 수 있습니다.
`/permissions show`을 사용하여 확인합니다.

### 이를 비대화형 실행에 사용

Copilot CLI를 비대화형으로 실행할 때—`--prompt` 또는 `--assisted-approval` 옵션을 사용하거나, CI/CD 워크플로와 같이 터미널이 연결되지 않은 환경에서—`-p` 명령줄 옵션을 사용하세요:

```shell copy
copilot -p "Fix the failing tests" --assisted-approval
```

실행되는 명령을 쉽게 변경할 수 없는 자동화된 환경에서 유용한 `COPILOT_ASSISTED_APPROVAL` 환경 변수를 `true`로 설정할 수도 있습니다.

이 옵션은 비대화형 실행에만 해당합니다. 대화형 세션을 시작할 때 사용하는 경우 CLI는 오류를 표시하며 종료됩니다. 대화형 세션에서 assisted permissions를 사용하려면 대신 `/permissions assisted` 또는 `defaultPermissionMode` 설정을 사용하세요.

#### 명령줄 옵션을 사용하는 경우

비대화형 실행에서는 승인 프롬프트에 응답할 수 있는 사람이 없으므로, 그렇지 않으면 두 가지 달갑지 않은 옵션 중에서 선택해야 합니다.
Copilot에 사용 권한 옵션이 없으면 승인이 필요한 모든 항목이 거부되며 작업을 완료할 수 없는 경우가 많습니다.
`--allow-all-tools`를 사용하면 모델 안전성 검토 없이 포괄적인 도구 권한을 부여합니다.

`--assisted-approval` 는 절충안입니다. 안전 검토 심사위원에게 보내는 요청은 자동으로 승인됩니다. 검토에 귀하의 승인이 필요한 경우 요청이 거부되고 해당 설명이 다시 Copilot로 전달되므로 다른 방법을 시도할 수 있습니다. 여전히 승인이 필요한 다른 요청도 거부됩니다.

CI/CD 워크플로, 예약된 작업 또는 일괄 처리 스크립트에서 무인 실행으로 실제 작업을 완료해야 하지만 Copilot에 어떤 명령이든 실행할 수 있는 무조건적인 권한을 부여하고 싶지 않을 때 이를 사용하는 것을 고려하세요.

Copilot CLI을 프로그래밍 방식으로 실행하는 것에 대한 자세한 내용은 [프로그래밍 방식으로 실행 GitHub Copilot CLI](/ko/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)을 참조하세요.

> [!WARNING]
> 성공적으로 사용하도록 설정하면 `--assisted-approval`이 `--allow-all-tools`보다 우선 적용되지만, `--allow-all-urls` 또는 `--allow-all-paths`는 변경되지 않습니다.
> `--yolo`가 도구 요청에 대해 사용하도록 설정되어 있더라도, 이를 assisted permissions(또는 `--allow-all`)와 결합하면 경로 및 URL 액세스는 여전히 제한되지 않을 수 있습니다.
>
> 예를 들어 엔터프라이즈 설정에서 이를 차단하는 경우처럼 assisted permissions를 켤 수 없는 경우, CLI는 표준 오류에 경고를 씁니다. 귀하가 제공한 별도의 `--allow-all-tools` 옵션을 취소하지 않으므로 안전 검토 없이 도구 요청이 계속 승인될 수 있습니다. 자동화된 실행의 출력에서 이 경고를 확인합니다.

### Copilot CLI에서 assisted permissions가 어떻게 동작하는지

* **세션에서 켜면 해당 세션에만 영향을 줍니다.**
  `/permissions assisted`을 입력하면 assisted permissions은 사용자가 끄지 않는 한 해당 세션의 나머지 시간 동안 계속 켜진 상태로 유지됩니다. 현재 열려 있는 다른 세션에는 영향을 주지 않습니다. 이후 세션에 적용하려면 위에서 설명한 `defaultPermissionMode` 설정을 사용합니다.

* **언제든지 assisted permissions로 전환할 수 있습니다.** 가장 허용적인 설정(`--allow-all` 또는 그 별칭 `--yolo`)으로 세션을 시작한 경우, `/permissions assisted`를 입력하면 무조건 승인에서 assisted permissions로 전환됩니다.

* **assisted permissions이(가) 작동하는 동안 Copilot을(를) 켤 수 있습니다.** 작업이 완료되기를 기다릴 필요가 없습니다. 후속 적격 권한 요청은 assisted permissions를 사용합니다. 이전 설정에 따라 작업 중에 표시되는 승인 요청 수를 늘리거나 줄일 수 있습니다.

## 추가 읽기

* [도구 사용 허용 및 거부](/ko/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools)
* [프로그래밍 방식으로 실행 GitHub Copilot CLI](/ko/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)
* [GitHub Copilot 명령 줄 인터페이스 (CLI)](/ko/copilot/concepts/copilot-surfaces/copilot-cli#security-implications-of-automatic-tool-approval)
* [GitHub Copilot의 자율적 작동 허용](/ko/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot)