> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Game Manager의 API 액세스 정책

> Game Manager에서 PlayFab 타이틀의 API 액세스 정책을 확인하고 편집하여 클라이언트 호출을 허용 또는 거부하고, 사용하지 않는 엔드포인트 및 CloudScript 기능을 차단합니다.

## PlayFab API 정보

게임 클라이언트는 다음과 같은 URI를 사용하여 PlayFab API에 요청을 보냅니다.

* `/client/loginwithxbox`
* `/catalog/getitems`
* `/cloudscript/executefunction`

이러한 요청에는 PlayFab에 무엇을 해야 할지 알려주는 데이터 페이로드가 포함됩니다. 즉, 어떤 플레이어를 로그인할지, 어떤 아이템을 가져올지, 어떤 함수를 실행할지 등입니다.

## API 액세스 정책이란?

모든 PlayFab 타이틀에는 **API 액세스 정책**이 있습니다. 이는 플레이어가 게임 클라이언트에서 호출할 수 있는 PlayFab API를 제어하는 권한 명령문 목록입니다. 이 정책은 타이틀 수준의 방화벽 역할을 합니다. 클라이언트가 API를 호출하면, PlayFab은 정책을 평가하여 요청을 **허용**할지 **거부**할지 결정합니다.

기본 API 액세스 정책은 대부분의 API를 허용합니다.

## API 액세스 정책을 수정하는 이유는?

* 타이틀이 사용하지 않는 기능에 대한 액세스 제한
* 악의적인 플레이어가 비용을 증가시키는 것을 방지
* 개발 중 오타로부터 보호

## 구조

타이틀의 API 액세스 정책은 순서가 있는 **명령문(statement)** 목록입니다. 각 명령문에는 다음 필드가 있습니다.

| 필드                | 설명                                                                                                                                                    |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Resource**      | 명령문이 적용되는 API 경로로, PlayFab Resource Name으로 표현됩니다(예: `pfrn:api--/Client/*` 또는 `pfrn:api--/Client/GetPlayerProfile`). 와일드카드 `*`는 네임스페이스의 모든 API와 일치합니다. |
| **Action**        | 항상 `*` (모든 액션)입니다.                                                                                                                                    |
| **Effect**        | `Allow` 또는 `Deny`.                                                                                                                                    |
| **Principal**     | 명령문이 적용되는 대상입니다. `*`는 모든 호출자를 의미합니다. JSON 객체(예: `{"master_player_account": "*"}`)는 특정 principal 유형을 대상으로 합니다. `*` 이외의 principal 사용은 권장하지 않습니다.        |
| **Comment**       | 선택적 설명입니다.                                                                                                                                            |
| **ApiConditions** | `HasSignatureOrEncryption`과 같은 선택적 조건입니다.                                                                                                             |

## Deny 효과

`Deny` 효과를 사용하면 `Allow` 효과보다 우선합니다. 와일드카드가 있는 리소스(예: `pfrn:api--/CloudScript/*`)에 `Deny` 효과가 있는 경우, 특정 `Allow` 효과가 있더라도 해당 리소스로 시작하는 어떤 API에도 액세스할 수 없습니다.

## API Access Policy 페이지

Game Manager의 타이틀 설정 페이지에 있는 **API Access Policy** 페이지는 타이틀의 API 액세스 정책을 확인하고 편집하기 위한 인터페이스를 제공합니다.

## 인덱스 페이지

인덱스 페이지는 다음 열이 있는 모든 API 카테고리 테이블을 표시합니다.

| 열                      | 설명                                                                                                            |
| ---------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Category**           | API 카테고리의 이름(예: "Client", "Server")입니다. 해당 카테고리의 API를 편집하려면 선택하며, 여러 개가 있을 수 있습니다.                            |
| **Wildcard Statement** | 카테고리에 대한 현재 와일드카드 효과(**Allow** 또는 **Deny**)를 보여줍니다. 이는 더 구체적인 명령문에 의해 재정의되지 않는 한 카테고리의 모든 API에 적용되는 기본 규칙입니다. |
| **Summary**            | 카테고리의 API별 재정의에 대한 간략한 개수입니다(예: "3 denied, 1 allowed").                                                       |

