시스템 전체 속성 기반 접근 정책

Mattermost v11.11번역일: 2026-09-02원본 보기

Entry, Enterprise Advanced 플랜에서 사용할 수 있습니다.

이 가이드에서는 시스템 콘솔에서 조직 전체에 적용되는 속성 기반 접근 정책을 만들고 관리하는 방법을 설명합니다. 정책은 채널과 팀 양쪽에 할당할 수 있습니다. 채널 관리자가 관리하는 채널 단위 규칙은 채널별 접근 규칙을, 팀 멤버십 정책은 팀 멤버십 접근 정책을 참고하세요.

사전 요구 사항

  • 속성 기반 접근 제어(ABAC)를 사용하려면 사용자 속성이 정의되어 있어야 합니다. 먼저 시스템 콘솔에서 사용자 속성을 구성하세요.
  • 그다음 System Console > System Attributes > Attribute-Based Access(시스템 콘솔 > 시스템 속성 > 속성 기반 접근)로 이동해 Mattermost 인스턴스의 속성 기반 접근 제어를 활성화합니다. 이 기능에는 Mattermost Enterprise Advanced 라이선스가 필요합니다.

Mattermost v10.11부터는 보안상의 이유로 사용자가 관리하는 속성이 속성 기반 접근 제어(ABAC) 규칙에서 기본적으로 제외됩니다. 사용자가 자신의 프로필 속성을 편집해 접근 제어 정책을 우회하는 것을 막기 위해서입니다. 사용자 관리 속성을 ABAC 규칙에 포함하려면 시스템 관리자가 EnableUserManagedAttributes 설정을 명시적으로 활성화해야 합니다. 이 기능을 활성화하는 방법은 사용자 속성 문서를 참고하세요. 이 설정은 Enterprise Edition Advanced에서만 제공되며 기본값은 비활성화입니다.

접근 제어 정책 정의

하나의 정책에 여러 규칙을 추가할 수 있고, 각 규칙에는 여러 속성 값을 포함할 수 있습니다.

  1. 시스템 콘솔에서 System Attributes > Attribute-Based Access로 이동해 Add Policy를 선택합니다.
  2. 고유한 정책 이름을 입력합니다. 상위 접근 제어 정책 이름은 고유해야 합니다. 이미 사용 중인 이름을 입력하면 Mattermost가 알기 쉬운 오류 메시지를 표시하고, 다른 이름을 고를 때까지 정책 저장을 막습니다.
  3. 구성한 속성 값과 일치하는 사용자를 새 멤버로 자동 추가할지 선택합니다. 자동 동기화는 기본적으로 비활성화되어 있습니다.
    • True: 사용자 속성이 바뀌면 정의된 규칙에 따라 채널 멤버십을 자동으로 유지합니다.
    • False(기본값): 정의된 규칙에 맞지 않는 멤버를 제거하고 해당 사용자가 채널에 추가되는 것만 막습니다. 사용자를 자동으로 추가하지는 않습니다.

    이 설정과 관계없이, 이후에 구성된 속성 값과 더 이상 일치하지 않게 된 사용자는 다음 채널 동기화 이후 채널에서 제거됩니다.

  4. 채널 멤버십을 제한할 속성 기반 접근 규칙을 정의합니다.

Simple Mode

Simple Mode는 단순하고 직관적인 접근 제어 시나리오에 적합합니다. 각 행은 사용자가 정책을 충족하기 위해 만족해야 하는 단일 조건입니다. Simple Mode는 중첩 논리나 혼합된 논리 연산자 없이 단순 조건만 지원합니다. 모든 규칙은 논리 AND 연산자 &&로 결합됩니다.

  1. Add attribute를 선택한 뒤 접근 제어에 사용할 속성을 선택합니다.
  2. 속성이 사용자 프로필과 어떻게 일치해야 하는지 지정합니다. 다음 옵션 중에서 선택할 수 있습니다.
    • Is: 속성이 값과 정확히 일치해야 합니다.
    • Is not: 속성이 지정한 값을 포함하지 않아야 합니다.
    • In: 속성이 값 중 하나 이상과 일치해야 합니다.
    • Starts with: 속성 값이 지정한 값으로 시작해야 합니다.
    • Ends with: 속성 값이 지정한 값으로 끝나야 합니다.
    • Contains: 속성 값 안에 지정한 값이 들어 있어야 합니다.

    선택한 속성이 Ranked(순위) 속성인 경우(보안 등급이나 분류 수준처럼 순서가 있는 값 목록), 일치 옵션이 순서 비교 방식으로 바뀝니다. 이를 통해 정확히 일치하는 값 하나가 아니라 기준값 이상인 모든 사용자를 대상으로 삼을 수 있습니다.

    • Is exactly / Is not: 값이 지정한 값과 정확히 일치해야 하거나, 일치하지 않아야 합니다.
    • Is at least: 값이 지정한 값과 같거나 더 높아야 합니다. 예를 들어 보안 등급이 is at least Secret이면 Secret과 그보다 높은 모든 등급이 일치합니다.
    • Is greater than: 값이 지정한 값보다 높아야 합니다.
    • Is at most: 값이 지정한 값과 같거나 더 낮아야 합니다.
    • Is less than: 값이 지정한 값보다 낮아야 합니다.
  3. 채널 접근 권한을 얻기 위해 사용자가 가지고 있어야 하는 속성 값을 지정합니다.

