감사 관련 직무의 IAM 역할

이 주제에서는 몇 가지 감사 시나리오에서 ID 및 액세스 관리 권한을 구성하는 방법을 설명합니다. 또한 각 시나리오에서 회사의 감사 관련 역할에 어떤 IAM 역할을 부여해야 하는지 설명합니다. 이 주제의 예시는 주로 보안 관리자, 감사관, 조직의 감사 작업을 관리하는 직원을 대상으로 합니다.

Google Cloud의 감사 로그에 대한 자세한 내용은 Cloud 감사 로그를 참조하세요. IAM이 생성하는 감사 로그에 대한 자세한 내용은 서비스 계정의 IAM 감사 로깅을 참조하세요.

시나리오: 운영 모니터링

이 시나리오에서는 Cloud Logging 및 장기 스토리지에 저장된 로그를 검토할 수 있는 조직의 중앙 보안팀이 있으며, 이 로그에는 민감한 정보가 포함될 수 있습니다.

이전 감사 데이터는 Cloud Storage에 저장됩니다. 조직은 애플리케이션을 사용하여 이전 감사 데이터에 대한 액세스를 제공합니다. 이 애플리케이션은 서비스 계정을 사용하여 로그 데이터에 액세스합니다. 일부 감사 로그 데이터는 민감성으로 인해 Sensitive Data Protection을 통해 수정된 후 보기용으로 공개됩니다.

아래 표에서는 CTO, 보안팀, 서비스 계정에 부여되어야 하는 IAM 역할은 물론 역할이 부여되는 리소스 수준을 설명합니다.

역할 리소스 주 구성원 설명
resourcemanager.organizationAdmin 조직 CTO resourcemanager.organizationAdmin 역할을 가진 CTO는 보안팀 및 서비스 계정에 권한을 할당할 수 있습니다.
logging.viewer 조직 보안팀 logging.viewer 역할을 부여받은 보안 관리팀은 관리자 활동 로그를 볼 수 있습니다.
logging.privateLogViewer 조직 보안팀 logging.privateLogViewer 역할을 부여받으면 데이터 액세스 로그를 볼 수 있습니다.

로그 항목을 내보낸 후 내보낸 사본에 대한 액세스는 전적으로 Cloud Storage, BigQuery, Pub/Sub 대상 위치에서의 IAM 권한 및 역할에 따라 제어됩니다. 이 시나리오에서 감사 로그를 장기 저장할 대상 위치는 Cloud Storage입니다.

역할 리소스 주 구성원 설명
logging.viewer 조직 서비스 계정 logging.viewer 역할을 통해 서비스 계정이 Cloud Logging의 관리자 활동 로그를 읽을 수 있습니다.

데이터 액세스 로그의 데이터는 이 조직의 개인 식별 정보(PII)로 간주됩니다. 애플리케이션을 민감한 정보 보호와 통합하면 데이터 액세스 로그를 확인할 때 데이터 액세스 로그에 있는 것이든 Cloud Storage의 이전 보관 파일에서 가져온 것이든 관계없이 민감한 PII 데이터를 수정할 수 있습니다.

역할 리소스 주 구성원 설명
storage.objectViewer 버킷 서비스 계정 storage.objectViewer 역할을 가진 서비스 계정은 내보낸 관리자 활동 로그를 읽을 수 있습니다.

이 시나리오에서 조직 리소스에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/resourcemanager.organizationAdmin",
      "members": [
        "user:cto@example.com"
      ]
    },
    {
      "role": "roles/logging.viewer",
      "members": [
        "group:security-team@example.com",
        "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/logging.privateLogViewer",
      "members": [
        "group:security-team@example.com"
      ]
    }
  ]
}