### 사용 가능한 액션

* **Search**: 이름 또는 API 경로로 카테고리 목록을 필터링합니다. 이 필터는 카테고리 페이지에서 유지됩니다.
* **Edit as JSON**: 고급 사용자를 위한 전체 정책 JSON 편집기를 엽니다. 여기서 저장하면 전체 정책이 한 번에 대체되며 즉시 적용됩니다.
* **Revert to Defaults**: 전체 정책을 PlayFab의 기본 정책으로 재설정하고 즉시 저장합니다. 이 작업이 실행되기 전에 확인 대화 상자가 나타납니다.

## 카테고리 페이지

카테고리 이름을 클릭하면 개별 컨트롤과 함께 해당 카테고리의 모든 API를 나열하는 세부 정보 페이지로 이동합니다. 이 페이지의 확인란에 대한 변경 사항은 적용되기 전에 저장해야 합니다.

### 와일드카드 규칙

각 리소스 패턴 그룹의 맨 위에는 `Allow` 또는 `Deny`에 대한 라디오 버튼 그룹인 **와일드카드 규칙**이 있습니다. 이는 해당 그룹의 모든 API에 대한 기본 효과를 설정합니다. 와일드카드가 **Deny**로 설정되면, 전체 카테고리가 차단되기 때문에 그 아래의 모든 개별 API 토글이 비활성화됩니다.

### API별 토글

와일드카드 규칙 아래에는 각 API 엔드포인트가 확인란과 함께 나열됩니다. 체크되어 있으면 API가 **허용**되고, 체크가 해제되어 있으면 **거부**됩니다. 이러한 API별 토글을 통해 와일드카드 규칙에 대한 예외를 만들 수 있습니다. 예를 들어, 기본적으로 모든 Client API를 거부한 다음, 타이틀이 사용하는 API만 명시적으로 허용합니다.

### 사용 가능한 액션

* **Save**: 현재 카테고리에 대한 명령문만 저장합니다.
* **Reset**: 이 카테고리에 대한 저장되지 않은 모든 변경 사항을 삭제합니다.
* **Edit as JSON**: 이 카테고리의 명령문으로 범위가 지정된 JSON 편집기를 엽니다.
* **Search**: 카테고리 내에서 API 목록을 필터링합니다.

## 변경 사항 요약 사이드바

두 페이지 모두 화면 오른쪽에 **Pending changes** 사이드바를 포함합니다. 이 사이드바는 마지막 저장 이후 변경한 모든 명령문의 실시간 목록을 색상으로 구분된 레이블과 함께 보여줍니다.

* **Allow**: 리소스가 허용으로 변경되었습니다.
* **Deny**: 리소스가 거부로 변경되었습니다.
* **Removed**: 이전에 명시적이었던 명령문이 제거되었습니다(API는 해당 카테고리의 와일드카드 규칙을 상속합니다).

인덱스 페이지에서는 사이드바의 각 변경 사항이 관련 카테고리 페이지로 다시 링크됩니다.


## Related topics

- [PlayFab Game Manager의 API 기능 설정](/ko/services/playfab/live-service-management/gamemanager/api-feature-settings-in-the-playfab-game-manager.md)
- [액세스 정책](/ko/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/access-policies/index.md)
- [액세스 정책 개요](/ko/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/access-policies/live-access-policies-overview.md)
- [Partner Center를 통한 액세스 정책 구성](/ko/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/access-policies/config/live-access-policies-config-nav.md)
- [파트너 센터에서 액세스 정책 구성](/ko/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/access-policies/config/live-access-policies-udc.md)