Advanced Mode

Advanced Mode는 여러 조건을 논리 연산자로 결합하기 위해 CEL 문법이 필요한 복잡한 접근 제어 시나리오에 적합합니다. user.<attribute> == <value> 같은 규칙을 지원하며, 여러 조건에는 && / ||(and/or)를, 조건 묶음에는 ()를 사용합니다. CEL 표현식 편집기는 실시간 문법 검증과 피드백은 물론, 속성·연산자·속성 값에 대한 맥락 인지형 자동 완성을 제공합니다.

Simple Mode에서 규칙을 정의하기 시작한 다음 Advanced Mode로 전환해 규칙을 더 정교하게 다듬을 수도 있습니다. 다만 다음 중 하나에 해당하면 Advanced에서 Simple로 되돌아갈 수 없습니다.

  • 조건 사이에 혼합된 논리 연산자를 사용한 경우.
  • 중첩 논리나 그룹화(괄호)가 있는 경우.
  • 지원하지 않는 연산자나 표현식이 감지된 경우.

문법 구조는 user.<attribute> <operator> <value>입니다.

입력하는 동안 자동 완성이 사용 가능한 속성을 보여 줍니다. 속성을 선택하면 자동 완성이 적절한 CEL 연산자를 제안합니다. 연산자를 선택한 뒤, 속성 값이 미리 정의되어 있으면 자동 완성이 선택할 값을 제안합니다. 연산자 누락, 잘못된 문법, 미완성 조건 같은 문제는 Mattermost가 명시적으로 알려 줍니다.

Validate syntax 바를 선택해 규칙의 문법을 검사합니다. 문법이 올바르면 바가 초록색으로 바뀌면서 문법이 유효하다는 메시지를 표시합니다. 문제가 있으면 바가 빨간색으로 바뀌면서 오류 메시지를 표시합니다.

접근 시뮬레이션

Test access rule을 선택하면 현재 규칙을 사용자 기반 전체에 적용해 보고, 그 규칙에 따라 몇 명이 채널 접근 권한을 얻게 되는지 확인할 수 있습니다. 의도한 범위가 맞는지, 예기치 않은 접근 변경이 생기지 않는지 규칙을 반드시 테스트하세요.

Mattermost v11.8.0부터는 Simulate access를 사용해 정책 변경을 저장하기 전에 특정 사용자에 대한 허용·거부 결과를 미리 볼 수 있습니다.

  1. 시스템 콘솔에서 정책 편집기를 엽니다.
  2. Simulate access를 선택합니다.
  3. 테스트할 사용자를 선택합니다.
  4. 채널 참여, 파일 업로드·다운로드 등 동작별 허용·거부 결과를 검토합니다.
  5. 저장하기 전에 규칙을 조정합니다.

시뮬레이션을 통해 초안 상태의 정책 변경이 실제 채널 접근이나 파일 권한에 영향을 주기 전에 테스트할 수 있습니다. 상세한 규칙·속성 정보는 거부가 현재 편집 중인 정책이나 범위에서 비롯된 경우에만 표시됩니다. 그렇지 않은 경우 Mattermost는 다른 정책에 의해 접근이 거부되었다고만 표시할 수 있습니다.

참고

Simulate access와 파일 업로드·파일 다운로드에 대한 채널 단위 권한 정책은 PermissionPolicies 기능 플래그(MM_FEATUREFLAGS_PERMISSIONPOLICIES)로 제어되며 Mattermost Enterprise Advanced 라이선스가 필요합니다. 자체 호스팅 배포에서 기능 플래그를 활성화하는 방법은 Mattermost 개발자 문서를 참고하세요. Mattermost Cloud 고객은 Mattermost 어카운트 매니저에게 문의하거나 지원 티켓을 생성해 이 기능 플래그 활성화를 요청할 수 있습니다.

