Salesforce에서 파일을 볼 수 있는 사람은? 파일 접근 권한 해설
Salesforce가 파일 열람 권한을 정하는 방식: 개별 공유, 레코드 첨부 파일, 라이브러리 파일, 공개 링크와 게스트 사용자, 그리고 접근 권한을 확인하는 방법.
Salesforce의 파일 접근 권한이 사람들을 헷갈리게 하는 이유는, 그것이 레코드 접근 권한과 다르게 작동하기 때문입니다. 하지만 사실 파일 접근 권한이 레코드 접근 권한 위에 세워져 있다는 점을 깨닫는 순간 이해가 됩니다. 오늘날의 “파일”은 ContentDocument(Salesforce Files 모델)이며, 여러 개의 독립적인 경로를 통해 동시에 열람 가능해질 수 있습니다.
이 글에서는 누군가가 파일을 볼 수 있게 되는 모든 경로와, 그중 어느 것이 적용되는지 확인하는 방법을 차근차근 살펴봅니다.
파일을 볼 수 있게 되는 다섯 가지 경로
다음 중 하나라도 해당되면 사용자는 파일을 볼 수 있습니다.
- 소유자인 경우 — 본인이 업로드했습니다.
- 본인에게 직접 공유된 경우 — 파일의 Share 버튼을 통해 Viewer 또는 Collaborator로 공유받았습니다.
- 파일이 첨부된 레코드를 볼 수 있는 경우 — 파일 접근 권한은 레코드에서 상속됩니다.
- 파일이 속한 라이브러리의 구성원인 경우 — 라이브러리의 권한 수준에 따릅니다.
- 공개 링크를 가진 경우 — URL을 가진 사람은 누구나, 로그인 없이 접근할 수 있습니다.
레코드 접근 권한과 마찬가지로 파일 접근 권한도 누적적입니다. 가장 관대한 경로가 이깁니다. 이는 레코드 공유 모델을 그대로 반영합니다. 권한 부여 하나면 충분합니다.
사람들을 놀라게 하는 경로: 레코드에 첨부된 파일
이것이 핵심입니다. Account, Opportunity, Case에 파일을 끌어다 놓으면 Salesforce는 파일과 그 레코드 사이에 ContentDocumentLink를 생성합니다. 그 시점부터는 다음과 같습니다.
레코드를 볼 수 있는 사람은 누구나 파일을 볼 수 있고, 대개 다운로드까지 할 수 있습니다.
따라서 파일의 열람 대상은 곧 레코드의 열람 대상과 정확히 일치합니다. 영업 관리자 세 명이 역할 계층을 통해 Opportunity를 볼 수 있다면, 세 명 모두 그 파일도 볼 수 있습니다. 레코드를 잠그면 파일도 잠기고, 레코드의 공유 범위를 넓히면 파일도 따라갑니다.
공유 유형: Viewer, Collaborator, Inferred
파일과 레코드(또는 파일과 사용자)를 잇는 각 링크에는 ShareType이 있습니다.
| 유형 | 코드 | 할 수 있는 것 |
|---|---|---|
| Viewer | V | 파일 열기 및 다운로드 |
| Collaborator | C | 보기, 편집, 새 버전 업로드, 공유 변경 |
| Inferred | I | 첨부된 레코드 접근 권한에서 상속된 보기/편집 수준 |
레코드를 편집할 수 있는 사용자가 그 파일까지 편집할 수 있는 이유가 바로 Inferred 접근 권한 때문입니다.
라이브러리(ContentWorkspace) 파일
파일은 라이브러리 안에 존재할 수 있습니다. 해당 라이브러리의 구성원 여부와 부여된 권한 수준(Viewer, Author 등)이, 레코드와 무관하게 그 파일을 누가 보고 관리할 수 있는지를 결정합니다.
공개 링크는 모든 것을 우회한다
공개 링크를 만들면 회사 내부든 외부든 누구에게나 로그인 없이 작동하는 URL이 생성됩니다.
- 수신자는 보고 다운로드할 수 있지만, 협업(편집)은 할 수 없습니다.
- 만료일은 기본적으로 설정되어 있으며(보통 90일 후), 더 짧게 조정할 수 있습니다.
- 비밀번호를 추가할 수 있습니다.
공개 링크는 공유 모델을 완전히 무시하므로 자격 증명처럼 다루세요. 만료일을 설정하고, 민감한 자료에는 비밀번호를 추가하며, 더 이상 필요 없는 링크는 삭제하세요.
”공유된” 파일이 보고서에서 사라지는 이유
레코드에 첨부된 파일은 사용자에게 직접 공유된 것이 아니라 레코드를 통해 비공개로 공유된 것으로 간주됩니다. 그 결과, 공유 설정과 관계없이 표준 File 및 Content 보고서에 나타나지 않습니다. 파일을 보고서에 보이게 하려면 파일의 Share 버튼을 통해 사용자에게 직접 공유하세요. 이는 “파일이 사라졌다”는 단골 지원 티켓의 원인인데, 사실 설계대로 작동하는 것입니다.
특정 파일을 볼 수 있는 사람을 확인하는 방법
- 파일을 열고 Share를 사용해 직접적인 사용자/그룹 공유와 공유 유형을 확인합니다.
- 파일이 첨부된 레코드를 모두 나열합니다. 각 레코드의 열람 대상이 그 파일을 볼 수 있습니다.
- 파일이 라이브러리에 속해 있는지, 그리고 누가 구성원인지 확인합니다.
- 활성화된 공개 링크가 있는지 살펴봅니다.
함정은 이렇습니다. 여러 레코드에 첨부된 파일은 각 레코드의 전체 열람 대상을 상속합니다. 역할 계층, 공유 규칙, 팀까지 전부 말이죠. 이를 수작업으로 재구성하는 일이야말로 의도치 않은 노출이 숨어드는 지점입니다.
AgentForceAccess는 레코드에 대해 그러하듯, “이 파일을 누가 왜 볼 수 있는가”라는 질문에 답합니다. 파일이 올라타 있는 모든 레코드와 그것을 노출시키는 모든 공유를 추적하여 쉬운 말로 풀어 줍니다.
자주 묻는 질문
파일을 Opportunity에 첨부하면 누가 볼 수 있나요?
그 Opportunity를 볼 수 있는 모든 사람입니다. 레코드의 파일 접근 권한은 레코드 접근 권한에서 상속됩니다. 즉, 레코드를 노출시키는 역할 계층, 공유 규칙, 수동 공유가 그대로 파일도 노출시킵니다. 레코드를 제한하면 파일도 제한됩니다.
제가 레코드에 공유한 파일을 동료가 보지 못하는 이유는 무엇인가요?
대부분은 그 동료가 레코드 자체에 접근할 수 없거나, 파일이 다른 레코드에 공유되었기 때문입니다. 레코드에 첨부된 파일은 레코드를 통해 비공개로 공유되므로 표준 File 및 Content 보고서에도 나타나지 않습니다. 보고서에 보이게 하려면 파일을 해당 사용자에게 직접 공유하세요.
공개 파일 링크는 안전한가요?
편의를 위해 보안을 일부 포기하는 방식입니다. URL을 가진 사람은 누구나 로그인 없이 파일을 보고 다운로드할 수 있으므로 공개 링크를 비밀번호처럼 다루세요. 가능하면 만료일과 비밀번호를 설정하고, 더 이상 필요 없는 링크는 삭제하세요.
파일의 Viewer와 Collaborator는 무엇이 다른가요?
Viewer는 파일을 열고 다운로드할 수 있습니다. Collaborator는 여기에 더해 파일을 편집하고, 새 버전을 업로드하며, 공유 설정을 변경할 수 있습니다. 세 번째 유형인 Inferred 접근 권한은 파일이 첨부된 레코드에 접근할 수 있어서 사용자가 얻게 되는 보기/편집 수준입니다.
직접 내 조직에서 확인해 보세요
AgentForceAccess는 모든 Salesforce 공유 메커니즘에 걸쳐, 어떤 사용자가 왜 특정 레코드나 파일을 볼 수 있는지 쉬운 말로 설명합니다.
얼리 액세스 신청