SQL API에 대한 접근 제어 목록(ACL) 생성
egress_sql 및 읽기 작업을 사용하여 테이블 수준의 액세스 제어를 구성하여 서비스 계정에 특정 테이블 SQL API에 대한 쿼리 액세스 권한을 부여합니다.
시작하기 전에
다음 전제 조건이 충족되는지 확인합니다.
- 서비스 계정을 생성하고 해당 계정에 sn_odbc_rest_access 및/또는 sn_jdbc_rest_access 역할을 할당했습니다.
- 를 통해 SQL API액세스할 수 있어야 하는 테이블을 식별했습니다ServiceNow.
필요한 역할: security_admin
이 태스크 정보
를 통한 SQL API 테이블에 대한 액세스 권한은 전역적으로 부여되지 않습니다. 서비스 계정이 쿼리해야 하는 각 테이블에 대해 두 개의 ACL(접근 제어 목록)을 만들어야 합니다. egress_sql 작업(데이터 익스포트 제어 SQL API )용으로 하나씩 만들고 읽기 작업(기록 수준 액세스 제어)용으로 하나씩 만듭니다. 서비스 계정은 두 ACL이 모두 명시적으로 구성된 테이블에만 쿼리할 수 있습니다.
기본적으로 SQL API 모든 쿼리는 테이블, 행 및 필드 수준에서 액세스를 검사합니다. 이는 의 안전한 기본 접근 방식을 따릅니다 ServiceNow. SQL API 인스턴스 레코드의 모든 ACL을 레코드별로 확인합니다. 이로 인해 응답시간이 길어질 수 있습니다. 이는 예상된 사항입니다.
사용 사례에 행 및 필드 수준 검사가 필요하지 않은 경우 서비스 계정에 sn_sql_api_privileged_mode 역할을 할당하여 이를 끌 수 있습니다. 비즈니스 인텔리전스 통합을 예로 들 수 있습니다. 테이블 수준 ACL 검사는 계속 유효하며 끌 수 없습니다.
액세스가 필요한 SQL API 각 테이블 및 역할 조합에 대해 이 절차를 반복합니다. 역할이 다른 서비스 계정이 여러 개 있는 경우 각 역할 및 테이블 조합에 대해 별도의 ACL을 생성합니다.
프로시저
결과
에 대한 테이블 수준 액세스 제어를 성공적으로 구성했습니다.SQL API 서비스 계정은 지정한 역할 요구 사항에 따라 egress_sql 및 읽기 ACL이 모두 생성된 테이블을 쿼리할 수 있습니다.
접근 권한은 테이블별로 부여된다는 점을 기억하십시오. 추가 테이블에 대한 액세스 권한을 부여하거나 역할이 다른 서비스 계정을 추가하는 경우 이 절차를 반복하여 적절한 ACL을 만듭니다.