InfoGrab DocsInfoGrab Docs

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

요약

이 가이드를 사용하여 System Console에서 조직 전체 속성 기반 접근 정책을 만들고 관리합니다. Mattermost v10.11부터 사용자 관리 속성은 보안상의 이유로 기본적으로 ABAC(속성 기반 접근 제어) 규칙에서 제외됩니다.

사용 가능 플랜: Entry, Enterprise Advanced

이 가이드를 사용하여 System Console에서 조직 전체 속성 기반 접근 정책을 만들고 관리합니다. 정책은 채널과 팀 모두에 할당할 수 있습니다. 채널 관리자가 관리하는 채널 수준 규칙은 채널별 접근 규칙을 참조하세요. 팀 멤버십 정책은 팀 멤버십 접근 정책을 참조하세요.

사전 요구 사항#

  • 속성 기반 접근 제어(ABAC)에는 정의된 사용자 속성이 필요합니다. 먼저 System Console에서 사용자 속성을 설정하세요. Mattermost v12.0 이상은 속성 관리를, 이전 릴리즈는 사용자 속성을 참조하세요.
  • 그런 다음 System Console > System Attributes > Attribute-Based Access 로 이동하여 Mattermost 인스턴스에 대한 속성 기반 접근 제어를 활성화합니다. 이 기능은 Mattermost Enterprise Advanced 라이선스가 필요합니다.

Mattermost v10.11부터 사용자 관리 속성은 보안상의 이유로 기본적으로 ABAC(속성 기반 접근 제어) 규칙에서 제외됩니다. 이는 사용자가 자신의 프로필 속성을 편집하여 접근 제어 정책을 우회하지 못하도록 합니다. 사용자 관리 속성을 ABAC 규칙에 포함시키려면 시스템 관리자가 EnableUserManagedAttributes 설정을 명시적으로 활성화해야 합니다. 이 기능 활성화에 대한 자세한 내용은 사용자 속성 문서를 참조하세요. 이 설정은 Enterprise Edition Advanced에서만 사용 가능하며 기본적으로 비활성화되어 있습니다.

Mattermost v12부터 사용자의 IP 주소, VPN 상태, 기기 보안 상태(device posture)와 같이 사용자가 연결된 환경을 설명하는 세션 속성을 권한 정책에서 사용할 수 있습니다. 규칙이 세션 속성을 참조하려면 먼저 System Console > System Attributes > Session Attributes 에서 각 세션 속성을 활성화해야 합니다.

접근 제어 정책 정의#

단일 정책에 여러 규칙을 추가할 수 있으며 각 규칙에는 여러 속성 값을 포함할 수 있습니다.

  1. System Console에서 System Attributes > Attribute-Based Access 로 이동하고 정책 추가를 선택합니다.

  2. 고유한 정책 이름을 입력합니다. 상위 접근 제어 정책 이름은 고유해야 합니다. 이미 사용 중인 이름을 입력하면 Mattermost는 사용자 친화적인 오류 메시지를 표시하고, 다른 이름을 선택할 때까지 정책이 저장되지 않도록 막습니다.

  3. 설정된 속성 값에 일치하는 사용자를 새 멤버로 자동 추가할지 여부를 선택합니다. 자동 동기화는 기본적으로 비활성화되어 있습니다.

    • True: 사용자 속성이 변경됨에 따라 정의된 규칙에 따라 채널 멤버십을 자동으로 유지합니다.
    • False (기본값): 멤버를 제거하고 정의된 규칙에 일치하지 않는 경우 채널에 추가하는 것만 제한합니다. 사용자는 자동으로 추가되지 않습니다.

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

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

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

1.  **속성 추가**를 선택하고 접근 제어에 사용할 속성을 선택합니다.

2.  속성이 사용자 프로필과 어떻게 일치해야 하는지 지정합니다. 다음 옵션 중에서 선택할 수 있습니다.

    > - **Is**: 속성이 값과 정확히 일치해야 합니다.
    > - **Is not**: 속성에 지정된 값이 포함되어서는 안 됩니다.
    > - **In**: 속성이 적어도 하나의 값과 일치해야 합니다.
    > - **Starts with**: 속성 값이 지정된 값으로 시작해야 합니다.
    > - **Ends with**: 속성 값이 지정된 값으로 끝나야 합니다.
    > - **Contains**: 속성 값에 지정된 값이 어딘가에 존재해야 합니다.
    >
    > 선택한 속성이 **순위 있음**(순위가 있는) 속성(허가 등급이나 분류 등급과 같이 순서가 있는 값 목록)인 경우, 일치 옵션은 정확한 값 대신 순서 기반 비교로 제공됩니다. 이를 통해 정확한 값 하나만이 아니라 임계값 이상에 해당하는 모든 사용자를 일치시킬 수 있습니다.
    >
    > - **Is exactly** / **같지 않음**: 값이 지정된 값과 정확히 일치해야 하거나, 일치하지 않아야 합니다.
    > - **Is at least**: 값이 지정된 값과 같거나 더 높아야 합니다 - 예를 들어, 허가 등급이 *Is at least* Secret이면 Secret 및 그 이상의 모든 등급과 일치합니다.
    > - **Is greater than**: 값이 지정된 값보다 높아야 합니다.
    > - **Is at most**: 값이 지정된 값과 같거나 더 낮아야 합니다.
    > - **Is less than**: 값이 지정된 값보다 낮아야 합니다.

