> This page is for 플랫폼, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 실험적: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - 레거시: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# 사용자 권한 관리

이 가이드에서는 Frame.io V4 API를 사용하여 사용자 권한을 관리하는 방법을 설명합니다. 계정, 작업 영역, 프로젝트 수준에서 권한이 작동하는 방식과 각 수준에서 어떤 엔드포인트를 사용할지 다룹니다.

---

## 권한 수준

Frame.io의 권한은 계정, 작업 영역, 프로젝트 수준 전반에서 관리됩니다. 각 수준은 고유한 역할 세트를 사용합니다.

```
Account 
│
├── (admin)  - full access to all Workspaces, Projects, and Restricted Projects
│
└── (member)
        │
        ├── Workspace - (full_access | editor | edit_only | commenter | viewer)
        │       │
        │       └── Project - (full_access | editor | edit_only | commenter | viewer)
        │
        └── Restricted Project - (members require direct invite)
```

모든 사용자에게는 계정 역할이 있습니다. API를 통해 사용자의 역할을

`admin` 또는 `member`로 설정할 수 있습니다.

계정 관리자는 모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한을 가집니다. 계정 멤버는 필요한 작업 영역 및 프로젝트에 선택적으로 추가될 수 있습니다.

작업 영역에 계정 멤버를 추가하면 할당한 권한 수준(`full_access`, `editor`, `edit_only`, `commenter` 또는 `viewer`)이 해당 작업 영역 내의 모든 기존 프로젝트와 향후 프로젝트에 적용됩니다. 예를 들어 계정 멤버를 `viewer`로 추가하면 해당 작업 영역의 프로젝트에 액세스할 때마다 `viewer` 권한을 갖게 됩니다. 동일한 계정 멤버를 해당 작업 영역 내의 특정 프로젝트에 `editor`로 추가할 수 있습니다. 그 결과, 해당 프로젝트에 액세스할 때마다 `editor` 권한을 가지게 됩니다. 이들의 `viewer` 권한은 해당 작업 영역의 다른 모든 프로젝트에 계속 적용됩니다. 프로젝트 할당은 작업 영역 할당과 분리되어 있으므로, 해당 계정 멤버를 작업 영역에서 제거하더라도 해당 단일 프로젝트에 대한 `editor` 권한은 유지됩니다.

제한된 프로젝트는 예외입니다. 계정 멤버는 항상 직접 초대를 받아야 합니다. 자세한 내용은 아래의 프로젝트 수준 권한 섹션을 참조하세요.

## 계정 수준 권한

계정의 모든 사용자에게는 다음과 같은 역할이 있습니다.

| 역할       | 권한                                             | API를 통해 구성 가능 | 엔드포인트                                        |
| -------- | ---------------------------------------------- | ------------- | -------------------------------------------- |
| 소유자      | 모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한입니다. 계정당 1개       | 아니요           | —                                            |
| `admin`  | 모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한                  | 예             | `PATCH /accounts/:account_id/users/:user_id` |
| `member` | 권한은 작업 영역 및/또는 프로젝트 수준에서 설정됨                   | 예             | `PATCH /accounts/:account_id/users/:user_id` |
| Reviewer | 공유 링크를 통해서만 액세스할 수 있습니다. 사용자가 보안 공유에 추가될 때 생성됨 | 아니요           | —                                            |

---

계정 관리자는 모든 곳에서 모든 액세스 권한을 가집니다. 특정 리소스에 대한 관리자의 액세스를 제한하려면 먼저 계정 역할을 Member로 변경한 다음, 필요한 작업 영역이나 프로젝트에 추가합니다.

예를 들면 다음과 같습니다.

#### 계정 사용자 역할을 나열하여 사용자 ID를 찾고 현재 역할을 확인합니다.

```curl

curl https://api.frame.io/v4/accounts/:account_id/users \
     -H "Authorization: Bearer <token>"

```

#### 계정 역할을 Member로 업데이트:

```curl

curl -X PATCH https://api.frame.io/v4/accounts/:account_id/users/:user_id \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "data": {
    "role": "member"
  }
}'

```

#### 프로젝트에 추가:

```curl

curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "data": {
    "role": "edit_only"
  }
}'

```

### 계정 권한 엔드포인트

#### 계정 사용자 역할 나열

#### 계정 사용자 역할 나열

\


사용자 세부 정보(ID, 이름, 이메일) 및 계정 역할을 포함하여 특정 계정의 사용자를 나열합니다.

\
`GET``https://api.frame.io/v4/accounts/:account_id/users`\
[문서](/platform/api-reference/account-permissions/index)

#### 사용자 역할 업데이트

#### 사용자 역할 업데이트

\


계정에 대한 사용자의 역할을 업데이트합니다. 이는 현재 실험적인 엔드포인트입니다.

\
\
`PATCH``https://api.frame.io/v4/accounts/:account_id/users/:user_id`\
[문서](/platform/v4-experimental/api-reference/account-permissions/developer-api-web-experimental-account-user-roles-controller-update)

---

## 작업 영역 수준 권한

작업 영역에 계정 멤버를 추가하면 해당 작업 영역 내의 모든 프로젝트에 대해 동일한 권한 수준을 갖게 됩니다. 작업 영역은 초대 전용이므로 계정 멤버는 자신이 추가된 작업 영역만 볼 수 있습니다.