규칙 관리

Simple Mode 또는 Advanced Mode 중 어느 쪽에서든 언제든지 기존 규칙을 변경하거나 제거할 수 있습니다. 변경 사항을 저장하려면 Save를 선택합니다.

채널에 정책 할당

Mattermost v11.8부터 시스템 전체 정책을 비공개 채널과 공개 채널 모두에 할당할 수 있습니다. Add channels를 선택해 원하는 채널을 검색하고 선택합니다. 여러 채널에 정책을 한 번에 할당할 수도 있고, 나중에 개별 채널에 할당할 수도 있습니다. 변경 사항을 저장하려면 Save를 선택합니다.

같은 정책이라도 두 채널 유형의 동작은 다릅니다.

  • 비공개 채널은 엄격하게 차단됩니다. 정책은 조건에 맞는 사용자를 추가하고(자동 추가가 활성화된 경우), 동기화 과정에서 조건에 맞지 않는 멤버를 제거하며, 조건에 맞지 않는 사용자가 추가되거나 초대되는 것을 막습니다.
  • 공개 채널은 권고 성격입니다. 정책은 멤버를 제거하지 않고 누구의 참여도 막지 않습니다. 자동 추가를 활성화하면 조건에 맞는 사용자를 자동으로 추가하고, 자동 추가를 비활성화하면 조건에 맞는 사용자에게 Browse Channels > Recommended channels(채널 둘러보기 > 추천 채널)에 해당 채널이 표시됩니다.

저장하기 전에 변경의 영향을 확인하라는 안내가 표시되므로, 각 채널 유형에 어떤 영향이 있는지 검토할 수 있습니다.

기본 채널(Town Square, Off-Topic 등), 공유 채널, 그룹 동기화 채널은 여전히 대상이 아니며 채널 선택기에서 제외됩니다.

참고

속성 기반 접근 제어 정책이 적용된 비공개 채널에는 게스트 사용자를 초대할 수 없습니다. ABAC로 제어되는 비공개 채널에는 정의된 속성 기준을 충족하는 사용자만 추가할 수 있어, 접근 제어 정책이 엄격하게 지켜집니다. 공개 채널은 정책과 관계없이 누구나 참여할 수 있습니다.

팀에 정책 할당

Mattermost v11.10부터 시스템 전체 정책을 팀에도 할당할 수 있습니다. System Console > User Management > Teams(시스템 콘솔 > 사용자 관리 > 팀)로 이동해 구성할 팀을 엽니다. Team Management 섹션에서 Manage membership with attribute based membership policies를 활성화합니다. 이 토글을 켜야만 Membership policies 섹션이 나타납니다. 그다음 기존 정책을 연결하고 Save를 선택합니다.

그룹 동기화 팀은 멤버십 정책을 사용할 수 없으므로 해당 팀에서는 이 토글을 사용할 수 없습니다.

정책은 팀의 공개 여부에 따라 다르게 동작합니다.

  • 비공개 팀 — 엄격 적용: 참여가 차단되고, 조건을 충족하지 못하는 멤버는 동기화 시점에 제거되며, Browse Teams에서 조건을 충족하지 못하는 비멤버에게는 팀이 표시되지 않습니다.
  • 공개 팀 — 권고: 정책이 차단 장치로 작동하지 않습니다. 조건을 충족하는 비멤버에게는 Browse Teams에서 Recommended 칩이 표시되며, 누구나 자유롭게 참여할 수 있습니다.

팀 할당, 맞춤 규칙, 동기화 구성, 최종 사용자 화면에 대한 전체 설명은 팀 멤버십 접근 정책을 참고하세요.

정책 삭제

정책을 삭제하려면 삭제할 정책 옆의 Delete 버튼을 선택합니다. 아직 채널에 할당되어 있는 정책은 삭제할 수 없으므로, 먼저 해당 채널에서 정책을 제거하세요.

삭제 전에 팀 할당은 확인하지 않으므로, 정책을 삭제하기 전에 그 정책을 사용하는 모든 팀에서 연결을 해제하세요. 그러지 않으면 해당 팀들이 더 이상 존재하지 않는 정책에 대한 참조를 그대로 유지하게 됩니다.

