IAM을 사용하여 기능 액세스 제어 구성

다음에서 지원:

기능 RBAC는 시스템 내의 특정 기능 또는 기능에 대한 사용자 액세스를 제어하고 역할에 따라 사용자가 액세스할 수 있는 기능을 결정합니다. 이 페이지에서는 Google Security Operations 내에서 기능 액세스 제어를 구성하는 방법을 설명합니다.

이 문서에서 기존 RBAC라는 용어는 Identity and Access Management(IAM)가 아닌 Google SecOps를 사용하여 구성된 이전에 사용 가능한 액세스 제어 시스템을 나타내기 위해 사용됩니다. 기능 RBAC는 IAM을 사용하여 구성하는 기능 기반 액세스 제어를 설명하는데 사용됩니다.

Google SecOps는 Google Cloud IAM과 통합되어 Google SecOps 관련 권한사전 정의된 역할을 제공합니다. Google SecOps 관리자는 사용자 또는 그룹을 사전 정의된 역할에 바인딩하는 IAM 정책을 만들어 기능에 대한 액세스 권한을 제어하거나 커스텀 IAM 역할을 만들 수 있습니다. 이 기능은 특정 UDM 레코드 또는 UDM 레코드의 필드에 대한 액세스를 제어하지 않습니다.

이 문서에서는 다음을 설명합니다.

  • Google SecOps가 IAM과 통합되는 방식을 설명합니다.
  • 기능 RBAC 역할이 기존 RBAC 역할과 어떻게 다른지 설명합니다.
  • Google SecOps 인스턴스를 RBAC 기능으로 마이그레이션하는 단계를 제공합니다.
  • IAM을 사용하여 권한을 할당하는 방법에 대한 예를 제공합니다.
  • IAM에서 사용할 수 있는 권한과 사전 정의된 역할을 요약합니다.

일반적으로 사용되는 Google SecOps 권한 및 권한이 생성하는 감사 로그 목록은 리소스 그룹별 권한 및 API 메서드를 참고하세요. 모든 Google SecOps 권한 목록은 Identity and Access Management 권한 참조를 참고하세요.

각 Google SecOps 권한은 Google SecOps API 리소스 및 메서드와 연결되어 있습니다. 사용자 또는 그룹에 권한이 부여된 경우 사용자가 Google SecOps의 기능에 액세스하고 관련 API 메서드를 사용하여 요청을 보낼 수 있습니다.

Google SecOps가 IAM과 통합되는 방법

IAM을 사용하려면 Google SecOps를 Google Cloud 프로젝트에 바인딩하고 서드 파티 ID 공급업체에 대한 인증 흐름의 중간 단계로 Cloud ID, Google Workspace 또는 Google Cloud 직원 ID 제휴를 사용하여 구성해야 합니다. 서드 파티 인증 흐름에 대한 자세한 내용은 Google SecOps를 서드 파티 ID 공급업체와 통합을 참고하세요.

Google SecOps는 다음 단계를 수행하여 기능 액세스를 확인 및 제어합니다.

  1. Google SecOps에 로그온한 후 사용자가 Google SecOps 애플리케이션 페이지에 액세스합니다. 또는 사용자가 Google SecOps에 API 요청을 보낼 수 있습니다.
  2. Google SecOps는 해당 사용자에 대해 정의된 IAM 정책에 부여된 권한을 확인합니다.
  3. IAM이 승인 정보를 반환합니다. 사용자가 애플리케이션 페이지에 액세스한 경우 Google SecOps는 사용자에게 액세스 권한이 부여된 기능에만 액세스 권한을 사용 설정합니다.
  4. 사용자가 API 요청을 보냈지만 요청된 작업을 수행할 권한이 없으면 API 응답에 오류가 포함됩니다. 그렇지 않으면 표준 응답이 반환됩니다.

Google SecOps는 사용자가 기능에 액세스할 수 있는지 여부를 제어하는 정의된 권한 집합이 포함된 사전 정의된 역할 집합을 제공합니다. 단일 IAM 정책은 웹 인터페이스 및 API를 사용하여 기능 액세스를 제어합니다.

Google SecOps에 바인딩된 Google Cloud 프로젝트에 다른 Google Cloud 서비스가 있고 프로젝트 IAM 관리자 역할이 있는 사용자를 Google SecOps 리소스만 수정하도록 제한하려면 허용 정책에 IAM 조건을 추가합니다. 이를 수행하는 방법 예시는 사용자 및 그룹에 역할 할당을 참조하세요.