3.  채널에 접근 권한이 부여되기 위해 사용자가 가져야 하는 속성 값을 지정합니다.

고급 모드는 user.<attribute> == <value> 와 같은 규칙을 지원하고, 여러 조건에 && / || (AND/OR)를 사용하며, () 로 조건을 그룹화하는 CEL 구문이 필요한 복잡한 접근 제어 시나리오에 이상적입니다. CEL 표현식 편집기는 실시간 구문 유효성 검사 및 피드백과 함께 속성, 연산자 및 속성 값에 대한 컨텍스트 인식 자동 완성을 제공합니다.

기본 모드에서 규칙 정의를 시작한 다음 필요에 따라 고급 모드로 전환하여 규칙을 세밀하게 조정할 수도 있습니다. 그러나 다음 중 하나가 해당하면 고급 모드에서 기본 모드로 전환하는 것이 차단됩니다.

- 조건 간에 혼합 논리 연산자가 사용된 경우.
- 중첩 논리/그룹화(괄호)가 있는 경우.
- 지원되지 않는 연산자 또는 표현식이 감지된 경우.

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

입력하면 자동 완성에서 사용 가능한 속성이 표시됩니다. 속성을 선택하면 자동 완성에서 적절한 CEL 연산자를 제안합니다. 연산자를 선택한 후 속성 값이 미리 정의된 경우 자동 완성에서 선택할 값을 제안합니다. Mattermost는 누락된 연산자, 잘못된 구문, 불완전한 조건과 같은 문제를 명시적으로 표시합니다.

**구문 유효성 검사** 바를 선택하여 규칙의 구문을 확인합니다. 구문이 유효하면 바가 녹색으로 변하고 구문이 유효하다는 메시지가 표시됩니다. 문제가 있으면 바가 빨간색으로 변하고 오류 메시지가 표시됩니다.

접근 시뮬레이션#

접근 규칙 테스트를 선택하여 현재 규칙을 기반으로 채널에 접근 권한이 부여될 사용자 수를 반환하는 사용자 기반에 대해 규칙을 테스트합니다. 의도한 범위를 확인하고 예상치 못한 접근 변경을 방지하기 위해 규칙을 테스트하세요.

Mattermost v11.8.0부터 정책 변경 사항을 저장하기 전에 특정 사용자에 대한 허용 및 거부 결과를 미리 보기 위해 접근 시뮬레이션(접근 시뮬레이션)를 사용할 수 있습니다.

  1. System Console에서 정책 편집기를 엽니다.
  2. 접근 시뮬레이션을 선택합니다.
  3. 테스트할 사용자를 선택합니다.
  4. 채널 참여나 파일 업로드 및 다운로드와 같은 작업별로 허용 및 거부 결과를 검토합니다.
  5. 저장하기 전에 규칙을 조정합니다.

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

Mattermost v12부터 결과에 중립적인 최근 세션 없음 표시가 나타날 수도 있습니다. 이 표시는 결과에 영향을 주는 규칙이 세션 속성(user.session.*)을 참조하고 선택한 사용자에게 평가할 캐시된 세션 속성이 없을 때 나타납니다. 대개 최근에 연결하지 않았거나 해당 속성을 보고하는 클라이언트에서 연결하지 않았기 때문입니다.

Note

접근 시뮬레이션 및 채널 수준 권한 정책은 PermissionPolicies 기능 플래그(MM_FEATUREFLAGS_PERMISSIONPOLICIES)로 제어되며 Mattermost Enterprise Advanced 라이선스가 필요합니다. 셀프 호스팅 배포에서 기능 플래그를 활성화하는 방법에 대한 자세한 내용은 Mattermost 개발자 문서의 셀프 호스팅 및 로컬 개발 환경에서 기능 플래그 활성화를 참조하세요. Mattermost Cloud 고객은 Mattermost 계정 관리자에게 문의하거나 지원 티켓 생성을 통해 이 기능 플래그 활성화를 요청할 수 있습니다.

규칙 관리#

기본 모드 또는 고급 모드를 사용하여 언제든지 기존 규칙에 변경 사항을 적용하거나 규칙을 제거할 수 있습니다. 저장을 선택하여 변경 사항을 저장합니다.