채널별 접근 제어 정의

채널 멤버십을 더 세밀하게 제어하기 위해 기존 접근 제어 정책을 비공개 채널이나 공개 채널에 할당할 수 있습니다. 채널마다 다른 규칙을 적용해야 할 때 유용합니다.

  1. 시스템 콘솔에서 User Management > Channels로 이동해 구성할 비공개 채널 또는 공개 채널을 선택하고 Edit를 선택합니다.
  2. Channel Management 섹션에서 Enable attribute-based channel access 옵션을 활성화합니다.
  3. Access policy 아래에서 Link to a policy를 선택해 기존 정책을 선택합니다.

정책이 연결된 뒤에는 정책을 제거하기 전까지 해당 채널의 공개/비공개 상태를 바꿀 수 없습니다. 채널별 접근 규칙을 참고하세요.

팁

시스템 콘솔의 채널 상세 페이지에서 Channel Management 아래의 Enable attribute-based channel access 옵션을 활성화해 채널에 ABAC 규칙을 바로 할당할 수도 있습니다. Access policy 아래에서 Link to a policy를 선택해 기존 정책을 선택합니다.

채널 정책 제거

Remove Policy를 선택해 해당 채널의 정책을 비활성화합니다. 이후 원하면 그 채널을 다른 정책에 연결할 수 있습니다.

권한 정책

Mattermost v11.7부터 시스템 관리자는 채널 멤버십 외에 특정 사용자 동작을 제한하는 속성 기반 권한 정책을 정의할 수 있습니다. 권한 정책은 접근 정책과 동일한 속성 기반 규칙을 사용하지만, 채널 접근이 아니라 사용자 동작에 적용됩니다.

권한 정책으로 사용자 속성을 기준으로 다음 동작을 제한할 수 있습니다.

  • 파일 업로드: 정의된 속성 규칙에 맞지 않는 사용자가 파일 첨부를 업로드하지 못하도록 막습니다.
  • 파일 다운로드: 정의된 속성 규칙에 맞지 않는 사용자가 파일 첨부를 다운로드하지 못하도록 막습니다.

권한 정책이 적용되면, 구성된 속성 값에 맞지 않는 사용자는 제한된 동작을 수행할 수 없습니다. 이런 사용자에게는 원래라면 접근할 수 있었던 메시지에서도 파일 첨부가 사용 불가 상태이거나 가려진 상태로 보일 수 있습니다. 최종 사용자에게 보이는 동작은 제한된 파일 첨부를 참고하세요.

권한 정책도 접근 정책과 동일하게 이름 고유성 요건을 따릅니다. 각 상위 권한 정책은 고유한 이름을 가져야 하며, 중복된 이름을 입력하면 Mattermost가 알기 쉬운 오류를 표시합니다.

속성 값 마스킹

Mattermost v11.8부터, 편집 중인 관리자가 직접 보유하지 않은 속성 값을 정책이 참조하는 경우 정책 편집기에서 해당 값이 가려집니다. 이렇게 하면 관리자가 열람 권한이 없는 민감한 속성 값을 읽거나 복사하는 것을 막으면서도, 정책은 정상적으로 접근 제어를 수행할 수 있습니다.

마스킹은 shared_only 또는 source_only 접근 모드로 구성된 속성에만 적용됩니다. public 접근 모드인 속성은 항상 모든 관리자에게 보입니다. 각 모드가 값 노출을 어떻게 제어하는지는 속성 접근 모드를 참고하세요.

화면에서 보이는 모습:

  • 마스킹된 값은 규칙 편집기에서 원래 값 대신 --------로 표시됩니다.
  • 마스킹된 값이 포함된 행은 읽기 전용이며 수정할 수 없습니다.
  • 마스킹된 값이 포함된 규칙에서는 Test rule과 Delete 동작이 비활성화됩니다.

적용에는 영향이 없습니다: 마스킹은 편집 UI에만 적용됩니다. 기저의 규칙은 구성된 대로 계속 채널 접근과 권한을 제어합니다.

마스킹된 규칙을 편집하려면, 정책 소유자나 해당 속성 값을 보유한 다른 시스템 관리자에게 변경을 요청하세요.

이 동작은 테이블 편집기와 CEL 편집기 양쪽에 적용되며, 팀 설정과 채널 설정의 팀 관리자·채널 관리자 정책 편집기에도 동일하게 적용됩니다. Enterprise Advanced 라이선스와 AttributeValueMasking 기능 플래그가 필요합니다.