관리자는 조직에서 직원의 역할을 기반으로 Google SecOps 기능에 대한 액세스를 조정합니다.

시작하기 전에

구현 계획

조직의 배포 요구사항을 지원하는 IAM 정책을 만듭니다. Google SecOps 사전 정의된 역할 또는 사용자가 만든 커스텀 역할을 사용할 수 있습니다.

조직 요구사항에 따라 Google SecOps 사전 정의된 역할 및 권한 목록을 검토합니다. 각 Google SecOps 기능에 대해 액세스 권한을 가져야 하는 조직 구성원을 식별합니다. 조직에 사전 정의된 Google SecOps 역할과 다른 IAM 정책이 필요한 경우 이러한 요구사항을 지원하도록 커스텀 역할을 만듭니다. IAM 커스텀 역할에 대한 자세한 내용은 커스텀 역할 만들기 및 관리를 참조하세요.

Google SecOps 역할 및 권한 요약

다음 섹션에서는 사전 정의된 역할에 대한 대략적인 요약을 제공합니다.

Google SecOps 권한의 최신 목록은 IAM 권한 참조에 있습니다. 권한 검색 섹션에서 chronicle을 검색합니다.

사전 정의된 Google SecOps 역할의 최신 목록은 IAM 기본 및 사전 정의된 역할 참조에 있습니다. 사전 정의된 역할 섹션에서 Chronicle API 역할 서비스를 선택하거나 chronicle을 검색합니다.

API 메서드 및 권한, 권한이 사용되는 페이지, API가 호출될 때 Cloud 감사 로그에 기록되는 정보에 대한 자세한 내용은 IAM의 Chronicle 권한을 참고하세요.

IAM의 Google SecOps 사전 정의된 역할

Google Security Operations는 IAM에 표시되는 대로 다음과 같은 사전 정의된 역할을 제공합니다.

IAM의 사전 정의된 역할 제목 설명
roles/chronicle.admin Chronicle API 관리자 전역 설정을 포함하여 Google Security Operations 애플리케이션 및 API 서비스에 대한 전체 액세스 권한을 갖습니다.
roles/chronicle.editor Chronicle API 편집자 Google Security Operations 애플리케이션 및 API 리소스에 대한 수정 액세스 권한을 갖습니다.
roles/chronicle.viewer Chronicle API 뷰어 Google Security Operations 애플리케이션 및 API 리소스에 대한 읽기 전용 액세스 권한을 갖습니다.
roles/chronicle.limitedViewer Chronicle API 제한적 뷰어 감지 엔진 규칙 및 RetroHunt를 제외하고 Google Security Operations 애플리케이션 및 API 리소스에 대해 읽기 전용 액세스 권한을 부여합니다.

IAM의 Google SecOps 권한

Google SecOps 권한은 Google SecOps API 메서드와 일대일로 대응합니다. 각 Google SecOps 권한은 웹 애플리케이션 또는 API를 사용할 때 특정 Google SecOps 기능에서 특정 작업을 사용 설정합니다. IAM에 사용되는 Google SecOps API는 알파 출시 단계에 있습니다.

Google SecOps 권한 이름은 SERVICE.FEATURE.ACTION 형식을 따릅니다. 예를 들어 권한 이름 chronicle.dashboards.edit는 다음으로 구성됩니다.

  • chronicle: Google SecOps API 서비스 이름입니다.
  • dashboards: 기능 이름입니다.
  • edit: 기능에서 수행할 수 있는 작업입니다.

권한 이름은 Google SecOps에서 기능으로 수행할 수 있는 작업을 기술합니다. 모든 Google SecOps 권한에는 chronicle 서비스 이름이 포함됩니다.

사용자 및 그룹에 역할 할당

다음 섹션에서는 IAM 정책 만들기를 위한 사용 사례 예시를 제공합니다. <project> 용어는 Google SecOps에 바인딩한 프로젝트의 프로젝트 ID를 나타내기 위해 사용됩니다.

Chronicle API를 사용 설정한 후 Google SecOps 사전 정의된 역할 및 권한이 IAM에서 제공되며 조직 요구사항을 지원하도록 정책을 만들 수 있습니다.

새로 만든 Google SecOps 인스턴스가 있으면 조직 요구사항을 충족하도록 IAM 정책을 만듭니다.

기존 Google SecOps 인스턴스인 경우 기능 액세스 제어를 위해 Google SecOps를 IAM으로 마이그레이션에서 인스턴스를 IAM으로 마이그레이션하는 방법을 참고하세요.