채널에 정책 할당#

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

두 채널 유형은 동일한 정책 아래에서 다르게 동작합니다.

  • 비공개 채널은 강제 게이트로 작동합니다. 정책은 (자동 추가가 활성화된 경우) 일치하는 사용자를 추가하고, 동기화 중 일치하지 않는 멤버를 제거하며, 일치하지 않는 사용자가 추가되거나 초대되는 것을 막습니다.
  • 공개 채널은 권고적으로 작동합니다. 정책은 멤버를 제거하지 않으며 누구도 참여를 막지 않습니다. 자동 추가가 활성화된 경우 일치하는 사용자를 자동으로 추가하며, 자동 추가가 비활성화된 경우 일치하는 사용자에게 Browse Channels > Recommended channels 아래에 채널이 표시됩니다.

저장하기 전에 변경 사항의 영향을 확인하라는 메시지가 표시되어 각 채널 유형에 미치는 영향을 검토할 수 있습니다.

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

Note

속성 기반 접근 제어 정책이 있는 비공개 채널에는 게스트 사용자를 초대할 수 없습니다. 정의된 속성 기준에 일치하는 사용자만 ABAC 제어 비공개 채널에 추가할 수 있어 접근 제어 정책의 엄격한 준수가 보장됩니다. 공개 채널은 정책과 관계없이 누구나 계속 참여할 수 있습니다.

팀에 정책 할당#

Mattermost v11.10부터 시스템 전체 정책을 팀에도 할당할 수 있습니다. System Console > User Management > Teams 로 이동하여 설정할 팀을 엽니다. 팀 관리 섹션에서 속성 기반 멤버십 정책으로 멤버십 관리 를 활성화합니다 — 이 토글을 켜야만 멤버십 정책 섹션이 표시됩니다. 그런 다음 기존 정책을 연결하고 저장을 선택합니다.

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

정책은 팀의 공개 범위 모드에 따라 다르게 동작합니다.

  • 비공개 팀 — 엄격한 적용: 참여가 제한되고, 자격이 없는 멤버는 동기화 시 제거되며, 팀은 Browse Teams 에서 자격이 없는 비멤버에게 숨겨집니다.
  • 공개 팀 — 권고적: 정책이 게이트로 작동하지 않습니다. 자격이 있는 비멤버에게는 Browse Teams 에서 추천 칩이 표시되며, 누구나 여전히 자유롭게 참여할 수 있습니다.

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

정책 삭제#

제거하려는 정책 옆의 삭제 버튼을 선택하여 정책을 삭제합니다. 여전히 채널에 할당된 정책은 삭제할 수 없습니다 — 먼저 해당 채널에서 정책을 제거하세요.

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

채널별 접근 제어 정의#

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

  1. System Console에서 User Management > Channels 로 이동하여 설정할 비공개 또는 공개 채널을 선택하고 편집을 선택합니다.
  2. 채널 관리 섹션에서 속성 기반 채널 접근 활성화 옵션을 활성화합니다.
  3. 접근 정책 아래에서 정책에 연결을 선택하여 기존 정책을 선택합니다.

정책이 연결되면 정책이 제거될 때까지 채널의 공개/비공개 설정을 더 이상 전환할 수 없습니다 — 자세한 내용은 채널별 접근 규칙을 참조하세요.

Tip

System Console의 채널 관리 아래에 있는 채널 세부 정보 페이지에서 속성 기반 채널 접근 활성화 옵션을 활성화하여 채널에 ABAC 규칙을 직접 할당할 수도 있습니다. 접근 정책 아래에서 정책에 연결을 선택하여 기존 정책을 선택합니다.

채널 정책 제거#

정책 제거를 선택하여 채널에 대한 정책을 비활성화합니다. 원하는 경우 채널을 다른 정책에 연결할 수 있습니다.

권한 정책#

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

권한 정책은 사용자 속성을 기반으로 다음 작업을 제한하는 데 사용할 수 있습니다.

  • 파일 업로드: 정의된 속성 규칙에 일치하지 않는 사용자가 파일 첨부 파일을 업로드하지 못하도록 방지합니다.
  • 파일 다운로드: 정의된 속성 규칙에 일치하지 않는 사용자가 파일 첨부 파일을 다운로드하지 못하도록 방지합니다.
  • 읽은 후 삭제 메시지 작성: 정의된 속성 규칙에 일치하지 않는 사용자가 읽은 후 삭제(burn-on-read) 메시지를 보내지 못하도록 방지합니다.

