데이터 RBAC 개요
데이터 역할 기반 액세스 제어(데이터 RBAC)는 개별 사용자 역할을 사용하여 조직 내 데이터에 대한 사용자 액세스를 제한하는 보안 모델입니다. 데이터 RBAC를 사용하면 관리자가 범위를 정의하고 사용자에게 할당하여 사용자가 작업 기능에 필요한 데이터에만 액세스하도록 할 수 있습니다.
이 페이지에서는 데이터 RBAC에 대한 개요를 제공하고 라벨과 범위가 함께 작동하여 데이터 액세스 권한을 정의하는 방식을 이해하는 데 도움이 됩니다.
데이터 RBAC와 기능 RBAC의 차이점
데이터 RBAC와 기능 RBAC는 모두 시스템 내에서 액세스를 제어하는 방법이지만 서로 다른 측면에 중점을 둡니다.
기능 RBAC는 시스템 내의 특정 특성 또는 기능에 대한 액세스를 제어합니다. 역할에 따라 사용자가 액세스할 수 있는 기능을 결정합니다. 예를 들어 초급 분석가는 대시보드 보기만 가능하고 감지 규칙을 만들거나 수정할 수는 없지만, 선임 분석가는 감지 규칙을 만들고 관리할 권한이 있을 수 있습니다. 기능 RBAC에 관한 자세한 내용은 IAM을 사용하여 기능 액세스 제어 구성을 참고하세요.
데이터 RBAC는 시스템 내의 특정 데이터 또는 정보에 대한 액세스를 제어합니다. 사용자 역할에 따라 사용자가 데이터를 보고, 수정하거나, 삭제할 수 있는지 여부를 제어합니다. 예를 들어 고객 관계 관리(CRM) 시스템에서 영업 담당자는 고객 연락처 데이터에 액세스할 수 있지만 재무 데이터에는 액세스할 수 없고 재무 관리자는 재무 데이터에 액세스할 수 있지만 고객 연락처 데이터에는 액세스할 수 없습니다.
데이터 RBAC 및 기능 RBAC는 함께 포괄적인 액세스 제어 시스템을 제공하기 위해 종종 함께 사용됩니다. 예를 들어 사용자가 특정 기능(기능 RBAC)에 액세스하도록 허용될 수 있으며, 이 기능 내에서 특정 데이터에 대한 액세스가 역할(데이터 RBAC)에 따라 제한될 수 있습니다.
구현 계획
구현을 계획하려면 조직 요구사항에 따라 Google SecOps 사전 정의된 Google SecOps 역할 및 권한 목록을 검토하세요. 조직에 필요한 범위를 정의하고 수신 데이터에 라벨을 지정하는 전략을 수립합니다. 이러한 범위와 연결된 데이터에 대해 액세스 권한을 가져야 하는 조직 구성원을 식별합니다. 조직에 사전 정의된 Google SecOps 역할과 다른 IAM 정책이 필요한 경우 이러한 요구사항을 지원하도록 커스텀 역할을 만듭니다.
사용자 역할
사용자는 범위가 지정된 데이터 액세스(범위가 지정된 사용자) 또는 전역 데이터 액세스(전역 사용자) 권한 중 하나를 보유할 수 있습니다.
범위가 지정된 사용자는 할당된 범위에 따라 데이터에 제한적으로 액세스할 수 있습니다. 이러한 범위는 가시성 및 작업을 특정 데이터로 제한합니다. 범위 지정 액세스와 관련된 구체적인 권한은 다음 표에 자세히 나와 있습니다.
글로벌 사용자에게는 할당된 범위가 없으며 Google SecOps 내의 모든 데이터에 무제한으로 액세스할 수 있습니다. 전역 액세스와 연결된 특정 권한은 다음 표에 자세히 나와 있습니다.
데이터 RBAC 관리자는 범위를 만들고 사용자에게 할당하여 Google SecOps 내에서 데이터 액세스를 제어할 수 있습니다. 사용자를 특정 범위로 제한하려면 사전 정의된 역할 또는 커스텀 역할과 함께 Chronicle API 제한된 데이터 액세스(roles/chronicle.restrictedDataAccess
) 역할을 할당해야 합니다. Chronicle API 제한된 데이터 액세스 역할은 사용자를 범위가 지정된 사용자로 식별합니다. 전역 데이터 액세스가 필요한 사용자에게는 Chronicle 제한된 데이터 액세스 역할을 할당하지 않아도 됩니다.
사용자에게 할당할 수 있는 역할은 다음과 같습니다.
액세스 유형 | 역할 | 권한 |
---|---|---|
사전 정의된 전역 액세스 | 전역 사용자에게는 사전 정의된 IAM 역할 중 하나를 부여할 수 있습니다. | |
사전 정의된 범위의 읽기 전용 액세스 | Chronicle API 제한된 데이터 액세스(roles/chronicle.restrictedDataAccess ) 및 Chronicle API 제한된 데이터 액세스 뷰어(roles/chronicle.restrictedDataAccessViewer )
|
Chronicle API 제한된 데이터 액세스 뷰어 |
커스텀 범위 액세스 | Chronicle API 제한된 데이터 액세스(roles/chronicle.restrictedDataAccess ) 및 커스텀 역할
|
기능 내 커스텀 권한 |
커스텀 전역 액세스 | chronicle.globalDataAccessScopes.permit 권한 및 커스텀 역할
|
기능 내 전역 권한 |
다음은 표에 표시된 각 액세스 유형에 대한 설명입니다.
사전 정의된 전역 액세스: 이 액세스 권한은 일반적으로 모든 데이터에 액세스해야 하는 사용자에게 필요합니다. 필요한 권한에 따라 사용자에게 하나 이상의 역할을 할당할 수 있습니다.
사전 정의된 범위의 읽기 전용 액세스: 이는 읽기 전용 액세스 권한이 필요한 사용자를 위한 액세스입니다. Chronicle API 제한된 데이터 액세스 역할은 사용자를 범위가 지정된 사용자로 식별합니다. Chronicle API 제한된 데이터 액세스 뷰어 역할은 기능 내 사용자에게 보기 액세스 권한을 부여합니다.
커스텀 범위 액세스: Chronicle API 제한된 데이터 액세스 역할은 사용자를 범위가 지정된 사용자로 식별합니다. 커스텀 역할은 사용자가 액세스할 수 있는 기능을 지정합니다. Chronicle API 제한된 데이터 액세스 역할에 추가된 범위는 사용자가 기능에서 액세스할 수 있는 데이터를 지정합니다.
RBAC 맞춤 범위가 올바르게 작동하도록 하려면 커스텀 역할을 만들 때 chronicle.DataAccessScopes.permit
또는 chronicle.globalDataAccessScopes.permit
권한을 포함하지 마세요. 이러한 권한은 사전 빌드된 Chronicle API 편집자 또는 Chronicle API 관리자를 커스텀 역할의 시작점으로 사용한 경우 포함될 수 있습니다.
커스텀 전역 액세스: 할당된 기능 내에서 무제한 권한이 필요한 사용자에게 제공되는 액세스입니다. 사용자에게 커스텀 전역 액세스 권한을 부여하려면 사용자에게 할당된 커스텀 역할 외에도 chronicle.globalDataAccessScopes.permit
권한을 지정해야 합니다.
범위 및 라벨을 사용한 액세스 제어
Google SecOps를 사용하면 범위를 사용하여 사용자의 데이터 액세스를 제어할 수 있습니다. 범위는 범위 내 사용자가 액세스할 수 있는 데이터를 정의하는 라벨을 사용하여 정의합니다. 처리 중에 메타데이터는 네임스페이스(선택사항), 처리 메타데이터(선택사항), 로그 유형(필수)과 같은 라벨 형식으로 데이터에 할당됩니다. 이는 처리 중에 데이터에 적용되는 기본 라벨입니다. 또한 커스텀 라벨을 만들 수 있습니다. 기본 라벨과 커스텀 라벨을 모두 사용하여 범위와 범위에서 정의할 데이터 액세스 수준을 정의할 수 있습니다.
허용 및 거부 라벨로 데이터 공개 상태
각 범위에는 하나 이상의 액세스 허용 라벨과 선택적으로 액세스 거부 라벨이 포함됩니다. 액세스 허용 라벨은 사용자에게 라벨과 연결된 데이터에 대한 액세스 권한을 부여합니다. 액세스 거부 라벨은 라벨과 연결된 데이터에 대한 사용자 액세스 권한을 거부합니다. 액세스 거부 라벨은 사용자 액세스를 제한할 때 액세스 허용 라벨보다 우선 적용됩니다.
범위 정의에서 동일한 유형(예: 로그 유형)의 액세스 허용 라벨은 OR 연산자를 사용하여 결합하고, 서로 다른 유형(예: 로그 유형 및 커스텀 라벨)의 라벨은 AND 연산자를 사용하여 결합됩니다. 액세스 거부 라벨은 OR 연산자를 사용하여 결합됩니다. 범위 내에서 액세스 거부 라벨이 여러 개 적용된 경우 이러한 라벨 중 하나라도 일치하면 액세스가 거부됩니다.
예를 들어 다음 라벨 유형을 사용하여 로그를 분류하는 Cloud Logging 시스템을 생각해 보겠습니다.
로그 유형: 액세스, 시스템, 방화벽
네임스페이스: 앱 1, 앱 2, 데이터베이스
심각도: 심각, 경고
다음과 같은 액세스 권한이 있는 제한된 로그라는 범위를 고려해 보겠습니다.
라벨 유형 | 허용되는 값 | 거부된 값 |
---|---|---|
로그 유형 | 액세스, 방화벽 | 시스템 |
네임스페이스 | 앱 1 | 앱 2, 데이터베이스 |
심각도 | 경고 | 심각 |
범위 정의는 다음과 같습니다.
허용: (Log type: "Access" OR "Firewall") AND (Namespace: "App1") AND (Severity: "Warning")
거부: Log type: "System" OR Namespace: App2 OR Namespace: Database OR Severity: "Critical"
범위에 일치하는 로그의 예는 다음과 같습니다.
- 심각도: 경고인 앱 1의 액세스 로그
- 심각도: 경고인 앱 1의 방화벽 로그
범위에 맞지 않는 로그의 예는 다음과 같습니다.
- 심각도: 경고인 앱 1의 시스템 로그
- 심각도: 경고인 데이터베이스의 액세스 로그
- 심각도: 심각인 앱 2의 방화벽 로그
보강된 이벤트의 데이터 가시성
보강된 이벤트는 원시 로그 데이터에 포함된 것 이상의 추가 컨텍스트와 정보로 보강된 보안 이벤트입니다. 보강된 이벤트는 기본 이벤트에 범위 내에서 액세스할 수 있고 보강된 라벨에 범위의 거부 라벨이 포함되지 않은 경우에만 범위 내에서 액세스할 수 있습니다.
예를 들어 IP 주소에서 로그인 시도에 실패했음을 나타내고 user_risk: high
(위험도가 높은 사용자를 나타냄)라는 보강된 라벨이 있는 원시 로그를 생각해 보세요.
거부 라벨 user_risk: high
인 범위의 사용자는 고위험 사용자의 로그인 시도 실패를 볼 수 없습니다.
데이터 RBAC가 Google Security Operations 기능에 미치는 영향
데이터 RBAC가 구성되면 사용자에게 Google Security Operations 기능에 필터링된 데이터가 표시됩니다. 영향은 기능이 기본 데이터와 통합되는 방식에 따라 다릅니다. 데이터 RBAC가 각 기능에 미치는 영향을 이해하려면 데이터 RBAC Google Security Operations 기능의 영향을 참고하세요.