예시: 전용 프로젝트에서 프로젝트 IAM 관리자 역할 할당

이 예시에서 프로젝트는 Google SecOps 인스턴스 전용입니다. 프로젝트 IAM 역할 바인딩을 부여하고 수정할 수 있도록 사용자에게 프로젝트 IAM 관리자 역할을 부여합니다. 사용자는 프로젝트의 모든 Google SecOps 역할 및 권한을 관리하고 프로젝트 IAM 관리자 역할에 의해 부여된 태스크를 수행할 수 있습니다.

Google Cloud 콘솔을 사용하여 역할 할당

다음 단계에서는 Google Cloud 콘솔을 사용하여 사용자에게 역할을 부여하는 방법을 설명합니다.

  1. Google Cloud 콘솔을 엽니다.
  2. Google SecOps에 바인딩된 프로젝트를 선택합니다.
  3. IAM 및 관리자를 선택합니다.
  4. 액세스 권한 부여를 선택합니다. <project>에 액세스 권한 부여가 표시됩니다.
  5. 주 구성원 추가 섹션새 주 구성원 필드에 관리 대상 계정 이메일 주소를 입력합니다.
  6. 역할 할당 섹션의 역할 선택 메뉴에서 프로젝트 IAM 관리자 역할을 선택합니다.
  7. 저장을 클릭합니다.
  8. IAM > 권한 페이지를 열어 사용자에게 올바른 역할이 부여됐는지 확인합니다.

Google Cloud CLI를 사용하여 역할 할당

다음 예시 명령어에서는 직원 ID 제휴를 사용할 때 사용자에게 chronicle.admin 역할을 부여하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID  \
--member=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_EMAIL \
--role=roles/chronicle.admin

다음을 바꿉니다.

다음 예시 명령어에서는 Cloud ID 또는 Google Workspace를 사용할 때 그룹에 chronicle.admin 역할을 부여하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID  \
  --member "user:USER_EMAIL" \
  --role=roles/chronicle.admin

다음을 바꿉니다.

예시: 공유 프로젝트에서 프로젝트 IAM 관리자 역할 할당

이 예시에서는 프로젝트가 여러 애플리케이션에 대해 사용됩니다. 프로젝트가 Google SecOps 인스턴스에 바인딩되고 Google SecOps와 관련되지 않은 서비스를 실행합니다. 예를 들어 다른 목적으로 사용되는 Compute Engine 리소스입니다.

여기에서는 사용자가 프로젝트의 IAM 역할 바인딩을 부여 및 수정하고 Google SecOps를 구성할 수 있도록 사용자에게 프로젝트 IAM 관리자 역할을 부여할 수 있습니다. 또한 역할 바인딩에 IAM을 추가하여 프로젝트의 Google SecOps 관련 역할에 대한 액세스만 제한합니다. 이 사용자는 IAM 조건에 지정된 역할만 부여할 수 있습니다.

IAM 조건에 대한 자세한 내용은 IAM 조건 개요조건부 역할 바인딩 관리를 참조하세요.

Google Cloud 콘솔을 사용하여 역할 할당

다음 단계에서는 Google Cloud 콘솔을 사용하여 사용자에게 역할을 부여하는 방법을 설명합니다.

  1. Google Cloud 콘솔을 엽니다.
  2. Google SecOps에 바인딩된 프로젝트를 선택합니다.
  3. IAM 및 관리자를 선택합니다.
  4. 액세스 권한 부여를 선택합니다. <project>에 액세스 권한 부여가 표시됩니다.
  5. <project>에 대한 액세스 권한 부여 대화상자의 주 구성원 추가 섹션에서 새 주 구성원 필드에 사용자 이메일 주소를 입력합니다.
  6. 역할 할당 섹션의 역할 선택 메뉴에서 프로젝트 IAM 관리자 역할을 선택합니다.
  7. + IAM 조건 추가를 클릭합니다.
  8. 조건 추가 대화상자에 다음 정보를 입력합니다.
    1. 조건의 제목을 입력합니다.
    2. 조건 편집기를 선택합니다.
    3. 다음 조건을 입력합니다.
  api.getAttribute(iam.googleapis.com/modifiedGrantsByRole,[]).hasOnly([roles/chronicle.googleapis.com/limitedViewer, roles/chronicle.googleapis.com/viewer, roles/chronicle.googleapis.com/editor, roles/chronicle.googleapis.com/admin])
  1. 조건 추가 대화상자에서 저장을 클릭합니다.
  2. <project>에 액세스 권한 부여 대화상자에서 저장을 클릭합니다.
  3. IAM > 권한 페이지를 열어 사용자에게 올바른 역할이 부여됐는지 확인합니다.