권한 정책이 적용되면 설정된 속성 값에 일치하지 않는 사용자는 제한된 작업을 수행할 수 없습니다. 예를 들어 사용자는 원래 접근할 수 있었던 메시지에서 파일 첨부 파일이 사용 불가능하거나 편집(redacted)된 것으로 표시될 수 있으며, 메시지 도구 모음에서 Burn-on-read 아이콘을 사용할 수 없을 수도 있습니다. 최종 사용자에게 보이는 동작에 대한 자세한 내용은 제한된 파일 첨부 및 읽은 후 삭제 메시지 보내기를 참조하세요.

Warning

권한 정책은 사용자가 Mattermost 클라이언트나 REST API를 통해 작업할 때 평가됩니다. 연동 기능이 만들거나 읽는 콘텐츠에는 평가되지 않습니다.

  • 플러그인은 권한 정책의 적용을 받지 않습니다. 플러그인은 서버 수준의 신뢰로 실행되며 모든 사용자를 대신하여 메시지를 게시하고 파일 첨부 파일을 업로드하거나 읽을 수 있습니다. 플러그인 API는 플러그인 작성자가 호출할 수 있는 권한 확인 기능을 제공하지만, Mattermost는 플러그인을 대신하여 이를 강제하지 않습니다.
  • 인커밍 웹훅과 사용자 지정 슬래시 명령어는 권한 정책에 따른 평가 없이 읽은 후 삭제 메시지를 포함한 메시지를 게시할 수 있습니다. 웹훅 메시지는 웹훅을 만든 사용자의 메시지로 처리되고, 슬래시 명령어 응답은 명령어를 입력한 사용자의 메시지로 처리되며, 명령어의 응답 URL로 보내는 지연 응답도 마찬가지입니다. 둘 다 파일 첨부 파일을 업로드할 수 없습니다.
  • 예약 메시지는 메시지를 보낼 때가 아니라 예약할 때 평가되므로, 정책이 강화되기 전에 예약된 메시지는 그대로 전달됩니다.

파일 다운로드 제한은 메시지가 사용자의 클라이언트로 전달될 때도 적용되므로, 플러그인이 메시지를 게시한 경우에도 제한된 사용자는 Mattermost를 통해 파일 첨부 파일을 받지 못합니다. 이는 플러그인이 서버에서 파일 콘텐츠를 읽는 경우에는 적용되지 않습니다.

권한 정책에 의존하는 채널에서는 설치하는 플러그인을 검토하고, System Console의 연동 관리 권한을 사용하여 인커밍 웹훅과 사용자 지정 슬래시 명령어를 만들 수 있는 사용자를 제어하세요.

읽은 후 삭제 메시지 작성 제한은 읽은 후 삭제 메시지 활성화 설정과 별개로 추가 적용되며, 누구든 읽은 후 삭제 메시지를 보내려면 이 설정이 활성화되어 있어야 합니다. 권한 정책은 메시지를 보낼 수 있는 사용자를 좁힐 뿐이며, 설정이 비활성화된 경우 이를 활성화할 수는 없습니다.

권한 정책은 접근 정책과 동일한 고유 이름 요구 사항을 따릅니다. 각 상위 권한 정책은 고유한 이름을 가져야 하며, 중복된 이름이 입력되면 Mattermost는 사용자 친화적인 오류를 표시합니다.

Mattermost v12부터 권한 정책 규칙은 세션 속성도 평가할 수 있습니다 - 예를 들어 파일 다운로드를 회사 IP 대역의 기기나 MDM에 등록된 기기로 제한할 수 있습니다. 세션 속성을 참조하는 규칙은 해당 속성을 보고하지 않는 모든 세션을 거부하므로, 사용자가 의존하는 파일 작업에 적용하기 전에 각 속성의 플랫폼별 사용 가능 여부를 검토하세요. mdm_enrolled 와 같이 클라이언트가 보고하는 속성은 증명이 아니라 스스로 보고한 보안 상태 신호이므로, 더 강력한 보증이 필요하면 서버가 측정한 값을 기준으로 제어하세요 - IP 대역 확인을 사용하는 ip_address 또는 리버스 프록시가 지정하는 tls_device_id 가 해당합니다.

속성 값 마스킹#

Mattermost v11.8부터 정책이 편집 중인 관리자가 개인적으로 보유하지 않은 속성 값을 참조하는 경우, 해당 값은 정책 편집기에서 숨겨집니다. 이를 통해 관리자가 권한이 없는 민감한 속성 값을 읽거나 복사하는 것을 방지하면서도 정책이 정상적으로 접근 제어를 적용할 수 있도록 합니다.

마스킹은 shared_only 또는 source_only 접근 모드로 구성된 속성에만 적용됩니다. public 접근 모드인 속성은 모든 관리자에게 항상 표시됩니다. 각 모드가 값 표시를 제어하는 방식에 대한 자세한 내용은 속성 접근 모드를 참조하세요.

표시되는 내용:

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

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

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

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

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