이 시나리오에서 대상 싱크로 구성된 버킷에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/storage.objectViewer",
    "members": [
      "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

시나리오: 개발팀의 감사 로그 모니터링

이 시나리오에서 조직의 개발자는 애플리케이션을 개발하면서 생성된 감사 로그를 확인해야 합니다. 민감한 정보 보호를 사용하여 수정하지 않는 한 개발자는 프로덕션 로그를 확인할 수 있는 권한이 없습니다. 개발자는 대시보드 애플리케이션을 통해 내보낸 프로덕션 데이터에 보기 전용 권한으로 액세스할 수 있습니다. 조직의 보안팀은 프로덕션 과정 및 개발 환경에서 모든 로그에 액세스할 수 있습니다.

아래 표에서는 보안팀, 개발자, 서비스 계정에 부여되어야 하는 IAM 역할은 물론 역할이 부여되는 리소스 수준을 설명합니다.

역할 리소스 주 구성원 설명
logging.viewer 조직 보안팀 logging.viewer 역할을 부여받은 보안 관리팀은 관리자 활동 로그를 볼 수 있습니다.
logging.privateLogViewer 조직 보안팀 logging.privateLogViewer 역할을 부여받으면 데이터 액세스 로그를 볼 수 있습니다.
logging.viewer 폴더 개발자팀 logging.viewer 역할을 부여받은 개발자팀은 모든 개발자 프로젝트가 있는 폴더에 포함된 개발자 프로젝트에서 생성한 관리자 활동 로그를 볼 수 있습니다.
logging.privateLogViewer 폴더 개발자팀 logging.privateLogViewer 역할을 부여받으면 데이터 액세스 로그를 볼 수 있습니다.

내보낸 사본에 대한 액세스는 전적으로 Cloud Storage, BigQuery, Pub/Sub 대상 위치에서의 IAM 권한 및 역할에 따라 제어됩니다. 이 시나리오에서 감사 로그를 저장할 대상 위치는 BigQuery입니다.

역할 리소스 주 구성원 설명
bigquery.dataViewer BigQuery 데이터 세트 대시보드 서비스 계정 bigquery.dataViewer 역할을 통해 대시보드 애플리케이션에서 사용하는 서비스 계정은 내보낸 관리자 활동 로그를 읽을 수 있습니다.

이 시나리오에서 개발팀의 폴더 리소스에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:developer-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:developer-team@example.com"
    ]
  }]
}

이 시나리오에서 조직 리소스에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:security-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:security-team@example.com"
    ]
  }]
}

이 시나리오에서 대상 싱크로 구성된 BigQuery 데이터 세트에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

시나리오: 외부 감사관

이 시나리오에서는 조직의 감사 로그를 집계하여 중앙 싱크 위치로 내보냅니다. 제3자 감사관에게는 조직의 감사 로그를 검토할 수 있는 액세스 권한이 1년에 여러 번 부여됩니다. 해당 감사관은 관리자 활동 로그의 PII 데이터를 볼 수 없습니다. 이 요구사항을 준수하기 위해 대시보드를 사용하여 BigQuery에 저장된 이전 로그에 액세스할 수 있으며 요청 시 Cloud Logging 관리자 활동 로그에 액세스할 수 있습니다.

조직은 이러한 외부 감사관에 대해 Google 그룹을 만들고 현재 감사관을 그룹에 추가합니다. 이 그룹은 모니터링되며 일반적으로 대시보드 애플리케이션에 액세스할 수 있는 권한을 부여받습니다.

일반적인 액세스 중에 감사관의 Google 그룹은 BigQuery에 저장된 이전 로그만 볼 수 있습니다. 이상이 발견되면 대시보드의 액세스 권한 상승 모드를 통해 실제 Cloud Logging 관리자 활동 로그를 볼 수 있는 권한이 이 그룹에 부여됩니다. 감사 기간이 끝날 때마다 그룹의 액세스 권한은 취소됩니다.

데이터는 Sensitive Data Protection을 통해 수정된 후 대시보드 애플리케이션을 통해 보기용으로 공개됩니다.

아래 표에서는 조직 관리자가 대시보드에 사용되는 서비스 계정에 부여할 수 있는 IAM 로깅 역할은 물론 역할이 부여되는 리소스 수준을 설명합니다.

역할 리소스 주 구성원 설명
logging.viewer 조직 대시보드 서비스 계정 logging.viewer 역할을 통해 서비스 계정이 Cloud Logging의 관리자 활동 로그를 읽을 수 있습니다.
bigquery.dataViewer BigQuery 데이터 세트 대시보드 서비스 계정 bigquery.dataViewer 역할을 통해 대시보드 애플리케이션에서 사용하는 서비스 계정은 내보낸 관리자 활동 로그를 읽을 수 있습니다.

이 시나리오에서 조직 리소스에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

이 시나리오에서 대상 싱크로 구성된 BigQuery 데이터 세트에 결합되는 허용 정책은 다음과 유사합니다.

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}