Google Cloud CLI를 사용하여 역할 할당

다음 예시 명령어에서는 직원 ID 제휴를 사용할 때 사용자에게 chronicle.admin 역할을 부여하고 IAM 조건을 적용하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID  \
--member=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_EMAIL \
--role=roles/chronicle.admin\
--condition=^:^'expression=api.getAttribute(iam.googleapis.com/modifiedGrantsByRole,[]).hasOnly([roles/chronicle.googleapis.com/limitedViewer, roles/chronicle.googleapis.com/viewer, roles/chronicle.googleapis.com/editor, roles/chronicle.googleapis.com/admin])':'title=Chronicle Role Admin'

다음을 바꿉니다.

다음 예시 명령어에서는 Cloud Identity 또는 Google Workspace를 사용할 때 그룹에 chronicle.admin 역할을 부여하고 IAM 조건을 적용하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=user:USER_EMAIL \
  --role=roles/chronicle.admin\
  --condition=^:^'expression=api.getAttribute(iam.googleapis.com/modifiedGrantsByRole,[]).hasOnly([roles/chronicle.googleapis.com/limitedViewer, roles/chronicle.googleapis.com/viewer, roles/chronicle.googleapis.com/editor, roles/chronicle.googleapis.com/admin])':'title=Chronicle Role Admin'

다음을 바꿉니다.

예시: 사용자에게 Chronicle API 편집자 역할 할당

이 경우 사용자에게 Google SecOps API 리소스에 대한 액세스 권한을 수정하는 기능을 부여하려고 합니다.

Google Cloud 콘솔을 사용하여 역할 할당

  1. Google Cloud 콘솔을 엽니다.
  2. Google SecOps에 바인딩된 프로젝트를 선택합니다.
  3. IAM 및 관리자를 선택합니다.
  4. 액세스 권한 부여를 선택합니다. <project>에 대한 액세스 권한 부여 대화상자가 열립니다.
  5. 주 구성원 추가 섹션새 주 구성원 필드에 사용자 이메일 주소를 입력합니다.
  6. 역할 할당 섹션의 역할 선택 메뉴에서 Google SecOps API 편집자 역할을 선택합니다.
  7. <project>에 액세스 권한 부여 대화상자에서 저장을 클릭합니다.
  8. IAM > 권한 페이지를 열어 사용자에게 올바른 역할이 부여됐는지 확인합니다.

Google Cloud CLI를 사용하여 역할 할당

다음 예시 명령어에서는 직원 ID 제휴를 사용할 때 사용자에게 chronicle.editor 역할을 부여하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID  \
  --member=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_EMAIL \
  --role=roles/chronicle.editor

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트에 Google SecOps 인스턴스 바인딩에서 만든 Google SecOps에 바인딩된 프로젝트의 프로젝트 ID입니다. 프로젝트를 식별하는 필드에 대한 설명은 프로젝트 만들기 및 관리를 참조하세요.
  • WORKFORCE_POOL_ID: ID 공급업체를 위해 생성된 직원 풀의 식별자입니다.
  • USER_EMAIL: 사용자의 이메일 주소입니다.

    다음 예시 명령어에서는 Cloud ID 또는 Google Workspace를 사용할 때 사용자에게 chronicle.editor 역할을 부여하는 방법을 보여줍니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=user:USER_EMAIL \
  --role=roles/chronicle.editor

다음을 바꿉니다.

예시: 커스텀 역할 만들기 및 그룹에 할당

사전 정의된 Google SecOps 역할이 조직의 사용 사례에 맞는 권한 그룹을 제공하지 않으면 커스텀 역할을 만들고 해당 커스텀 역할에 Google SecOps 권한을 할당할 수 있습니다. 사용자 또는 그룹에 커스텀 역할을 할당합니다. IAM 커스텀 역할에 대한 자세한 내용은 커스텀 역할 만들기 및 관리를 참조하세요.