Mattermost v12.0
원문 보기

요약

이 가이드를 사용하여 System Console에서 조직 전체 속성 기반 접근 정책을 만들고 관리합니다. Mattermost v10.11부터 사용자 관리 속성은 보안상의 이유로 기본적으로 ABAC(속성 기반 접근 제어) 규칙에서 제외됩니다.

사용 가능 플랜: Entry, Enterprise Advanced

이 가이드를 사용하여 System Console에서 조직 전체 속성 기반 접근 정책을 만들고 관리합니다. 정책은 채널과 팀 모두에 할당할 수 있습니다. 채널 관리자가 관리하는 채널 수준 규칙은 채널별 접근 규칙을 참조하세요. 팀 멤버십 정책은 팀 멤버십 접근 정책을 참조하세요.

사전 요구 사항#

  • 속성 기반 접근 제어(ABAC)에는 정의된 사용자 속성이 필요합니다. 먼저 System Console에서 사용자 속성을 설정하세요. Mattermost v12.0 이상은 속성 관리를, 이전 릴리즈는 사용자 속성을 참조하세요.
  • 그런 다음 System Console > System Attributes > Attribute-Based Access 로 이동하여 Mattermost 인스턴스에 대한 속성 기반 접근 제어를 활성화합니다. 이 기능은 Mattermost Enterprise Advanced 라이선스가 필요합니다.

Mattermost v10.11부터 사용자 관리 속성은 보안상의 이유로 기본적으로 ABAC(속성 기반 접근 제어) 규칙에서 제외됩니다. 이는 사용자가 자신의 프로필 속성을 편집하여 접근 제어 정책을 우회하지 못하도록 합니다. 사용자 관리 속성을 ABAC 규칙에 포함시키려면 시스템 관리자가 EnableUserManagedAttributes 설정을 명시적으로 활성화해야 합니다. 이 기능 활성화에 대한 자세한 내용은 사용자 속성 문서를 참조하세요. 이 설정은 Enterprise Edition Advanced에서만 사용 가능하며 기본적으로 비활성화되어 있습니다.

Mattermost v12부터 사용자의 IP 주소, VPN 상태, 기기 보안 상태(device posture)와 같이 사용자가 연결된 환경을 설명하는 세션 속성을 권한 정책에서 사용할 수 있습니다. 규칙이 세션 속성을 참조하려면 먼저 System Console > System Attributes > Session Attributes 에서 각 세션 속성을 활성화해야 합니다.

접근 제어 정책 정의#

단일 정책에 여러 규칙을 추가할 수 있으며 각 규칙에는 여러 속성 값을 포함할 수 있습니다.

  1. System Console에서 System Attributes > Attribute-Based Access 로 이동하고 정책 추가를 선택합니다.

  2. 고유한 정책 이름을 입력합니다. 상위 접근 제어 정책 이름은 고유해야 합니다. 이미 사용 중인 이름을 입력하면 Mattermost는 사용자 친화적인 오류 메시지를 표시하고, 다른 이름을 선택할 때까지 정책이 저장되지 않도록 막습니다.

  3. 설정된 속성 값에 일치하는 사용자를 새 멤버로 자동 추가할지 여부를 선택합니다. 자동 동기화는 기본적으로 비활성화되어 있습니다.

    • True: 사용자 속성이 변경됨에 따라 정의된 규칙에 따라 채널 멤버십을 자동으로 유지합니다.
    • False (기본값): 멤버를 제거하고 정의된 규칙에 일치하지 않는 경우 채널에 추가하는 것만 제한합니다. 사용자는 자동으로 추가되지 않습니다.

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

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

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

1.  **속성 추가**를 선택하고 접근 제어에 사용할 속성을 선택합니다.

2.  속성이 사용자 프로필과 어떻게 일치해야 하는지 지정합니다. 다음 옵션 중에서 선택할 수 있습니다.

    > - **Is**: 속성이 값과 정확히 일치해야 합니다.
    > - **Is not**: 속성에 지정된 값이 포함되어서는 안 됩니다.
    > - **In**: 속성이 적어도 하나의 값과 일치해야 합니다.
    > - **Starts with**: 속성 값이 지정된 값으로 시작해야 합니다.
    > - **Ends with**: 속성 값이 지정된 값으로 끝나야 합니다.
    > - **Contains**: 속성 값에 지정된 값이 어딘가에 존재해야 합니다.
    >
    > 선택한 속성이 **순위 있음**(순위가 있는) 속성(허가 등급이나 분류 등급과 같이 순서가 있는 값 목록)인 경우, 일치 옵션은 정확한 값 대신 순서 기반 비교로 제공됩니다. 이를 통해 정확한 값 하나만이 아니라 임계값 이상에 해당하는 모든 사용자를 일치시킬 수 있습니다.
    >
    > - **Is exactly** / **같지 않음**: 값이 지정된 값과 정확히 일치해야 하거나, 일치하지 않아야 합니다.
    > - **Is at least**: 값이 지정된 값과 같거나 더 높아야 합니다 - 예를 들어, 허가 등급이 *Is at least* Secret이면 Secret 및 그 이상의 모든 등급과 일치합니다.
    > - **Is greater than**: 값이 지정된 값보다 높아야 합니다.
    > - **Is at most**: 값이 지정된 값과 같거나 더 낮아야 합니다.
    > - **Is less than**: 값이 지정된 값보다 낮아야 합니다.

