SharePoint Server의 세분화된 권한 사용에 대한 모범 사례
적용 대상:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
세분화된 사용 권한은 SharePoint 팜의 보안에 영향을 줄 수 있습니다. 세분화된 사용 권한을 사용할 때 잠재적 성능 문제가 발생할 수 있습니다. 다음 정보는 세분화된 사용 권한의 잘못된 사용 또는 확장으로 인해 환경에서 문제가 발생한 경우 문제를 해결하도록 도와줍니다.
다음을 수행하여 세분화된 사용 권한을 방지할 수 있습니다.
가능한 한 빈번하지 않게 사용 권한 상속 차단
폴더 구성원을 기반으로 하는 그룹을 사용하여 사용 권한 할당
이제 보안 정보가 포함된 SharePoint Server 검색 연속 크롤링 기능의 변경으로 인해 동적 사용자 및 그룹 구성원을 관리하는 데 SharePoint 그룹을 사용하지 않도록 한 지침은 더 이상 권장되지 않습니다. SharePoint Server 이전에는 SharePoint에서 동적 구성원을 사용할 경우 구성원이 변경된 후 전체 크롤링이 실행될 때까지 일부 구성원에 대해 검색 결과가 제대로 표시되지 않는 문제가 발생할 수 있었습니다. 그러나 이제 연속 크롤링 기능에 보안 정보가 포함되었기 때문에 동적 구성원 또는 기타 보안 변경 내용이 신속하게(기본값은 15분) 적용되며 검색 쿼리 결과 조정에 사용됩니다.
가능한 한 최상위 수준에서 사용 권한을 할당합니다. 이 전략의 일부로 다음 방법을 사용하는 것이 좋습니다.
세분화된 사용 권한이 필요한 문서를 각 사용 권한 그룹을 지원하도록 정의된 문서 라이브러리에 두고, 별도의 사이트 모음 또는 사이트에서 이 문서 라이브러리를 유지합니다.
여러 문서 게시 수준을 사용하여 액세스를 제어합니다. 문서를 게시하기 전에 문서 라이브러리의 항목을 승인할 수 있는 사용자에 대해서만 고급 사용 권한 및 버전 관리 설정을 지정할 수 있습니다.
문서가 아닌 라이브러리(목록)의 경우 ReadSecurity 및 WriteSecurity 사용 권한 수준을 사용합니다. 목록을 만들 때 소유자는 항목 수준 사용 권한을 읽기 권한 또는 만들기 및 편집 권한으로 설정할 수 있습니다.
시작하기 전에
이 작업을 시작하기 전에 필수 구성 요소와 관련한 다음 정보를 검토하십시오.
세분화된 사용 권한의 일반적인 제한 문제를 방지하기 위한 모범 사례
비즈니스 요구 사항에 따라 세분화된 사용 권한을 사용해야 하는 경우 다음 권장 모범 사례를 따르는 것이 좋습니다.
보기에서 항목을 처리하는 데 필요한 시간이 늘어나므로 문서 라이브러리의 동일한 계층 구조 수준에 항목이 너무 많지 않은지 확인합니다.
이벤트 처리기를 사용하여 편집 권한을 제어합니다. SPEventReceiverType.ItemUpdating 및 SPEventReceiverType.ItemUpdated 메서드를 사용하여 이벤트를 등록하는 이벤트 처리기를 만든 다음 코드를 사용하여 업데이트 허용 여부를 제어할 수 있습니다. 이렇게 하면 보기 렌더링 성능에 영향을 주지 않고 목록 또는 항목의 메타데이터를 기반으로 보안에 대한 의사 결정을 내릴 수 있으므로 효과가 매우 강력합니다.
AddToCurrentScopeOnly 메서드를 사용하여 SharePoint 그룹에 제한된 액세스 구성원을 할당합니다. 이 원칙의 핵심 요소는 범위 멤버 자격으로 인해 부모 문서 라이브러리 및 웹에서 ACL(액세스 제어 목록)이 다시 계산되지 않도록 아키텍처를 다시 디자인하는 것입니다. 범위 변경에 대한 자세한 내용은 문제 3: 범위 구조 변경에 따른 세분화된 사용 권한 사용(2010에만 해당)을 참조하세요.
세분화된 사용 권한으로 작업할 때 권한의 해결을 방해하는 제한이 의도치 않게 쉽게 발생할 수 있습니다. 이 섹션에서는 이러한 제한 사항 중 일부를 알아보고 사용 권한을 올바르게 확인할 수 있도록 제한을 설정하는 방법에 대한 모범 사례를 설명합니다.
목록에 범위가 너무 많은 경우
목록 또는 문서 라이브러리당 50,000개의 범위로 기본 제공 제한이 있습니다. 범위가 50,000개를 넘으면 지정된 목록 또는 문서 라이브러리에 새 범위를 추가할 수 없게 됩니다.
모범 사례:
폴더와 같은 상위 개체에만 고유한 범위를 설정합니다.
범위가 많은 개체 아래에 고유하게 권한이 부여된 개체가 많은 시스템을 만들지 마세요.
목록 또는 문서 라이브러리에 고유한 사용 권한이 부여된 항목이 50,000개 이상 필요한 경우 일부 항목을 다른 목록 또는 문서 라이브러리로 이동해야 합니다.
기본 제공 범위 제한 변경
Microsoft PowerShell 스크립트를 사용하여 기본 제공 범위 제한을 변경합니다.
Windows PowerShell을 사용하여 기본 제공 범위 제한을 변경하려면
- 다음 멤버 자격이 있는지 확인합니다.
SQL Server 인스턴스에 대한 securityadmin 고정 서버 역할
업데이트하려는 모든 데이터베이스에 대한 db_owner 고정 데이터베이스 역할
PowerShell cmdlet을 실행 중인 서버의 관리자 그룹입니다.
위의 최소 멤버 자격 이외에 필요한 멤버 자격을 추가합니다.
관리자는 Add-SPShellAdmin cmdlet을 사용하여 SharePoint Server 2016 cmdlet 사용 권한을 부여할 수 있습니다.
참고
권한이 없는 경우 설치 관리자 또는 SQL Server 관리자에게 문의하여 권한을 요청하십시오. PowerShell 권한에 대한 자세한 내용은 Add-SPShellAdmin을 참조하세요.
SharePoint Management Shell 을 시작합니다.
PowerShell 명령 프롬프트에 다음 명령을 입력합니다.
$webapp = Get-SPWebApplication http://<serverName> $webapp.MaxUniquePermScopesPerList $webapp.MaxUniquePermScopesPerList = <Number of scope limit>
여기서,
여기서 <serverName> 은 SharePoint 팜에 있는 애플리케이션 서버의 이름입니다.
여기서 <범위 제한> 수는 SharePoint 목록당 허용하려는 고유 권한 범위의 최대 수입니다. 많은 범위가 같은 계층 구조 수준에 있는 경우에는 50,000개보다 훨씬 적은 수의 제한이 효과적입니다. 이는 해당 계층 구조 수준 아래의 항목에 대한 표시 확인이 그 상위의 모든 범위에 대해 수행되기 때문입니다. 이 제한으로 인해 특정 쿼리에서 허용되는 효과적인 범위 수가 1,000~2,000개로 감소할 수 있습니다.
참고
명령줄 관리 작업을 수행하는 경우 Windows PowerShell을 사용하는 것이 좋습니다. Stsadm 명령줄 도구는 더 이상 사용되지 않지만 이전 제품 버전과의 호환성을 지원하기 위해 포함됩니다.
사용 권한 범위에 구성원이 너무 많은 경우
앞서 설명한 바와 같이, 연결된 사용 권한 그룹의 멤버 자격이 변경된 경우 이진 ACL이 계산됩니다. 여기에는 새 제한된 액세스 구성원이 추가된 경우가 포함됩니다. 범위 구성원 수가 증가하면 이진 ACL을 다시 계산하는 데 걸리는 시간도 증가합니다.
하위 개체의 고유한 범위에 사용자를 추가하면 해당 상위 범위가 새 제한된 액세스 구성원으로 업데이트되므로 궁극적으로 상위 범위 구성원이 변경되지 않은 경우에도 문제가 더욱 악화될 수 있습니다. 이 경우 상위 범위에 대한 이진 ACL도 다시 계산되므로 결과적으로 같은 ACL이 그대로 유지되는 경우에도 처리 시간이 더 오래 걸리게 됩니다.
모범 사례:
권한 범위에서 개별 사용자 멤버 자격 대신 그룹 멤버 자격에 의존합니다. 예를 들어 1,000명의 개별 사용자 대신 단일 그룹을 사용할 수 있는 경우 권한 범위 및 부모 범위에 대해 범위는 999개 멤버 자격 항목이 더 작습니다. 또한 단일 그룹은 제한된 액세스 권한이 있는 각 사용자를 업데이트하는 대신 제한된 액세스 권한으로 업데이트됩니다. 또한 부모 범위 개체에서 제한된 액세스 권한 푸시 및 ACL 다시 계산 속도를 높이는 데 도움이 됩니다.
중요
SharePoint 그룹을 사용하면 인덱스가 전체 크롤링됩니다. 가능한 경우 도메인 그룹을 사용하세요.
지나치게 깊은 범위 계층 구조
앞서 설명한 바와 같이, 사용 권한 범위의 계층 구조 깊이는 제안된 액세스 사용자를 상위 범위에 추가해야 하는 작업에 영향을 줄 수 있습니다. 고유한 사용 권한이 부여된 웹을 포함하여 항목에 고유한 범위 수가 많을수록 추가해야 하는 항목 수가 늘어납니다. 범위 계층 구조가 매우 깊은 경우, 제한된 액세스 권한을 가진 명시적으로 추가된 사용자 또는 그룹에 대한 구성원 추가를 사용하여 최하위 범위 항목의 각 구성원 변경에서 상위 범위를 반복적으로 업데이트해야 하므로 범위 구성원을 변경하는 데 시간이 매우 오래 걸릴 수 있습니다. 또한 다시 계산해야 하는 이진 ACL 수도 증가하므로 이로 인해 성능이 저하됩니다.
모범 사례:
고유한 사용 권한이 부여된 상위 개체 수를 줄입니다. 그러면 하위 개체의 범위가 변경된 경우 제한된 액세스 구성원으로 업데이트해야 하는 범위 수가 감소합니다.