다음 단계에서는 LimitedAdmin이라는 커스텀 역할을 만들 수 있습니다.

  1. LimitedAdmin이라는 커스텀 역할과 이 역할에 부여된 권한을 정의하는 YAML 또는 JSON 파일을 만듭니다. 다음은 YAML 파일 예시입니다.

    title: "LimitedAdmin"
    description: "Admin role with some permissions removed"
    stage: "ALPHA"
    includedPermissions:
    - chronicle.collectors.create
    - chronicle.collectors.delete
    - chronicle.collectors.get
    - chronicle.collectors.list
    - chronicle.collectors.update
    - chronicle.dashboards.copy
    - chronicle.dashboards.create
    - chronicle.dashboards.delete
    - chronicle.dashboards.get
    - chronicle.dashboards.list
    - chronicle.extensionValidationReports.get
    - chronicle.extensionValidationReports.list
    - chronicle.forwarders.create
    - chronicle.forwarders.delete
    - chronicle.forwarders.generate
    - chronicle.forwarders.get
    - chronicle.forwarders.list
    - chronicle.forwarders.update
    - chronicle.instances.get
    - chronicle.instances.report
    - chronicle.legacies.legacyGetCuratedRulesTrends
    - chronicle.legacies.legacyGetRuleCounts
    - chronicle.legacies.legacyGetRulesTrends
    - chronicle.legacies.legacyUpdateFinding
    - chronicle.logTypeSchemas.list
    - chronicle.multitenantDirectories.get
    - chronicle.operations.cancel
    - chronicle.operations.delete
    - chronicle.operations.get
    - chronicle.operations.list
    - chronicle.operations.wait
    - chronicle.parserExtensions.activate
    - chronicle.parserExtensions.create
    - chronicle.parserExtensions.delete
    - chronicle.parserExtensions.generateKeyValueMappings
    - chronicle.parserExtensions.get
    - chronicle.parserExtensions.legacySubmitParserExtension
    - chronicle.parserExtensions.list
    - chronicle.parserExtensions.removeSyslog
    - chronicle.parsers.activate
    - chronicle.parsers.activateReleaseCandidate
    - chronicle.parsers.copyPrebuiltParser
    - chronicle.parsers.create
    - chronicle.parsers.deactivate
    - chronicle.parsers.delete
    - chronicle.parsers.get
    - chronicle.parsers.list
    - chronicle.parsers.runParser
    - chronicle.parsingErrors.list
    - chronicle.validationErrors.list
    - chronicle.validationReports.get
    - resourcemanager.projects.getIamPolicy
    
  2. 커스텀 역할을 만듭니다. 다음 예시 gcloud CLI 명령어에서는 이전 단계에서 만든 YAML 파일을 사용하여 이 커스텀 역할을 만드는 방법을 보여줍니다.

    gcloud iam roles create ROLE_NAME \
    --project=PROJECT_ID \
    --file=YAML_FILE_NAME
    

    다음을 바꿉니다.

  3. Google Cloud CLI를 사용하여 커스텀 역할 할당

    다음 예시 명령어는 직원 ID 제휴를 사용할 때 사용자 그룹에 커스텀 역할인 limitedAdmin을 부여하는 방법을 보여줍니다.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID \
      --role=projects/PROJECT_ID/roles/limitedAdmin
    

    다음을 바꿉니다.

    다음 예시 명령어는 Cloud Identity 또는를 사용할 때 사용자 그룹에 커스텀 역할인 limitedAdmin을 부여하는 방법을 보여줍니다.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=groupid:GROUP_ID \
      --role=projects/PROJECT_ID/roles/limitedAdmin
    

    다음을 바꿉니다.

감사 로깅 확인

Google SecOps의 사용자 작업 및 Google SecOps API에 대한 요청은 Cloud 감사 로그로 기록됩니다. 로그가 작성되는지 확인하려면 다음 단계를 수행합니다.

  1. 모든 기능에 액세스할 수 있는 권한이 있는 사용자로 Google SecOps에 로그인합니다. 자세한 내용은 Google SecOps에 로그인을 참고하세요.
  2. 검색 등의 작업을 수행합니다.
  3. Google Cloud 콘솔에서 로그 탐색기를 사용하여 Google SecOps에 바인딩된 클라우드 프로젝트의 감사 로그를 봅니다. Google SecOps 감사 로그에는 다음과 같은 서비스 이름 chronicle.googleapis.com이 포함됩니다.

Cloud 감사 로그를 보는 방법에 대한 자세한 내용은 Google SecOps 감사 로깅 정보를 참고하세요.