3.  채널에 접근 권한이 부여되기 위해 사용자가 가져야 하는 속성 값을 지정합니다.

고급 모드는 user.<attribute> == <value> 와 같은 규칙을 지원하고, 여러 조건에 && / || (AND/OR)를 사용하며, () 로 조건을 그룹화하는 CEL 구문이 필요한 복잡한 접근 제어 시나리오에 이상적입니다. CEL 표현식 편집기는 실시간 구문 유효성 검사 및 피드백과 함께 속성, 연산자 및 속성 값에 대한 컨텍스트 인식 자동 완성을 제공합니다.

기본 모드에서 규칙 정의를 시작한 다음 필요에 따라 고급 모드로 전환하여 규칙을 세밀하게 조정할 수도 있습니다. 그러나 다음 중 하나가 해당하면 고급 모드에서 기본 모드로 전환하는 것이 차단됩니다.

- 조건 간에 혼합 논리 연산자가 사용된 경우.
- 중첩 논리/그룹화(괄호)가 있는 경우.
- 지원되지 않는 연산자 또는 표현식이 감지된 경우.

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

입력하면 자동 완성에서 사용 가능한 속성이 표시됩니다. 속성을 선택하면 자동 완성에서 적절한 CEL 연산자를 제안합니다. 연산자를 선택한 후 속성 값이 미리 정의된 경우 자동 완성에서 선택할 값을 제안합니다. Mattermost는 누락된 연산자, 잘못된 구문, 불완전한 조건과 같은 문제를 명시적으로 표시합니다.

**구문 유효성 검사** 바를 선택하여 규칙의 구문을 확인합니다. 구문이 유효하면 바가 녹색으로 변하고 구문이 유효하다는 메시지가 표시됩니다. 문제가 있으면 바가 빨간색으로 변하고 오류 메시지가 표시됩니다.

접근 시뮬레이션#

접근 규칙 테스트를 선택하여 현재 규칙을 기반으로 채널에 접근 권한이 부여될 사용자 수를 반환하는 사용자 기반에 대해 규칙을 테스트합니다. 의도한 범위를 확인하고 예상치 못한 접근 변경을 방지하기 위해 규칙을 테스트하세요.

Mattermost v11.8.0부터 정책 변경 사항을 저장하기 전에 특정 사용자에 대한 허용 및 거부 결과를 미리 보기 위해 접근 시뮬레이션(접근 시뮬레이션)를 사용할 수 있습니다.

  1. System Console에서 정책 편집기를 엽니다.
  2. 접근 시뮬레이션을 선택합니다.
  3. 테스트할 사용자를 선택합니다.
  4. 채널 참여나 파일 업로드 및 다운로드와 같은 작업별로 허용 및 거부 결과를 검토합니다.
  5. 저장하기 전에 규칙을 조정합니다.

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

Mattermost v12부터 결과에 중립적인 최근 세션 없음 표시가 나타날 수도 있습니다. 이 표시는 결과에 영향을 주는 규칙이 세션 속성(user.session.*)을 참조하고 선택한 사용자에게 평가할 캐시된 세션 속성이 없을 때 나타납니다. 대개 최근에 연결하지 않았거나 해당 속성을 보고하는 클라이언트에서 연결하지 않았기 때문입니다.

Note

접근 시뮬레이션 및 채널 수준 권한 정책은 PermissionPolicies 기능 플래그(MM_FEATUREFLAGS_PERMISSIONPOLICIES)로 제어되며 Mattermost Enterprise Advanced 라이선스가 필요합니다. 셀프 호스팅 배포에서 기능 플래그를 활성화하는 방법에 대한 자세한 내용은 Mattermost 개발자 문서의 셀프 호스팅 및 로컬 개발 환경에서 기능 플래그 활성화를 참조하세요. Mattermost Cloud 고객은 Mattermost 계정 관리자에게 문의하거나 지원 티켓 생성을 통해 이 기능 플래그 활성화를 요청할 수 있습니다.

규칙 관리#

기본 모드 또는 고급 모드를 사용하여 언제든지 기존 규칙에 변경 사항을 적용하거나 규칙을 제거할 수 있습니다. 저장을 선택하여 변경 사항을 저장합니다.