\


| 역할            | 권한                                        |
| ------------- | ----------------------------------------- |
| `full_access` | 업로드, 관리, 공유, 코멘트, 보기, 다운로드, 설정 관리, 사용자 초대 |
| `editor`      | 업로드, 관리, 공유, 코멘트, 보기, 다운로드                |
| `edit_only`   | 업로드, 관리, 코멘트, 보기. 공유 또는 다운로드할 수 없음        |
| `commenter`   | 보기 및 코멘트                                  |
| `viewer`      | 보기 전용                                     |

\


### 작업 영역 권한 엔드포인트

#### 작업 영역 사용자 역할 나열

#### 사용자 나열

\


사용자 세부 정보(ID, 이름, 이메일) 및 해당 역할을 포함하여 특정 작업 영역에 액세스할 수 있는 사용자를 나열합니다.

\
`GET``https://api.frame.io/v4/accounts/:account_id/workspaces/:workspace_id/users`\
[문서](/platform/api-reference/workspace-permissions/index)

#### 사용자 역할 업데이트

#### 사용자 역할 업데이트

\


특정 작업 영역에서 사용자의 역할을 수정합니다. 이렇게 하면 사용자가 작업 영역에 이미 추가된 경우 사용자 역할을 업데이트하거나 주어진 역할로 추가합니다.

\
`PATCH``https://api.frame.io/v4/accounts/:account_id/workspaces/:workspace_id/users/:user_id`\
[문서](/platform/api-reference/workspace-permissions/workspace-user-roles-update)

#### 사용자 제거

#### 사용자 제거

\


특정 작업 영역에서 사용자 제거

\
`DEL``https://api.frame.io/v4/accounts/:account_id/workspaces/:workspace_id/users/:user_id`\
[문서](/platform/api-reference/workspace-permissions/workspace-user-roles-delete)

---

## 프로젝트 수준 권한

프로젝트는 작업 영역과 동일한 권한 수준을 사용합니다. 특정 프로젝트에만 액세스해야 하거나 작업 영역 할당과 다른 권한 수준이 필요한 경우 사용자를 프로젝트에 직접 추가합니다. 프로젝트에 추가되기 위해 사용자에게 작업 영역 액세스 권한이 필요한 것은 아닙니다.

\


| 역할                     | 권한                                        |
| ---------------------- | ----------------------------------------- |
| `full_access`          | 업로드, 관리, 공유, 코멘트, 보기, 다운로드, 설정 관리, 사용자 초대 |
| `editor`               | 업로드, 관리, 공유, 코멘트, 보기, 다운로드                |
| `edit_only`            | 업로드, 관리, 코멘트, 보기. 공유 또는 다운로드할 수 없음        |
| `commenter`            | 보기 및 코멘트                                  |
| `viewer`               | 보기 전용                                     |
|   **예시: 프로젝트에 사용자 추가** |                                           |

```curl

curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "data": {
    "role": "full_access"
  }
}'

```

---

### 제한된 프로젝트

제한된 프로젝트에는 직접 초대가 필요합니다. 작업 영역 액세스 권한이 이월되지 않으므로,

사용자는 제한된 프로젝트에 직접 추가된 경우에만 액세스할 수 있습니다.

멤버에게 액세스 권한을 부여하려면 적절한 권한 수준으로 해당 멤버를 프로젝트에 추가합니다.

> **Note**
>
> 계정 관리자와 소유자는 예외이며 모든
>
> 제한된 프로젝트에 액세스할 수 있습니다.

### 프로젝트 권한 엔드포인트

#### 프로젝트 사용자 역할 나열

#### 프로젝트 사용자 역할 나열

\


사용자 세부 정보(ID, 이름, 이메일) 및 해당 역할을 포함하여 특정 프로젝트에 액세스할 수 있는 사용자를 나열합니다.

\
&#x20;`GET` `https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users` \
&#x20;[문서](/platform/api-reference/project-permissions/index)

#### 사용자 역할 업데이트

#### 사용자 역할 업데이트

\


특정 프로젝트에서 사용자의 역할을 수정합니다. 이렇게 하면 사용자가 프로젝트에 이미 추가된 경우 사용자 역할을 업데이트하거나 지정된 역할로 추가합니다.

\
`PATCH``https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id `\
[문서](/platform/api-reference/project-permissions/project-user-roles-update)

#### 사용자 제거

#### 사용자 제거

\


특정 프로젝트에서 사용자 제거

\
&#x20;`DEL` `https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id` \
&#x20;[문서](/platform/api-reference/project-permissions/delete)

---

## 리소스

유용한 추가 리소스:

* Frame.io [개발자 포럼](https://forum.frame.io/)은 개발자들이 질문하고, 피드백을 공유하고, 자신들이 구축 중인 항목에 대해 논의할 수 있는 공간입니다.
* 사용자 역할 및 권한에 대한 [고객 센터 문서](https://help.frame.io/ko/articles/9875389-user-roles-and-permissions)
* 관계 및 속성 기반 액세스 제어에 대한 추가 정보는 OWASP [권한 부여 치트 시트](https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html#prefer-attribute-and-relationship-based-access-control-over-rbac)를 참조하세요.