다음은 alice@example.com 사용자가 Google SecOps에서 파서 확장 프로그램 목록을 봤을 때 기록되는 예시 로그입니다.

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "alice@example.com"
    },
    "requestMetadata": {
      "callerIp": "private",
      "callerSuppliedUserAgent": "abc_client",
      "requestAttributes": {
        "time": "2023-03-27T21:09:43.897772385Z",
        "reason": "8uSywAYeWhxBRiBhdXRoIFVwVGljay0-REFUIGV4Y2abcdef",
        "auth": {}
      },
      "destinationAttributes": {}
    },
    "serviceName": "chronicle.googleapis.com",
    "methodName": "google.cloud.chronicle.v1main.ParserService.ListParserExtensions",
    "authorizationInfo": [
      {
        "resource": "projects/100000000000/locations/us/instances/aaaa0aa0-000A-00a0-0000-0000a0aa0a1/logTypes/-",
        "permission": "chronicle.parserExtensions.list",
        "granted": true,
        "resourceAttributes": {}
      }
    ],
    "resourceName": "projects/100000000000/locations/us/instances/aaaa0aa0-000A-00a0-0000-0000a0aa0a1/logTypes/-",
    "numResponseItems": "12",
    "request": {
      "@type": "type.googleapis.com/google.cloud.chronicle.v1main.ListParserExtensionsRequest",
      "parent": "projects/100000000000/locations/us/instances/aaaa0aa0-000A-00a0-0000-0000a0aa0a1/logTypes/-"
    },
    "response": {
      "@type": "type.googleapis.com/google.cloud.chronicle.v1main.ListParserExtensionsResponse"
    }
  },
  "insertId": "1h0b0e0a0",
  "resource": {
    "type": "audited_resource",
    "labels": {
      "project_id": "dev-sys-server001",
      "method": "google.cloud.chronicle.v1main.ParserService.ListParserExtensions",
      "service": "chronicle.googleapis.com"
    }
  },
  "timestamp": "2023-03-27T21:09:43.744940164Z",
  "severity": "INFO",
  "logName": "projects/dev-sys-server001/logs/cloudaudit.googleapis.com%2Fdata_access",
  "receiveTimestamp": "2023-03-27T21:09:44.863100753Z"
}

기능 액세스 제어를 위해 Google SecOps를 기능 RBAC로 마이그레이션

이 섹션의 정보를 사용하여 기존 Google Security Operations SIEM 인스턴스를 기존 RBAC 시스템에서 기능 RBAC로 마이그레이션합니다.

또한 기능 RBAC로 마이그레이션한 후 Cloud 감사 로그를 사용하여 Google SecOps 인스턴스에서 활동을 감사할 수 있습니다.

기존 RBAC와 기능 RBAC의 차이점

기능 RBAC 사전 정의된 역할 이름이 기존 RBAC 역할과 비슷하지만 기능 RBAC 사전 정의된 역할은 기존 RBAC 역할과 동일한 기능 액세스를 제공하지 않습니다. 사전 정의된 각 기능 RBAC 역할에 할당되는 권한이 약간 다릅니다. 자세한 내용은 기능 RBAC IAM 역할이 기존 RBAC 역할에 매핑되는 방법을 참고하세요.

Google SecOps 사전 정의된 역할을 있는 그대로 사용하거나, 각 사전 정의된 역할에 정의된 권한을 변경하거나, 커스텀 역할을 만들고 다른 권한 집합을 할당할 수 있습니다.

Google SecOps 인스턴스를 마이그레이션한 후 Google Cloud 콘솔에서 IAM을 사용하여 역할, 권한, 기능 RBAC 정책을 관리합니다. 다음 Google SecOps 애플리케이션 페이지는 사용자를 Google Cloud 콘솔로 연결하도록 수정되었습니다.

  • 사용자 및 그룹
  • 역할

기존 RBAC에서 각 권한은 기능 이름 및 작업으로 기술됩니다. 기능 RBAC의 IAM 권한은 리소스 이름 및 메서드로 기술됩니다. 다음 표는 대시보드 및 피드의 두 가지 예시를 통해 차이점을 보여줍니다.

  • 대시보드 예시: 대시보드 액세스를 제어하기 위해 기존 RBAC는 대시보드에서 수행할 수 있는 5가지 작업을 제공합니다. 기능 RBAC는 사용자가 사용 가능한 대시보드를 나열할 수 있도록 하는 추가 권한 dashboards.list가 있는 유사한 IAM 권한을 제공합니다.

  • 피드 예시: 피드 액세스를 제어하기 위해 기존 RBAC는 사용 설정 또는 사용 중지할 수 있는 7가지 작업을 제공합니다. 기능 RBAC에는 feeds.delete, feeds.create, feeds.update, feeds.view의 4가지 작업이 있습니다.