채널에 정책 할당#

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

두 채널 유형은 동일한 정책 아래에서 다르게 동작합니다.

  • 비공개 채널은 강제 게이트로 작동합니다. 정책은 (자동 추가가 활성화된 경우) 일치하는 사용자를 추가하고, 동기화 중 일치하지 않는 멤버를 제거하며, 일치하지 않는 사용자가 추가되거나 초대되는 것을 막습니다.
  • 공개 채널은 권고적으로 작동합니다. 정책은 멤버를 제거하지 않으며 누구도 참여를 막지 않습니다. 자동 추가가 활성화된 경우 일치하는 사용자를 자동으로 추가하며, 자동 추가가 비활성화된 경우 일치하는 사용자에게 Browse Channels > Recommended channels 아래에 채널이 표시됩니다.

저장하기 전에 변경 사항의 영향을 확인하라는 메시지가 표시되어 각 채널 유형에 미치는 영향을 검토할 수 있습니다.

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

Note

속성 기반 접근 제어 정책이 있는 비공개 채널에는 게스트 사용자를 초대할 수 없습니다. 정의된 속성 기준에 일치하는 사용자만 ABAC 제어 비공개 채널에 추가할 수 있어 접근 제어 정책의 엄격한 준수가 보장됩니다. 공개 채널은 정책과 관계없이 누구나 계속 참여할 수 있습니다.

팀에 정책 할당#

Mattermost v11.10부터 시스템 전체 정책을 팀에도 할당할 수 있습니다. System Console > User Management > Teams 로 이동하여 설정할 팀을 엽니다. 팀 관리 섹션에서 속성 기반 멤버십 정책으로 멤버십 관리 를 활성화합니다 — 이 토글을 켜야만 멤버십 정책 섹션이 표시됩니다. 그런 다음 기존 정책을 연결하고 저장을 선택합니다.

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

정책은 팀의 공개 범위 모드에 따라 다르게 동작합니다.

  • 비공개 팀 — 엄격한 적용: 참여가 제한되고, 자격이 없는 멤버는 동기화 시 제거되며, 팀은 Browse Teams 에서 자격이 없는 비멤버에게 숨겨집니다.
  • 공개 팀 — 권고적: 정책이 게이트로 작동하지 않습니다. 자격이 있는 비멤버에게는 Browse Teams 에서 추천 칩이 표시되며, 누구나 여전히 자유롭게 참여할 수 있습니다.

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

정책 삭제#

제거하려는 정책 옆의 삭제 버튼을 선택하여 정책을 삭제합니다. 여전히 채널에 할당된 정책은 삭제할 수 없습니다 — 먼저 해당 채널에서 정책을 제거하세요.

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

채널별 접근 제어 정의#

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

  1. System Console에서 User Management > Channels 로 이동하여 설정할 비공개 또는 공개 채널을 선택하고 편집을 선택합니다.
  2. 채널 관리 섹션에서 속성 기반 채널 접근 활성화 옵션을 활성화합니다.
  3. 접근 정책 아래에서 정책에 연결을 선택하여 기존 정책을 선택합니다.

정책이 연결되면 정책이 제거될 때까지 채널의 공개/비공개 설정을 더 이상 전환할 수 없습니다 — 자세한 내용은 채널별 접근 규칙을 참조하세요.

Tip

System Console의 채널 관리 아래에 있는 채널 세부 정보 페이지에서 속성 기반 채널 접근 활성화 옵션을 활성화하여 채널에 ABAC 규칙을 직접 할당할 수도 있습니다. 접근 정책 아래에서 정책에 연결을 선택하여 기존 정책을 선택합니다.

채널 정책 제거#

정책 제거를 선택하여 채널에 대한 정책을 비활성화합니다. 원하는 경우 채널을 다른 정책에 연결할 수 있습니다.

권한 정책#

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

권한 정책은 사용자 속성을 기반으로 다음 작업을 제한하는 데 사용할 수 있습니다.

  • 파일 업로드: 정의된 속성 규칙에 일치하지 않는 사용자가 파일 첨부 파일을 업로드하지 못하도록 방지합니다.
  • 파일 다운로드: 정의된 속성 규칙에 일치하지 않는 사용자가 파일 첨부 파일을 다운로드하지 못하도록 방지합니다.
  • 읽은 후 삭제 메시지 작성: 정의된 속성 규칙에 일치하지 않는 사용자가 읽은 후 삭제(burn-on-read) 메시지를 보내지 못하도록 방지합니다.