기능 기존 RBAC의 권한 기능 RBAC의 IAM 권한 사용자 작업 설명
대시보드 수정 chronicle.dashboards.edit 대시보드 수정
대시보드 복사 chronicle.dashboards.copy 대시보드 복사
대시보드 만들기 chronicle.dashboards.create 대시보드 만들기
대시보드 예약 chronicle.dashboards.schedule 보고서 예약
대시보드 삭제 chronicle.dashboards.delete 보고서 삭제
대시보드 없음 이 기능은 기능 RBAC에서만 사용할 수 있습니다. chronicle.dashboards.list 사용 가능한 대시보드 나열
피드 DeleteFeed chronicle.feeds.delete 피드 삭제
피드 CreateFeed chronicle.feeds.create 피드 만들기
피드 UpdateFeed chronicle.feeds.update 피드 업데이트
피드 EnableFeed chronicle.feeds.update 피드 업데이트
피드 DisableFeed chronicle.feeds.update 피드 업데이트
피드 ListFeeds chronicle.feeds.view 하나 이상의 피드 반환
피드 GetFeed chronicle.feeds.view 하나 이상의 피드 반환

기존 액세스 제어 권한을 마이그레이션하는 단계

기존 Google SecOps 인스턴스를 마이그레이션하는 단계를 완료한 후 기능 액세스 제어 구성을 마이그레이션할 수도 있습니다.

Google SecOps는 SIEM 설정 > 사용자 및 그룹 페이지의 Google SecOps에서 구성된 기존 RBAC와 동일한 새 기능 RBAC IAM 정책을 만드는 자동 생성 명령어를 제공합니다.

Google SecOps를 위한 Google Cloud 프로젝트 구성에 설명된 필수 권한이 있는지 확인한 후 기존 권한 및 역할을 IAM으로 마이그레이션의 단계를 따르세요.

기능 RBAC IAM 역할이 기존 RBAC 역할에 매핑되는 방식

이 섹션의 매핑 정보는 마이그레이션 전후에 사전 정의된 역할에 대한 액세스 권한의 몇 가지 차이점을 설명합니다. 기존 RBAC 역할 이름은 기능 RBAC IAM 사전 정의된 역할과 비슷하지만 각 역할에서 액세스 권한을 제공하는 작업은 다릅니다. 이 섹션에서는 이러한 차이점 중 일부를 소개합니다.

Chronicle API 제한적 뷰어

이 역할은 감지 엔진 규칙 및 RetroHunt를 제외하고 Google SecOps 애플리케이션 및 API 리소스에 대해 읽기 전용 액세스 권한을 부여합니다. 역할 이름은 chronicle.limitedViewer입니다.

권한의 자세한 목록은 Chronicle API 뷰어를 참고하세요.

Chronicle API 뷰어

이 역할은 Google SecOps 애플리케이션 및 API 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. 역할 이름은 chronicle.viewer입니다.

다음 권한은 유사한 기존 RBAC와 기능 RBAC 역할 간의 몇 가지 차이점을 보여줍니다. 권한의 자세한 목록은 Chronicle API 뷰어를 참고하세요.

Feature RBAC IAM permission Equivalent permission is mapped to this legacy RBAC role
chronicle.ruleDeployments.get Viewer
chronicle.ruleDeployments.list Viewer
chronicle.rules.verifyRuleText Viewer
chronicle.rules.get Viewer
chronicle.rules.list Viewer
chronicle.legacies.legacyGetRuleCounts Viewer
chronicle.legacies.legacyGetRulesTrends Viewer
chronicle.rules.listRevisions Viewer
chronicle.legacies.legacyGetCuratedRulesTrends Viewer
chronicle.ruleExecutionErrors.list Viewer
chronicle.curatedRuleSets.get Viewer
chronicle.curatedRuleSetDeployments.get Viewer
chronicle.curatedRuleSets.list Viewer
chronicle.curatedRuleSetDeployments.list Viewer
chronicle.curatedRuleSetCategories.get Viewer
chronicle.curatedRuleSetCategories.list Viewer
chronicle.curatedRuleSetCategories.countAllCuratedRuleSetDetections Viewer
chronicle.curatedRuleSets.countCuratedRuleSetDetections Viewer
chronicle.curatedRules.get Viewer
chronicle.curatedRules.list Viewer
chronicle.referenceLists.list Viewer
chronicle.referenceLists.get Viewer
chronicle.referenceLists.verifyReferenceList Viewer
chronicle.retrohunts.get Viewer
chronicle.retrohunts.list Viewer
chronicle.dashboards.schedule Editor
chronicle.operations.get None. This is available in feature RBAC only.
chronicle.operations.list None. This is available in feature RBAC only.
chronicle.operations.wait None. This is available in feature RBAC only.
chronicle.instances.report None. This is available in feature RBAC only.
chronicle.collectors.get None. This is available in feature RBAC only.
chronicle.collectors.list None. This is available in feature RBAC only.
chronicle.forwarders.generate None. This is available in feature RBAC only.
chronicle.forwarders.get None. This is available in feature RBAC only.
chronicle.forwarders.list None. This is available in feature RBAC only.

Chronicle API 편집자

이 역할이 있으면 사용자가 Google SecOps 애플리케이션 및 API 리소스에 대한 액세스 권한을 수정할 수 있습니다. 역할 이름은 chronicle.editor입니다.

다음 권한은 유사한 기존 RBAC와 기능 RBAC 역할 간의 몇 가지 차이점을 보여줍니다. 권한의 자세한 목록은 Chronicle API 편집기를 참고하세요.

Feature RBAC IAM permission Equivalent permission is mapped to this legacy RBAC role
chronicle.ruleDeployments.update Editor
chronicle.rules.update Editor
chronicle.rules.create Editor
chronicle.referenceLists.create Editor
chronicle.referenceLists.update Editor
chronicle.rules.runRetrohunt Editor
chronicle.retrohunts.create Editor
chronicle.curatedRuleSetDeployments.batchUpdate Editor
chronicle.curatedRuleSetDeployments.update Editor
chronicle.dashboards.copy Editor
chronicle.dashboards.edit Editor
chronicle.dashboards.create Editor
chronicle.legacies.legacyUpdateFinding Editor
chronicle.dashboards.delete Editor
chronicle.operations.delete None. This is available in feature RBAC only.

Chronicle API 관리자

이 역할은 전역 설정을 포함하여 Google SecOps 애플리케이션 및 API 서비스에 대한 전체 액세스 권한을 제공합니다. 역할 이름은 chronicle.admin입니다.

다음 권한은 유사한 기존 RBAC와 기능 RBAC 역할 간의 몇 가지 차이점을 보여줍니다. 권한의 자세한 목록은 Chronicle API 관리자를 참고하세요.

Feature RBAC IAM permission Equivalent permission is mapped to this legacy RBAC role
chronicle.parserExtensions.delete Admin
chronicle.parsers.copyPrebuiltParser Admin
chronicle.extensionValidationReports.get Admin
chronicle.extensionValidationReports.list Admin
chronicle.validationErrors.list Admin
chronicle.parsers.runParser Admin
chronicle.parserExtensions.get Admin
chronicle.parserExtensions.list Admin
chronicle.validationReports.get Admin
chronicle.parserExtensions.create Admin
chronicle.parserExtensions.removeSyslog Admin
chronicle.parsers.activate Admin
chronicle.parserExtensions.activate Admin
chronicle.parsers.activateReleaseCandidate Admin
chronicle.parsers.deactivate Admin
chronicle.parsers.deactivate Admin
chronicle.parserExtensions.generateKeyValuechronicle.Mappings Admin
chronicle.parserExtensions.legacySubmitParserExtension Admin
chronicle.parsers.activate Admin
chronicle.parsers.activate Admin
chronicle.parsers.activate Admin
chronicle.parsers.list Admin
chronicle.parsers.create Admin
chronicle.parsers.delete Admin
chronicle.feeds.delete Admin
chronicle.feeds.create Admin
chronicle.feeds.update Admin
chronicle.feeds.enable Admin
chronicle.feeds.disable Admin
chronicle.feeds.list Admin
chronicle.feeds.get Admin
chronicle.feedSourceTypeSchemas.list Admin
chronicle.logTypeSchemas.list Admin
chronicle.operations.cancel Editor
chronicle.collectors.create None. This is available in feature RBAC only.
chronicle.collectors.delete None. This is available in feature RBAC only.
chronicle.collectors.update None. This is available in feature RBAC only.
chronicle.forwarders.create None. This is available in feature RBAC only.
chronicle.forwarders.delete None. This is available in feature RBAC only.
chronicle.forwarders.update None. This is available in feature RBAC only.
chronicle.parsingErrors.list None. This is available in feature RBAC only.