권한 정책이 적용되면 설정된 속성 값에 일치하지 않는 사용자는 제한된 작업을 수행할 수 없습니다. 예를 들어 사용자는 원래 접근할 수 있었던 메시지에서 파일 첨부 파일이 사용 불가능하거나 편집(redacted)된 것으로 표시될 수 있으며, 메시지 도구 모음에서 Burn-on-read 아이콘을 사용할 수 없을 수도 있습니다. 최종 사용자에게 보이는 동작에 대한 자세한 내용은 제한된 파일 첨부 및 읽은 후 삭제 메시지 보내기를 참조하세요.

Warning

권한 정책은 사용자가 Mattermost 클라이언트나 REST API를 통해 작업할 때 평가됩니다. 연동 기능이 만들거나 읽는 콘텐츠에는 평가되지 않습니다.

  • 플러그인은 권한 정책의 적용을 받지 않습니다. 플러그인은 서버 수준의 신뢰로 실행되며 모든 사용자를 대신하여 메시지를 게시하고 파일 첨부 파일을 업로드하거나 읽을 수 있습니다. 플러그인 API는 플러그인 작성자가 호출할 수 있는 권한 확인 기능을 제공하지만, Mattermost는 플러그인을 대신하여 이를 강제하지 않습니다.
  • 인커밍 웹훅과 사용자 지정 슬래시 명령어는 권한 정책에 따른 평가 없이 읽은 후 삭제 메시지를 포함한 메시지를 게시할 수 있습니다. 웹훅 메시지는 웹훅을 만든 사용자의 메시지로 처리되고, 슬래시 명령어 응답은 명령어를 입력한 사용자의 메시지로 처리되며, 명령어의 응답 URL로 보내는 지연 응답도 마찬가지입니다. 둘 다 파일 첨부 파일을 업로드할 수 없습니다.
  • 예약 메시지는 메시지를 보낼 때가 아니라 예약할 때 평가되므로, 정책이 강화되기 전에 예약된 메시지는 그대로 전달됩니다.

파일 다운로드 제한은 메시지가 사용자의 클라이언트로 전달될 때도 적용되므로, 플러그인이 메시지를 게시한 경우에도 제한된 사용자는 Mattermost를 통해 파일 첨부 파일을 받지 못합니다. 이는 플러그인이 서버에서 파일 콘텐츠를 읽는 경우에는 적용되지 않습니다.

권한 정책에 의존하는 채널에서는 설치하는 플러그인을 검토하고, System Console의 연동 관리 권한을 사용하여 인커밍 웹훅과 사용자 지정 슬래시 명령어를 만들 수 있는 사용자를 제어하세요.

읽은 후 삭제 메시지 작성 제한은 읽은 후 삭제 메시지 활성화 설정과 별개로 추가 적용되며, 누구든 읽은 후 삭제 메시지를 보내려면 이 설정이 활성화되어 있어야 합니다. 권한 정책은 메시지를 보낼 수 있는 사용자를 좁힐 뿐이며, 설정이 비활성화된 경우 이를 활성화할 수는 없습니다.

권한 정책은 접근 정책과 동일한 고유 이름 요구 사항을 따릅니다. 각 상위 권한 정책은 고유한 이름을 가져야 하며, 중복된 이름이 입력되면 Mattermost는 사용자 친화적인 오류를 표시합니다.

Mattermost v12부터 권한 정책 규칙은 세션 속성도 평가할 수 있습니다 - 예를 들어 파일 다운로드를 회사 IP 대역의 기기나 MDM에 등록된 기기로 제한할 수 있습니다. 세션 속성을 참조하는 규칙은 해당 속성을 보고하지 않는 모든 세션을 거부하므로, 사용자가 의존하는 파일 작업에 적용하기 전에 각 속성의 플랫폼별 사용 가능 여부를 검토하세요. mdm_enrolled 와 같이 클라이언트가 보고하는 속성은 증명이 아니라 스스로 보고한 보안 상태 신호이므로, 더 강력한 보증이 필요하면 서버가 측정한 값을 기준으로 제어하세요 - IP 대역 확인을 사용하는 ip_address 또는 리버스 프록시가 지정하는 tls_device_id 가 해당합니다.

속성 값 마스킹#

Mattermost v11.8부터 정책이 편집 중인 관리자가 개인적으로 보유하지 않은 속성 값을 참조하는 경우, 해당 값은 정책 편집기에서 숨겨집니다. 이를 통해 관리자가 권한이 없는 민감한 속성 값을 읽거나 복사하는 것을 방지하면서도 정책이 정상적으로 접근 제어를 적용할 수 있도록 합니다.

마스킹은 shared_only 또는 source_only 접근 모드로 구성된 속성에만 적용됩니다. public 접근 모드인 속성은 모든 관리자에게 항상 표시됩니다. 각 모드가 값 표시를 제어하는 방식에 대한 자세한 내용은 속성 접근 모드를 참조하세요.

표시되는 내용:

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

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

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

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